Thank you for Subscribing to CIO Applications Weekly Brief
Diving into the Depths of DevOps
Pauly Comtois, VP DevOps, Hearst Business Media
I have been building teams for over 15 years. In that time, those teams have always been DevOps teams, even before they were called DevOps. In reality the focus was on building teams that communicated well, supported each other and allowed room for mistakes. These have always been good habits of a high performing team. Now that we are hiring Developers and Operations engineers to grow a DevOps culture, we find ourselves looking for the same traits.
► Solve complex problems without a clear answer.
DevOps is new and still figuring out its way in the world. It's the gangly 13-year-old whose body grew faster than it's maturity. Many of the issues that we are leveraging DevOps to fix don't have clearly defined answers. These teams require explorers (and leaders) that are not afraid to take the road less travelled. Present a complex problem (one with multiple solutions) to solve and observe which path is taken by the candidate and why. Are they considering long term implications (a solution) or short term gains only (a temporary fix).
DevOps seeks to push decision making toward where the work is being performed. This new level of autonomy requires engineers that can manage their tasks, workflow and communication. Micromanaging has no place in the workforce and this is especially true in DevOps. This does not, however, mean that you work alone. You need engineers that manage their own work, while being part of the team.
► A clear sense of ownership and accountability.
With the culture of asking people to make more responsible decisions, there is the need for ownership and accountability. You make the choice, you set the direction and you are accountable for your actions. This does not mean that you punish someone for taking a risk and that risk not paying off. It means that the individual that leads that decision sticks with their choice and sees it through. They receive backing and support from leadership even in the face of disaster.
In the interview I ask the person to tell me about something they are passionate about. Anything. Now try to convince me to be as passionate about it as you are. Part of innovation is lively debate and convincing others (up, down and sideways in the reporting structure) to support your idea or approach. Look for someone that is open to different opinions, conveys their ideas succinctly and can professionally hold to their convictions.
Micromanaging has no place in the workforce and this is especially true in DevOps. This does not, however, mean that you work alone.
DevOps is about effective communication and collaboration first.
► Given the rise in remote workers, the majority of technical communication is written (email and chat)
Give the candidate a problem set and ask them to write out one email to their manager and another for their colleagues, posing a solution.
► A sense of humor
DevOps is, at its core, about bringing groups of people together. Sometimes you are bringing these groups goals into closer alignment. With so many different personalities, conflicting priorities and deadlines, things can get tense. Having a smart and graceful sense of humor can defuse conflicts rather than escalate them.
► Care must be taken to look for subtle sarcasm, negativity and passive-aggressive humor
This type of humor can increase stress and frustration. During the interview process, take the person outside the office for lunch or coffee. Look to see if they can take differing opinions in stride with good humor or if they display a high degree of ontological arrogance. You can also take this opportunity to observe how they interact with different people in a potentially uncomfortable situation.
► Culture, Aptitude and Skill
■ In order to compare many candidates (often 10-20 at a time) it helps to boil down the previous characteristics into three categories, and give the applicant a score. They are listed in the order of importance; Culture, Aptitude and Skill.
■ Cultural fit is paramount. I have discovered, to my own peril, just how important it is that the person fit the culture of your teams. I once hired a brilliant network engineer that, at the time of hire, I knew would not fit into the team. I was filling "my" need as a manager, but not filling the "teams" need. It is difficult, if not impossible, to change a person’s core personality. For this reason, cultural fit gets the veto power for DevOps hiring.
■ Aptitude is not always easy to judge but if you put some reasonable tests in front of the candidate you can discern their aptitude. Low levels of aptitude do not necessarily mean you don't hire but you must understand the runway for value add for that person is much longer. Consider the position need and timing and decide accordingly. Someone with a high level of aptitude can make up for a lack of skills up front and still quickly add value.
■ Skills are the lowest ranking for DevOps. This doesn't mean you should hire someone for a senior engineer position with no relevant skills. It does mean that skills can be easily taught and adopted by an individual with high aptitude. Even though this is the lowest level of requirement, it is the one that gets the most attention when developing the position description and job posting. Given that fact I will expand on this to list the skills that I look for in the resume. Don’t get too hung up on a specific tool; remember that if they fit culturally and have aptitude you want someone that can quickly learn new tools and approaches!
Look for core skills in the following key areas:
■ Automation: Automating the Value Stream is an important part of deriving value from DevOps. Look for skills in automating system configuration, testing, code builds…
■ Measurement: Understanding current state is critical to planning where you wish to go. Look for skills in tools and process that identify key metrics, recording and measuring those metrics and reporting on those metrics publically.
■ Coding/Scripting: The level and depth of experience in this field will vary, however understanding code supports all the other technical functions of DevOps.
If you are new to this approach, I recommend researching CAMS, an acronym describing the core values of DevOps. It was coined by Damon Edwards and John Willis at DevOps Days Mountain View 2010.
C – Culture; A – Automation; M – Measurement; S – Sharing