The "First Way of DevOps"

Author: Oliver Hankeln

Date:

Look at your value creation chain and identify the bottleneck. Support and improve the bottleneck. Monitor the effects of your changes. Rinse and repeat.

Introduction

In his book “The Phoenix Project”, Gene Kim describes three ways of DevOps. These ways are the basic principles that DevOps is built upon. They contain the values and ideas behind the processes and practices of DevOps.

In this blog series we will take a closer look at those ways.

The First Way

The First Way is called “Improve flow from left to right”. It is about improving the flow of work. Obviously, left and right are not used in a directional sense, but to describe the flow of work through the value creation chain. When we visualize the value creation chain we usually start on the left with the idea and have the final product at the right side. This is what is meant with flow from left to right: The flow from an idea to a complete product is to be improved.

What does it mean specifically?

The three ways are not simple steps that you just have to follow in order to be successful. They are different approaches of how we can think about and improve our organisations. This is not a weakness but a strength because it helps to avoid mechanical DevOps that just focuses on symptoms without touching the root causes. The obvious downside is that we have to put our own thoughts and energy in to fill the three ways with live.

How is this useful?

The First Way tries to shift our focus away from individual steps of work towards a systemic view of the whole value creation chain. We no longer try to answer the question: “How can we improve the speed in our software development department?” Instead, we start searching for the bottleneck in our value creation chain. Throughput in the bottleneck is the only factor that determines throughput in the overall system. All energy that we spend to improve anything else than the bottleneck is wasted.

Suppose we have a car factory where the welders can weld 20 car bodies a day, the painters can paint 15 cars and the interior fitters can finish 25 cars a day. Then 15 cars can be built per day. If we now put effort in improving the welders so that they can now create 30 car bodies a day this does not affect the output of the factory at all.

This systemic view helps us to decide where to put our effort to improve the situation.

Sometimes, it is even helpful to de-optimize one step in order to help the bottleneck. In our example the interior fitters could perhaps remove the protective covers after the paintjob is done in order to help out the painters.

The systemic approach also tells us that there is no value in creating stockpiles of intermediate products. If the welders keep on producing 30 car bodies per day we will have to spend more money on storage capacity without increasing the factory’s output. In this way a local optimization at the welders (from 20 to 30 car bodies a day) step would lead to a global de-optimization (higher cost for storage).

The bulk of the cycle time is usually spent as queue time. Often we can improve bottlenecks by reducing or eliminating unnecessary queue times. These times are often created if we have manual handovers and approval steps. Automating these approvals can be helpful in this situation.

To identify bottlenecks we have to measure cycle time and throughput. This data helps us to verify whether our improvements are actually improving the situation or not.

Organisations are all different so there are no one-size-fits-all solutions on what the bottlenecks are or how they can be improved. But focusing on the systemic view of the whole system is what will help you find the right spots to act.

The term bottleneck

In a team that I’ve led people got very upset when they found out that someone else called the team a bottleneck. At that point in time this was true, however. The team mistook the term as judgement of their work or work ethics. Bottleneck is not a moral judgement - it simply is the term we use for the part in a system that has the lowest throughput. In every system there is always a bottleneck. If a new magical paint would allow the painters to paint 50 cars a day, suddenly the interior fitters would be the bottleneck (and the painters would have to remove the protective covers themselves again).