In 4 months we have improved lead times from 2 months (at best) to an average of around 7 days. We have gone from a heavy delivery proces.s with deployments once every month and multiple handovers to a a lightweight process with no handovers. We now release almost every day, sometimes as much as 4-5 times a day. Big batches makes sense if you have high transaction costs. With the possibility to do zero downtime deployments and a transaction cost of a few minutes, batching stuff makes little sense. When a new feature is ready to be release, we ship it. We got into that position by taking small steps, solving one problem at at time. But we did so with some sense of urgency. We went as fast as we could without blowing stuff up. What we started with a wish to establish a better way of working, proposed as a hypothesis. We knew that we wanted to move in the direction of continuous delivery, other than that we started from scratch.
We knew what we wanted to accomplish and had some thoughts about what would be important when forming a new product team. The picture below, which we presented on the first day at work, sums up our thoughts
(Inspiration for the drawing is from several sources:
Toyota Kata, OKR, Stephen Bungay, Spotify, Amazon (Werner Vogels), Don Reinertsen, W.E Deming)
The vision, why we were doing this and what we wanted to accomplish in the 4 months experiment was defined. The responsibility of the team was to find out how to reach these goals. The team took the challenge, and over the next 4 months we discovered our process as we went along. The key principles in our approach have been:
- Autonomy & Alignment
In future posts we will take a closer look at these principles, in the context of our product team.
One of my team mates, Jakob Lind, has written a nice post about our approach