Puppet Labs just released their 2015 DevOps Salary Report. Fifty-five percent of U.S. DevOps engineers make $100,000 per year or more.
To gather insights for DZone's Continuous Delivery Research Guide, scheduled for release on January 26, 2016, we spoke to 24 executives who are implementing continuous delivery in their own company or helping clients do so.
Specifically we spoke to:
Casey Kindiger, CEO, Avik Partners | Ez Natarajan, Vice President Cloud, Beyondsoft | Tom Cabanski, Director of Software Development, Blinds.com | Kurt Collins, Director of Technology Evangleism and Partnerships, Built.io | Chris Madsen, CEO, Circonus | Steven Anderson, CEO, Clutch | Yaniv Yehuda, Co-Founder and CTO, DBmaestro | Andreas Grabner, Technology Strategist, Dynatrace | Elaina Shekhter, CMO, EPAM Systems | Charles Kendrick, CTO and Chief Architect, Isomorphic Software| Baruch Sadogursky, Developer Advocate, JFrog | Topher Marie, CTO, JumpCloud | Edith Harbaugh, CEO and Co-Founder, Launch Darkly | Jessica Rusin, Senior Director of Development, MobileDay | Stevan Arychuk, Strategic Marketing, New Relic | Arvind Mehrotra, President and Global Business Head, NIIT Technologies | Zeev Avidan, Vice President Product Management, OpenLegacy | Richard Dominguez, DevOps Engineer, Prep Sportswear | Prashanth Chandrasekar, General Manager of DevOps and Head of Operations, Rackspace | Steven Hazel, CTO, Sauce Labs | Bob Brodie, CTO, Sumo Heavy | Dr. Chenxi Wang, Chief Strategy Officer, Twistlock | Scott Ferguson, Vice President of Engineering, Vokal Interactive | Adam Serediuk, Director of Operations, xMatters
We asked these executives, "What are the skills that make someone good at DevOps?" Here's what they had to say:
People who like to tinker. Engineering teams handle backend development. The ones who excel are the ones playing with every new iteration of Raspberry Pi. They also need to understand the client infrastructure, such as AWS and others.
DevOps engineers need to understand how to code. They need to understand the process of delivering code as well as the server architecture that was formerly left to IT admins. DevOps engineers need to understand that speed to deployment is the main issue. We’re always looking at how to deploy and how to make things better and faster.
A thirst to learn new things and adapt to change.
Full-stack development skills. We need polyglot programmers who understand multiple tool frameworks and tools. They should think of technology as artistry and be more creative and expressive.
Be empathetic to the challenges of operations and production. This is reflected in coding style and approach to development.
Experience with knowledge of tools like Chef, Puppet and Git. Someone who loves bleeding edge technology and likes to solve problems. Someone that lives to learn new stuff. Patience to test new software and changes in code.
It's less about technology skills and more about personality traits. You need a respect for automation and creativity.
People with a mindset that it’s about the organization rather than the individual. Know how to use tools like Dynatrace, New Relic, and Circonus. Challenge different reporting structures and breakdowns within the organization. The corporation needs to redefine responsibilities. Don’t measure on bugs, measure turnaround of new code. Enable participants to work as a team to 2x or 3x performance, revenue, service and reduce cost to deliver. Get away from features/bugs and have a higher level goal.
The best developers make the best DevOps professionals. They learn quickly and have a deep skillset. The top 20% of developers are the most productive. While we’re a .Net shop, our developers are playing with Linux, Node, AWS. Others are narrow, sometimes deep, but don’t work on anything other than C++ and .Net.
Ability to communicate and work with others. This is a team sport and you need to break down silos. They use data to drive the discussion and make changes quickly. They have the technical competence of a full-stack engineer, autonomy, and responsibility.
Was just at a meetup where a Microsoft Outlook VP of engineering had implemented a seven-day release process – he just kept asking why things had to take as long as they did. You need a relentless focus on removing barriers, and a curiosity about moving faster.
Understand automation and have the instincts to understand what can be automated. Have the soft skills to talk to and work with others.
Technology comes and goes every decade. DevOps changes the way businesses depend on technology. Need to know what the business need is and what the customer need is. How to use technology to solve business problems, sometimes solving the same problems using different technology. You need to be able to visualize what the end consumer needs and think larger than the role you play.
Experienced with things that matter. DevOps engineers are experienced with every part of the system. Curiosity, a willingness to learn, open to try new things. You should be experienced with configuration management with Puppet and Chef, and know how to apply tools in the toolbox to build what will work together.
An understanding of left-to-right development. You can't have a development perspective that's not aligned with the operations environment. You must understand the end-game environment.
Four pillars – technology, tools, people and processes. Have a basic understanding of automation-centric tools, and get smart on the continuum of tools coming out. Be open to replacing your tools.
Strong system administration skills – understand networks, development, code, and operations topics. You need to be able to work well with developers. DevOps is a mindset rather than a skillset. It redefines success in the organization.
If the engineer is from development or operations they just need to be open minded and be able to adapt to behavioral change. They need to be empathetic and understand the problems of others and make them their own concerns.
Expertise in tools, frameworks, and testing. If you have practice with one or two, you can learn the others.
Ideally, you find someone who has previously been a one-person team, so they have personally taken on all three roles. This ensures that they intimately understand how these roles are connected and what information needs to flow back and forth. If you have at least one person like this, they can spread their experience to the rest of the team.
Product focus. I’ve met so many developers who are code-fetishists – perfectly happy to spend endless time tinkering with their code in order to approach some perceived coding ideal. I’ve known many operations people who argue against any changes to “their” infrastructure and who would be happy if new software tools were never released, for fear that it might contaminate their perfect environments. For me, it’s ultimately about getting solid and correct product into the hands of customers, which means rapid iteration, flexibility, and a true understanding of the entire product ecosystem. A good DevOps engineer recognizes that their job is to please the customer with excellent product. As I've said before, I don't look for people that are passionate about code, or about tools. I look for people that are passionate about product.
Personal responsibility. You care about what you do and the value you are providing to the end customer. Everything should be focused on the value you’re providing customers. It aligns the technical people with the business side of things. Everyone shares the same goal.
You can read a few more insights from our recent article "What to Expect From a DevOps Interview."
What other skills do you think make someone good at DevOps? Let us know in the comments!