What Is a DevOps Engineer?
A DevOps engineer applies a combination of development and operations skills to streamline the software development lifecycle and support collaboration between teams. So what exactly is a DevOps engineer, and what skills are required? Learn more about this important role in this post.
The Growing Demand for DevOps Engineers
Demand for people with DevOps skills is growing rapidly because businesses get great results from DevOps. Organizations using DevOps foundations are overwhelmingly high-functioning: They deploy code up to 30 times more frequently than their competitors, and 50 percent fewer of their deployments fail.
With all this goodness, you’d think there were many DevOps engineers. However, just 18 percent of our survey respondents in the 2012 / 2013 survey said someone in their organization actually had this title. Why is that?
In part, it’s because defining what DevOps engineers do is still in flux. That hasn’t stopped people from hiring for DevOps skills, though. Between January 2012 and January 2013, listings for DevOps jobs on Indeed.com increased by 75 percent. On LinkedIn.com, mentions of DevOps as a skill increased by 50 percent during the same period. Our survey revealed the same trend: Half of our 4,000-plus respondents (in more than 90 countries) said their companies consider DevOps skills when hiring.
Back to topWhat Is a DevOps Engineer?
DevOps engineers work with software developers to write the code and scripts needed to connect all the different parts of a software application. This includes things like APIs, libraries, and SDKs. DevOps engineers also work with database and messaging tools — all critical pieces of software applications.
A DevOps engineer is usually a software developer with knowledge of deployment and network operations or a sysadmin with experience in scripting and coding. Either way, these are people who have pushed beyond their defined areas of competence and who have a more holistic view of their technical environments.
DevOps engineers are a pretty elite group, so it’s not surprising that we found a smaller number of companies creating that title. Kelsey Hightower, who heads operations here at Puppet, describes these people as the “Special Forces” in an organization.
“The DevOps engineer encapsulates depth of knowledge and years of hands-on experience,” Kelsey said. “You’re battle tested. This person blends the skills of the business analyst with the technical chops to build the solution - plus they know the business well, and can look at how any issue affects the entire company.”
If DevOps is understood primarily as a mindset, it can get awfully fuzzy. But enough people are attempting definitions for us to offer this list of core DevOps attributes:
- Ability to use a wide variety of open-source technologies and tools
- Ability to code and script
- Experience with systems and IT operations
- Comfort with frequent, incremental code testing and deployment
- Strong grasp of automation tools
- Data management skills
- A strong focus on business outcomes
- Comfort with collaboration, open communication, and reaching across functional borders
Even with broad agreement about core DevOps attributes, controversy surrounds the term “DevOps engineer.” Some say the term itself contradicts DevOps values. Jez Humble, the co-author of Continuous Delivery, points out that just calling someone a DevOps engineer can create a third silo in addition to dev and ops — "...clearly a poor (and ironic) way to try and solve these problems." DevOps, he says, proposes "strategies to create better collaboration between functional silos, or doing away with the functional silos altogether and creating cross-functional teams (or some combination of these approaches)." In the end, Humble relents, saying it’s okay to call people doing DevOps by that term if you really want to.
Back to topWhat Skills Does a DevOps Engineer Need?
A DevOps engineer must have skills in both development and operations and promote collaboration between teams throughout the software development lifecycle.
Our respondents identified the top three skill areas for DevOps staff:
- Coding or scripting
- Process re-engineering
- Communicating and collaborating with others
These skills all point to a growing recognition that software isn’t written in the old way anymore. Where software used to be written from scratch in a highly complex and lengthy process, creating new products is now often a matter of choosing open-source components and stitching them together with code. The complexity of today’s software lies less in the authoring and more in ensuring that the new software will work across a diverse set of operating systems and platforms right away.
Likewise, testing and deployment are now done much more frequently. That is, they can be more frequent — if developers communicate early and regularly with the operations team, and if ops people bring their knowledge of the production environment to the design of testing and staging environments.
Discussion of what distinguishes DevOps engineers is all over blogs and forums and occurs whenever technical people gather. There’s lots of talk, for example, about pushing coders — not just code — over the wall into operations. Amazon CTO Werner Vogels said in an interview that when developers take on more responsibility for operations, both technology and service to customers improve.
"The traditional model is that you take your software to the wall that separates development and operations, and throw it over and forget about it. Not at Amazon. You build it, you run it. This brings developers into contact with the day-to-day operation of their software. It also brings them into day-to-day contact with the customer."
The resulting customer feedback loop, Vogels said, "is essential for improving the quality of the service."
Longtime developer and entrepreneur Rich Pelavin of Reactor8 also sees benefits from DevOps culture in terms of increased responsibility for everyone: "I’ve seen organizations where engineers get beepers, so they’re the ones who get beeped if it goes wrong [in deployment]. That pushes them into the rest of the software lifecycle. I think that’s a great idea." That's a real change from non-DevOps environments, where developers make their last commits and head home...or to the ping-pong table.
Increased visibility into the development process, improved collaboration across teams, and the ability to innovate with a strong DevOps framework — all of these benefits are enabled by the DevOps engineer's role. They bridge the gaps that might currently exist between development and operations, and by nature should have the skills and temperament to find middle ground for each group.
Back to topDo DevOps Engineers Make Good Money?
No matter when you're reading this, a DevOps Engineer has the potential to make a strong salary — the exact amount will always differ and depend on your location and job demand. While we've written past reports that speak to the specifics, like the 2021 DevOps Salary Report, you can compare salary ranges using job board sites in your area to learn more.
Where there is demand, strong compensation will follow. A DevOps engineer is in the unique position of working with a cross-functional team and add value to the entire organization — a role well-worth a stong managerial level salary.
Back to topWhat Does It Take To Be a DevOps Engineer?
To become a DevOps engineer, you’ll want to start expanding your skills — and experience — to compete for these new jobs.
While it’s great to beef up your coding skills and get familiar with automation tools, you’ll also want to seek out projects and new roles that allow you to exercise the “soft” skills that are at the core of DevOps. Find opportunities to collaborate within and outside of your team. Help your company move to a faster test and deployment rhythm. Be open to listening to others’ ideas. Keep in mind that DevOps is less about doing things a particular way, and more about moving the business forward and giving it a stronger technological advantage.
Learn more about DevOps
- What is DevOps?
- The latest DevOps trends
- How DevOps tools can support your DevOps initiatives
- 5 DevOps KPIs to measure success