Assembling a DevOps teams is theoretically simple and practically hard. Hiring a DevOps team requires bringing together a group of people with complementary and somewhat overlapping skillsets who will be able to handle the entire application lifecycle internally—from development to deployment to operations.
Most DevOps teams should have between four and eight people—one popular yardstick is that the team should be small enough that two pizzas are enough for dinner. The key, though, is that every member of the DevOps team should be an expert in at least one area but still have basic knowledge of at least a couple other aspects of the application lifecycle.
Areas of Expertise
Sure, DevOps is, at its core, development and operations brought together. But it’s slightly over-simplistic to say you just need a developer with operations experience and a system admin with development experience. Here are some of the things a DevOps team is going to need to handle:
- Writing code (obviously)
- Continuous integration, delivery and deployment, including deployment strategies
- Testing / QA
- Security, including permission management, encryption and configuration
- Networking, including load balancing and network security
- Database and persistent storage management
- Cloud infrastructure management
The idea behind DevOps is to create teams that are self-sufficient and can handle everything, from procuring cloud resources to setting up the right storage system to handling advanced deployment strategies, without having to work with another team.
Building the Team
Now that we’ve talked about some of the skillsets you need on a DevOps teams, how do you find these people? Here are a couple things to keep in mind.
Perfection is elusive. In an ideal world, you will hire a group of rockstar DevOps engineers who have all spent years in each role and are experts at both development and technology operations. For most companies, this is not the reality. No individual engineer needs to have every single skillset or to be an expert in everything. Instead, look for engineers who have some deep knowledge and relevant experience as well as a willingness to learn more to fill in the gaps.
Recruit internally. Unless you’re building an IT department from scratch, you have some engineers with deep product and company knowledge. They might not already be the ideal DevOps engineer, but it will be easier to bring them up to speed on database management, for example, than it will be to explain your company’s mission and unique selling point to a new hire. Recruiting internally and filling in knowledge gaps is usually faster and more cost-effective than hiring off-the-shelf DevOps experts.
Don’t neglect the team aspect. Successful DevOps teams need to have some very hard skills, but ‘soft’ skills are just as important. The point of a DevOps team is for everyone to work together, after all. Rockstar DevOps engineers with impeccable credentials who don’t communicate well or who have a negative attitude about collaboration don’t belong on a DevOps team.
Building a DevOps team requires finding people with complementary skillsets who are willing to learn new skills and new tools, and to work together collaboratively. When you’re building a team, it’s important to think about what is easily learnable (how to use a particular automation tool, for example), what is more difficult to learn (a new programming language) and what is perhaps not learnable at all (the ability to collaborate with a team).