Micro Focus is now part of OpenText. Learn more >

You are here

You are here

10 ways to build highly effective DevOps teams

Ericka Chickowski Freelance writer

Too many articles provide only general DevOps advice, such as "Build a great team" or "Establish a good culture for collaboration," without talking about how to do those things. Here is some advice from DevOps leaders and practitioners about what it takes to attract talent, and how to get those people to do their job at maximum effectiveness by organizing from a structural level and leading from an executive level.

TechBeacon recently talked to a variety of DevOps leaders to draw a finer point on this theme. Here are their key takeaways, which include valuable tips for establishing the right mix of people, attracting great candidates, designing teams, and keeping your rock stars employed for the long haul.

1. Retention is as important as recruitment

Before an organization goes on a tear recruiting new candidates to fill out its DevOps team, it's crucial to remember a fundamental truth about team building: Retention is every bit as important as recruitment.

In sales, it's common knowledge that it takes six times as much investment to get a new customer as it does to keep an equally lucrative existing customer. The same principle applies when it comes to staffing up effective teams. It costs a lot less to keep and train existing talent than it does to recruit new talent, which you'll still need to retain in the long run.

Identify the talent within your organization that can contribute to a newly organized team, and you'll benefit not only from cost savings, but also from the knowledge about the organization that these internally sourced staffers can bring to the table from day one.

When it comes to DevOps team building, "the most successful initiatives I have seen combine both existing and new team members," explained Dan Cornell, CTO of Denim Group.

"This combination seems to provide enough organizational context to know how to effectively deal with the decision-making bureaucracy in an organization, with enough new thinking to be open to trying new things and breaking down barriers."
Dan Cornell

2. Cross-functional team structure matters

It's easy to fall into the fallacy that DevOps nirvana can be achieved only with a whole new roster of talent. Leaders don't always recognize that often the factor that's failing is how teams are structured, rather than who is currently on the teams.

Julian Dunn, director of product marketing at Chef, said that team design is important, but he advised against fixating on traditional chain-of-command org charts. Instead, focus first on building cross-functional teams.

How an organizational chart is arranged matters less than whether a team is working cross-functionally on an initiative, Dunn said.

"Make sure to not confuse leadership with functional management."
Julian Dunn

Good product managers, for example, are excellent leaders even if the people on their team aren't their direct reports, he said. "But you must empower those leaders to be able to make decisions pertinent to their teams, even if they don't have a manager/director/executive title. Be clear with them about what level of decision-making authority you want to allow them to have, and stick to it."

3. Integrate two-pizza teams around portfolios

Amazon has made waves in the DevOps world by introducing the concept of two-pizza teams: The most effective team is small enough that everyone on it can be fed with two pizzas. Using smaller team structures lends itself to successfully adhering to the loosely coupled, microservices style of software delivery that high-performing DevOps organizations favor.

But reorganizing IT into smaller teams can be daunting in the enterprise environment, said Alan Zucker, founding principal at DevOps consulting firm Project Management Essentials. Scaling up and "integrating these resources is much easier said than done," he said.

One way to start is to build out portfolio-based organizations, he suggested.

"The portfolio-based team would include developers, production support or operations, testers, DevOps engineers, agilists, traditional project managers," and others, he explained. "The teams may be functionally or role-aligned but share a leadership that is close to the work and focused on building and maturing the organization's ability to quickly deliver value to their customers."

On a practical level, Zucker said, this means that a group might have a vice president or director of technology who supports an application portfolio such as finance. From there, this vice president oversees a number of smaller business-aligned DevOps teams that would be led by managers or directors.

Some of these smaller teams might support product delivery in an application area such as revenue reporting, accounts payable, or financial reporting. Others might be functionally aligned around areas such as production support, testing, automation, and agile project management.

"By organizing the functional teams independently, these groups have the advantage of building and maintaining their craft while closely supporting the development delivery teams. And by closely aligning them within the delivery organization, they are able to have a shared sense of mission to serve a particular business area."
Alan Zucker

The leader of the overarching portfolio group would be in charge of orchestrating the teams so they share an organizational focus.

It is not easy to build this type of organization, he said "It takes leadership. It requires that the directors and managers see their role as building a collaborative and trusting environment for their team members."

4. Recruit the right mix

The first order of business should be to do a skills gap assessment. This starts by establishing what mix of both roles and skills an organization will need to achieve the team's mission. With that defined, look at which team members are filling current roles, how much additional head count can be hired, and which skills new people will need in order to fill in the gaps.

The shortfalls should be examined not just for core technical competencies or roles that need to be filled, but also for the kinds of additional interpersonal skills and personalities the leader thinks could help a team gel so that it becomes more than a sum of its parts.

Team builders should seek a cross-functional mix of experience and skills across the entire team. But they should also seek people with a good mix of experience and knowledge, noted Jasper van der Hoek, enterprise architect for Mendix.

"With DevOps, the goal is to build self-sufficient teams. Be wary of the pitfall of creating miniature IT organizations with siloed expertise; in the long run that will create more issues than you have today."
Jasper van der Hoek

This means finding people who not only have a depth of specialty in what their specific role prescribes (the classic I-shaped skills formation, where people think narrow and tight), but also a breadth of knowledge on top of that specialization (a DevOps-optimized, broader, T-shaped skills formation) that would let them pitch in and collaborate on a range of duties. Recruiting and developing T-shaped team members ensures that every team member can take responsibility for all aspects of a team's mission.

"You always have specialists in areas, but it's important that every person is encouraged to develop a broad array of skills that they are comfortable with."
—van der Hoek 

For example, a UX specialist could come up with the optimum ideas and processes, but several people in the team should be able to make this a reality, he said.

5. Cool tools can attract and retain 

Let's face it: The best candidates for DevOps teams like working with new, shiny technology. It's a lot harder to recruit and retain these rock stars in an organization that relies on a creaky, legacy toolchain to deliver software.

Making an investment in the tools that DevOps staff use not only will make them more effective, but it will also make them want to stick around, said Derek Choy, CIO for Rainforest QA.

"An important way to attract top DevOps talent to your company is to prioritize building an advanced and interesting DevOps stack."
Derek Choy

DevOps engineers are looking for visionary projects to make their mark in a space that's always changing due to the latest advancements, Choy said. "The more you can prove that your company is at the forefront of the latest innovations, the more likely it will be that potential candidates want to work for you."

6. Recruits want mentors

Of course, recruits aren't just looking for cool tools. They also want the assurance that they'll be working with quality people, particularly the people they're reporting to. This doesn't just mean working under competent management; it also means working under leaders willing to mentor them, Choy said.

"Strong DevOps leaders are teachers—they are always at the forefront of the DevOps community, making a name for themselves through notable conference speaking sessions, conducting unique research, and publishing it. Candidates often look up to these leaders and in some cases join a team solely based on the promise of working with someone they hope to emulate."

This means team leaders should be making the effort to build up their personal brand and stretch the bounds of what it means to be a leader.

7. Teach at universities

One way to become a teacher at work is to literally teach elsewhere. According to Christian Rennella, CTO and co-founder of oMelhorTrato.com, a South American insurance-comparison site, one of the most effective strategies he has employed to find the best DevOps candidates is to teach at local universities. He says his work as a professor has helped him source over 60% of the new DevOps employees brought into his organization—and the results from these hires have been very favorable.

"You do not need to be a teacher to be able to use this source to generate new candidates, either. Simply look for a connection with your local university to start. Organizing and promoting technical challenges, competitions, or events among engineering students can be a nice starting point."
Christian Rennella

8. Consider self-selecting teams

When the team at software analytics company New Relic underwent its own DevOps transformation, one of the ways it put together high-performing teams was to give staffers more of a say in the makeup of individual teams. Self-selection of teams can make it easier for the business to organically create teams with the spark that comes when team members mesh together both professionally and interpersonally.

It's hard for managers and leaders to understand all the people dynamics within a team, said Jim Gochee, chief product officer at New Relic. By enabling teams to self-select, they figure out for themselves who they want to work with—and it turns out that a good group of people who like to work together almost could work on anything.

"If people enjoy who they're working with, there's a lot of trust, which leads to better work being done more productively, and much more emotional investment in the outcome."
Jim Gochee

9. Give them autonomy

It's a candidate's market these days, which means that financial incentives such as bonuses, high salaries, and related perks aren't necessarily going to cut it when it comes to attracting quality talent, said Gochee. More than any other tool, perhaps the best recruiting bonus that organizations can dangle in front of prospective employees is that of working autonomously.

"I've seen the impact it makes when a development team takes full ownership, including first line pager call, of the services they write. The engineers get more curious and engaged around how the customer is using their part of the system."

As a leader this is gratifying to witness, he said, with engineering teams"looking to drive outcomes which will help our business and they feel challenged with new problems to solve."

10. Give them time to improve processes

Coupled with autonomy, DevOps staffers also need to know they'll have enough time to use this freedom to good effect. If they're constantly under the gun working on deliverables and never have time budgeted to improve processes, then they're going to burn out quickly, and teams will experience considerable churn.

"Allow them to allocate a fixed amount of time per week or sprint—we generally recommend 10% to 20%—to improve the process, and reward them based on their accomplishments."
—van der Hoek

He suggested rewarding your teams with bonuses for successful experiments, and measurable improvements to the efficiency or reliability of the delivery.

Pull it all together

There's no magic bullet for successful DevOps team building, but the process isn’t rocket science. Much of the advice dispensed above is of the common sense variety. A lot of it requires good-old-fashioned hard work and a grounding in reality.

To perform at the highest levels, recruits must be well compensated, teams well-structured and goals set according to business priorities. And while recruiting is important, retention and training of existing staff are just as important. It takes a solid combination of all of these ingredients to build a team that truly thrives.

Share your best practices for attracting and retaining DevOps talent and fostering an effective team.

Keep learning

Read more articles about: App Dev & TestingDevOps