Why Your DevOps Roles Are Sitting Empty
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.
Why?
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 the 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.
Conclusion
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.
Brilliant
I have to agree with the points being mentioned. I come from a software engineering background and have worked at a previous role which involved doing the DevOps work as part of the development sprint. Modern DevOps is a shared responsibility for modern software teams developing on cloud platforms. If you build it you run it! The 12 factor app concept also provides a way build cloud native applications
I think many are looking at the wrong angle here. Dev need to be more ops and ops need to be more dev = devops. We are working with a mindset. You build it you run. We have taken inspiration from Google and now have the function sre instead of devops. As devops started as a culture and sre fits into this mindset. We need automation on provisions at high level so it becomes easy to build it an run it in a team. So build your cloud so the team can move fast
The other very prominent observation I have is "Hyped Devops" . While we agree it's a skill that needs a lot of specialized skills around configuration, trouble shooting, programming attitude and "come what may automate" angle in the personality, this is something that's possessed by existing Build and Release Engineers however organizations while hiring think they need "Devops Specialists or experts" and that too "Very quick hiring" and often forget that these "Build and Release Automation" skills could scale up to understanding Devops in much better way. "Devops" is an evolving function and just as it talks a lot about culture it also should acomodate culture change and inclusion #devops #devopsasaculture #buildandrelease #automation. Devops can largely succeed if it's inclusive In fact scale the existing people and get them inline with developers, remember you don't need them to code everytime. Mix and match balance can bring value and motivate existing roles. We remember #cruisecontrol #svn #sysinternals #wmi #msi #vbscript #python #perlcgi and recollect how build engineers gelled them so effectively to do development operations once upon a time