Of course, perfection does not exist. After all, if we are perfect, how can we progress and improve? In this post I specifically want to talk about the DevOps Engineer role, it’s one you will see plenty of adverts for on pretty much every job board out there, but it’s also the one which has the highest number of applicants, can carry a high salary and attract people who are not quite a right fit for the role.
Let’s start by looking at the key attributes to DevOps Engineers and let’s also have a look at a traditional Infrastructure Engineer role. I feel these roles are about 90% similar in their skills. The 10% difference though for DevOps Engineers in a lot of ways is a critical 10% as I feel this is what sets aside a good DevOps Engineer from someone who knows the tooling well. Those skills are soft skills. What do we mean by this?
- Strong communication skills
- Leadership skills
- Strong analytical skills
- Ability to work in cross-functional teams
It is easy to say it’s simple, most job adverts say you need strong communication skills, but most jobs do not require you to work in cross functional teams in an agile environment, where teams are traditionally defined as high performing. In DevOps, soft skills are the ones which mean you work well with others in your squad or tribe, understand and work with others who are not of the same technical skill set and able to work highly autonomously while having the ability to provide leadership.
Remembering core skills
When you a looking to interview people, start with some screening, it’s important to make sure you filter out speculative applications, concentrate on those who have a realistic chance of performing the role. Not only does this mean asking questions about the skills you are looking for which are relevant to your sector, but focusing on some key points which show you the candidate really understands DevOps and is not just a tooling operator.
- Fundamental skills - Candidates should understand core development skills and operations skills, this should be apparent based on their work history, ask them questions about their roles which are relevant and it will soon become clear if they have understood these fundamentals from their time in these roles.
- Automation skills - One of the main responsibilities of DevOps Engineers is the ability to automate processes. Find out how skilful your candidate is in solving business and technical problems through automation, use a scenario to help you with this.
- Vision and attitude - Remember the soft skills from earlier? Well the ability to articulate clearly your product vision is key. A shared vision and responsibility is a key value of DevOps and by demonstrating this, the candidate is showing you they are fit for the role.
- Security skills - Security is everything these days, it’s of vast importance, ensure your candidate understands the concepts of shift-left in security and understands how important it is to bake in security by design. Demonstrating what these means practically and through tooling and automation.
If you are looking for a specific set of skills around DevOps and looking for a specialist subset, then make sure your job description reflects this. Just as you want to only attract people who are interested and able to perform the role, candidates will only apply if they are attracted to the role, make sure it’s as descriptive as possible but above all, don’t stretch the truth in what you say. It will only make you look bad in the long run.
Add the following components to your job description and try and keep it consistent.
- Job role and responsibilities
- Required expertise
- Preferred experience
I want to make a special note on required experience. I have seen job descriptions ask for experience in technologies which are younger than the ask in experience. For example, only the other day I saw a job description asking for more than 10 years experience in Kubernetes, when the technology was only released in June 2014.
Interview questions and scenarios
Make sure you set meaningful questions and scenarios at interview. It’s important you do this as you will only be able to assess the skills of the candidate with an appropriate set of questions and scenarios that match what you are looking for. Don’t ask them questions about technologies they won’t be using or skills they won’t need to use in the role.
Hiring is always difficult, but use some of the things we have talked about here to make a good choice, finally use your gut. One of the best managers I ever had when I was first hiring staff said to me; “if you leave the interview with a tiny ounce of doubt, then it’s a no”. Granted I have made hiring mistakes but I stand by that advice which has served me well through my hiring career so far.