You have just been tasked with pulling together a DevOps team for your organization. Or, you're interested in getting involved in a DevOps initiative. What are the best skills suited for such efforts -- specialized software or systems engineering skills, or more general business technology-oriented abilities?
The answer is both, along with a healthy dose of non-traditional experience. The best candidates are those with experience or knowledge in both application development and systems administration. But the degree to which these skills are needed depends on the type of organization, whether it's a startup culture or a large, established enterprise. That's the word from Franklin Morris in his latest guidebook, DevOps Hiring in a Nutshell: How to Build a Winning DevOps Team, published by Rackspace.
DevOps has come to the forefront because organizations are under enormous pressure to push software and products out the door in rapid fashion. The more creative types -- developers and designers -- don't necessary follow rigid schedules in their bursts of innovation, but follow schedules they must. That's why it pays to have them working closely with the operations people -- who pay a lot of attention to when and how new solutions and products are tested, verified and delivered to internal and external clientele. In this age of cloud, of course, everyone suddenly is running 24x7 services that need coordination in conjunction with the ideation that makes customers want to pay for them.
For starters, simply having the term "DevOps" in resumes isn't enough, Morris advises. Instead, candidates should have some pieces of relevant experience in all the aspects of DevOps -- be it systems engineering, systems administration, software engineering, and IT generalist roles. "Developers who have moved into infrastructure and system administrators with strong coding skills will be your strongest candidates for these positions," he observes.
In fact, qualified DevOps team members are likely to be "polymaths with non-traditional career paths," Morris states. Instead of rising up a single, specialized ladder, "the candidate may be a programmer who has taken a detour somewhere in their career and become interested in infrastructure. Off-hour activities or hobbies -- such as an administrator who enjoys programming -- may come to help in DevOps operations.
Think also about the interpersonal skills that make DevOps practitioners successful, Morris adds. A lot of DevOps success comes down to problem-solving that means achieving consensus among various groups across the enterprise.
Type of business plays a role as well. "If you're an early-stage start up, you will likely be looking for generalists who can wear multiple hats," says Morris. In fact, he adds, "the growth of DevOps was also spurred by the boom in startups." Here, a developer may be involved in many things, from creating and shipping code to managing infrastructure to working closely with customers.
It doesn't hurt for larger organizations to do what they can to encourage a startup culture. "It breeds a culture where failing fast and deploying often is seen as a virtue," Morris says. "Even if you're a Fortune 500 enterprise, you need to be prepared to break down silos and move quickly to compete in a DevOps world.The engineers you hire need to be prepared to work that way, too."
Having said that, it's still important for mature companies with built-out infrastructures to look for more specialization. In large enterprises, there's a need for "programmers, dedicated QA specialists and even staff focused exclusively on configuration management tools," says Morris.
Ideal candidates should also have experience with automation tools -- Chef, Puppet, Ansible, SaltStack or Windows PowerShell DSC. "These tools are at the heart of every successful DevOps team, so experience using them to deploy code should elevate candidates to the top of the resume pile," Morris says. Beware, though, that these are tough skills to find, he adds.