In this post, Adrian applies Michael Kramer’s O-Ring Theory of Economic Development to the realm of DevOps. but in my mind, the most interesting applicability of this theory is at a context somewhere between the massive scale of economic development and the targeted scale of DevOps: the context of organizational operations and talent management in particular.
In a nutshell the O-ring theory, inspired by the 1986 Challenger disaster where a single failure of an O-ring lead to catastrophic results, shows how small changes in quality lead to massive changes in output/productivity.
The theory applies in scenarios that meet the following three conditions:
- Production depends on completing a series of tasks
- Failure or quality reduction of any one task reduces the value of the entire product
- You can’t substitute quantity for quality (Adrian’s example: two mediocre chefs can’t replace a great chef in making an amazing meal)
In Adrian’s example, quality of each step/person is measured by a coefficient (q) between 0 and 1, and the process has 10 steps. Improving the quality in each step from 0.5 to 0.75, a 50% improvement, yields a 600% improvement in output.
I’d argue that the entire process of software development and delivery meets the three conditions for the O-ring theory to apply. You can probably generalize this more broadly to the entire organization/company, but satisfying the 2nd condition may be more challenging.
Adrian’s implications, applied to talent will look something like the following:
- A single “weak link” overall output dramatically. It’s not enough to hire top talent for some roles. You need to be good across the board.
- Small differences in quality quickly compound to make very large differences between the performance of the best-in-class and the rest
- The better you already are, the more value you get from improving your weaknesses. Conversely, if you’re fairly poor across the board, you won’t get as high a return on investment on an improvement in one specific area as a company with a higher overall level would. These forces tend to lead to ‘skill-matching’ – fairly uniform levels of performance across the talent pool of a given organisation
A different way to articulate #3 is that the more great workers a company already has, the more incremental value another great worker adds. This, to some degree, rationalizes some of the behaviors we’re seeing in the market where top performing companies are willing to pay more for top talent – it’s not just because they can, it’s because they should…
But it also calls into question another practice that’s becoming more common in these top performing companies. Some of them, like Google, use the growing proof that talent is not distributed normally (which I covered here) to justify paying their employees “unfairly” and legitimizing substantial (3x-5x and sometime even more) pay differences for employees at the same level. But if the 10x difference in output can be explained, not by the existence of a single 10x engineer, but by the existence of 10 engineers that are only 10% better than average, does that still make sense?