Top-performing engineering teams can be found across a range of industries and be structured in a variety of ways, but there are some features they all share. To find out which characteristics make the biggest difference, Humanitec surveyed over 1800 engineering organizations in the EU and US. Humanitec’s CEO Kaspar von Grünberg dove into the findings in his latest webinar.
The survey covered different aspects of DevOps, including containerization, configurations, performance metrics, and team setup and culture. Kaspar’s team used this data to assign each participant a DevOps Maturity Score (DMS) which could then be used to compare teams against each other.
Surprisingly, Kaspar found that architecture and metrics were the least helpful factors for explaining why some teams performed better than others. For example, the vast majority of top-performing teams run a loosely coupled microservice architecture for their application. However, a monolithic architecture could be reasonable in some circumstances.
Research from the authors of the DevOps bible, Accelerate, concluded that four key metrics differentiate between low, medium, and high-performing teams: such as lead time, deployment frequency, change failure rate, and mean time to recover (MTTR). While these metrics illustrate to what extent top-performing teams do well, they do not explain why they do well or how other teams can emulate that success.
Kaspar found that team culture was the determining factor that set top teams apart from the middle of the pack, or what he calls the “DevOps Mountain of Tears.”
When asked about team setup and culture, teams self-identified as falling into one of three categories:
- Dedicated Ops. These teams have a dedicated Ops engineer to take care of DevOps tasks. App developers are strictly separated and don’t care much about configuration and infrastructure.
- Mixed. Some developers can do DevOps tasks on their own and are constantly busy helping less experienced developers.
- You build it, you run it. All developers can do DevOps tasks on their own.
Nearly all of the top-performing engineering teams surveyed reported using a “you build it, you run it” philosophy. However, the ubiquity of this approach does not translate to low-performing teams.
52.9 percent of low-performing teams reported having dedicated Ops engineers, 44 percent reported having developers manage some DevOps tasks, and a mere 3.1 percent reported living a “you build it, you run it” philosophy.
Why is this difference so important? According to Kaspar, we should pay attention to teams transitioning to a mixed model. He explains “somebody says developers are now doing everything, and they’re shifting the operational overhead into the edges. … [Developers] don’t want to centralize this. We are now DevOps.” Suddenly, developer teams must do everything themselves. Senior developers take over dealing with Helm charts, configurations, and other overhead. Junior developers start to rely more on senior developers to perform DevOps tasks.
Kaspar observed this anti-pattern throughout his research for Humanitec’s 2021 DevOps Benchmarking Study. Adoption of the mixed model creates what he calls “shadow operations.” Senior developers spend too much time helping junior developers and their work suffers as a result. Teams have to reallocate increasing amounts of resources to operational tasks. The impact of this shift is far-reaching. Kaspar argues that teams undergoing this transition experience a 15 to 20 percent drop in productivity. In other words, with a mixed model, teams get “all of the negatives, none of the positives.”
Of course, team setup is only one of many factors that determine the success of an engineering team. However, Kaspar believes that this is a pattern worth taking note of (and avoiding).