With the broad adoption of cloud computing platforms like AWS, Azure, and Google Cloud, the need for DevOps engineers is growing rapidly to support a whole new generation of cloud-native applications. But, many of these roles are sitting empty for over 6 months to a year, and many companies only have themselves to blame.
It’s easy to point the finger at external forces such as the “skill gap,” and lament that there just aren’t enough DevOps specialists to satisfy demand. And, there is some truth to this. StackOverflow’s Annual Developer Survey of over 100,000 respondents found that only about 10% identified as a “DevOps Specialist.”
DevOps salaries are also evidence of the tight supply. According to the same survey, DevOps Specialists were the second-highest earning category, globally and in the United States, topped only by “Engineering Manager.”
Nonetheless, I’ve found that many of these empty seats have more to do with the compartmentalization of DevOps than simply a skill gap. Quite often, I see companies treat DevOps as a separate team or department that only works on provisioning scripts and automation solutions. This can lead to a team dynamic that renders a DevOps position undesirable to qualified candidates - especially to those who are capable of doing more.
If you want to do DevOps (the right way) and get the best talent, you should treat DevOps as an integrated part of a development team and a shared responsibility amongst all development team members. Along with this, a team may have a DevOps Specialist to provide subject matter expertise. But overall, other team members should have a hand in infrastructure provisioning, deployment, and monitoring.
Therefore, your team structure may have a lot to do with difficulty of finding DevOps Specialists. If you are compartmentalizing DevOps as a separate entity, then I can assure you that:
Many DevOps Specialists don’t want to work for you
You don’t need as many as you think
The Problem With DevOps as a Department - Bad Code Flows Downstream to DevOps
When there are dedicated DevOps teams, bad code becomes somebody else’s problem once the code is thrown over the proverbial fence. With this dynamic, the DevOps team must figure out a way to deploy an application that may not be well-designed for a cloud environment. And, they’re the first woken up at night to address a production outage. If DevOps personnel are placed in a position to suffer the consequences of another team’s shoddy work, who would take the job?
The better solution is to have a DevOps specialist as part of an integrated team that develops applications, and deploys and monitors them in production. This offers a few key benefits:
The system is designed from the ground-up to run in a cloud environment because DevOps personnel have more input during the design/architecture phase
All team members have some familiarity with the deployment and operation of the software at scale, which broadens your team’s skill base
There is a collective sense of responsibility for the success of the system
Ultimately, an integrated team structure reverses the old dynamic. Now, engineers will want to take on the role of DevOps Specialist to be a key contributor to a project rather than “the person who deals with the mess.” You’ll also find more application developers come out of the shadows and list key DevOps skills on their resume - because they no longer perceive the role as separate from the application development process. To this point, I personally know dozens of software engineers that omit DevOps skills on their resume because they don’t want to be pigeonholed into a dedicated DevOps position.
If you’re struggling to add DevOps Specialists to your company, you may need to rethink your team structure to make the position appealing. When possible, consider an integrated approach for application development teams, and treat the DevOps Specialist as an integral part of the entire Software Development Lifecycle. To this end, it’s important to rethink the job title to highlight the integrated nature of the position. Consider titles such as Software Engineer and DevOps Specialist, or Application Developer and DevOps Subject Matter Expert. This emphasizes the fact that the role is more than dealing with problems as they flow downstream.
If you adopt some of this advice, you may find that your overall need for dedicated DevOps Specialists decreases because an integrated team broadens the skill base of the entire engineering staff, and you’ll be able to attract the most talented DevOps Specialists who are capable of making an impact on the overall development process.