Variety is the spice of life, and it's also what makes a DevOps career endlessly fascinating and intriguing. But while DevOps requires an intimate knowledge of a myriad of technologies -- software, infrastructure, middleware, as well as business processes and operational best practices -- the most important skills to have for a successful DevOps career aren't technical at all: They're interpersonal, says Eric Sigler, head of DevOps at incident resolution software platform company PagerDuty.
"Critical thinking, problem-solving, communication and collaboration are the foundation for what makes DevOps work. Empathy in particular is a must-have for those building a career around DevOps. True DevOps engineers have a high degree of compassion and will use it to enable those around them. By being open to alternative points of view, you can pick and choose the best practices and skill sets available to solve the problem at hand," Sigler says.
[ Related story: IT career roadmap: How to become a data scientist ]
What types of problems is DevOps solving? The loose definition of DevOps is "a culture, movement or practice that emphasizes collaboration and communication between software developers and other IT professionals while automating the process of software delivery and infrastructure changes." The aim of DevOps is to make sure the process of building, testing and deploying software is as fast, frequent and reliable as possible to benefit the business.
DevOps is the natural evolution of what would have been a system administrator's role a decade ago, says Jason Allen, CTO at talent acquisition software company Yello.
"A systems administrator role itself is a broad set of skills, and DevOps is, in some ways, even broader. They still need to keep servers running, deploy applications built by the development teams, tune kernel parameters, build networks, work on storage devices -- all of those things plus added responsibility around development and programming, networking and security, cloud computing and constantly finding ways to improve the process of developing and deploying software faster," Allen says.
Because DevOps requires such a broad range of skills and experience, it's not an area that's appropriate for an entry-level IT worker -- at a minimum, five years of experience in a few different IT roles is a necessary prerequisite, says Allen.
"This is not the type of skillset for which you can take a class and learn. You need to have experience and proven skill in a variety of different environments and be able to draw on all of those to apply to the role, not to mention the soft skills to break down the siloes that are present in many organizations," he says.
[ Related story: IT career roadmap: The journey to digital marketing executive ]
There and back again
Sigler studied Computer Science at Missouri University of Science and Technology, and started his career running a cooperative server colocation business, managing mail and web infrastructure for small businesses. From there, he worked as a research system administrator for the University of Missouri-Rolla's high performance computing cluster, in addition to serving as a Linux administrator for campus infrastructure.
"After two years in that role, I moved to the managerial side, where I was responsible for overseeing the teams that handled both day-to-day operations, and new development for the server and desktop infrastructure at Rolla. I then spent a few years at Minted, as a system administrator and later as a technical operations manager, where I handled planning, implementation and support of site reliability and IT infrastructure for the company," Sigler says.
Three years ago, he joined PagerDuty as an operations engineer, and then moved up to an engineering manager role where he supervised the developer tools team. The DevOps practice within PagerDuty started small, and now Sigler's working to expand those skillsets outside his team and evangelize the culture throughout the organization.
That involves screening and hiring applicants with the unique combination of skills needed to succeed in DevOps, including both technical acumen and soft skills, Sigler says.
"I believe it's more important to focus on how an engineer approaches problems. When we're hiring for DevOps at PagerDuty, we ask candidates questions that reveal their problem-solving process. It doesn't necessarily matter what their solution to the question is, but how they got there and what questions they asked throughout. I have seen very successful DevOps engineers with backgrounds ranging from computer science and mathematics, to music or even philosophy. What's most important is having the ability to learn and to think critically -- both of which are important in a field that is filled with constant innovation and new technologies that you need to keep pace with. Specific skills age quickly, but 'learning how to learn' is invaluable throughout your career," Sigler says.
Of course, strong scripting skills are an imperative because of the focus on automating testing and software delivery, as well as networking, programming, security, cloud skills and infrastructure, says Yello's Allen, and product-specific knowledge of tools like Puppet and Chef, says Sigler.
While DevOps as a culture and a mindset have evolved quickly, academia has struggled to keep up with the pace of technological change, especially in the area of DevOps, says Robert Scott, Director, Center for Engineering Diversity and Outreach and Special counsel to the Dean at University of Michigan. Currently, courses that inform the discipline span three of the university's colleges; the College of Engineering, the School of Information and the Ross School of Business, Scott says.
"A lot of academic settings still don't see DevOps as being integrated. They're like many companies in that they're still looking at development and operations as siloed from each other. This is something both industry and academia have to reconcile and catch up with DevOps in the real world," Scott says.
For now, however, courses in computer science and engineering as well as the design and deployment of infrastructure, software, algorithms and tools are important from the technical side. A study of how to manage and maintain structured and unstructured data is important from the information systems side, and a solid knowledge of business fundamentals, strategy, business process development and analytics would be a great foundation for someone looking to get into DevOps, Scott says.
"I believe that to be good in a DevOps role, you'd need five years of experience, sure. But to truly be an expert, you'd need an in-depth knowledge and understanding of all these areas, which could take at least ten years," he says.
That's why, for now, the best route to a DevOps career is through on-the-ground experience in a number of roles and learning how to think critically and problem-solve, Sigler says.
"I think the best way to develop these skills is to diversify your point of view -- it is less about the specific experience you have, and more about the variation in experiences you've been open to. So much of DevOps is about asking questions and figuring out how to initiate constant change for the better, so curiosity in every form, and particularly in how the role enables and pertains to the business, is vital in a successful DevOps-focused career," Sigler says.
If you're just starting out, don't get discouraged by the prerequisites, either, Sigler says. The key to making a DevOps career successful is curiosity and drive, he says.
"Don't get attached to any specific dogma -- question everything, no matter what your level of experience is. The best thing you can bring to the table when beginning a career in DevOps is a fresh perspective and a fearless ability to challenge existing processes and approaches. Some of the most insightful and impactful questions I've seen asked in my career have come from someone brand new to the industry," Sigler says.