The Three Ways of DevOps (The Phoenix Project)
The Three Ways is an improvement programme specifically designed for DevOps teams. It is based on Theory of Constraints and socialised in the book The Pheonix Project by Gene Kim, George Spafford and Kevin Behr.
The first way highlights the importance of optimising for the flow of business value.
This means not passing defective work downstream (i.e. rolling out code with failed tests) and critically not optimising a local process at the cost of the global lifecycle.
The first way is achieved by adopting Cycle Time metrics and drilling in to bottleneck areas to remove constraints.
Amplify Feedback Loops
When engineering teams are able to get feedback from customers quickly, they are able to test new ideas in production quickly and react to user feedback quicker. This results in a far more competitive product development process than companies which take longer to test ideas in the real-world.
Engineering can optimise for fast feedback loops between the business and technology by shipping software in smaller increments.
Shipping smaller means you get feedback from your users quicker. Early and quick feedback allows you to respond faster to customers changing requirements.
We live in a chaotic world and we need to test ideas to gain an understanding of what users want in the real world. By shipping fast, you get feedback fast. Before sinking huge cost into large-scale projects, you can test MVPs rapidly to get feedback fast.
Culture of Continuous Improvement and Learning
No risk, no reward.
The third way is about creating a culture that fosters continuous learning, taking risks and learning from failure. At the same time, the third way is also about ensuring you have the repetition and practice needed to achieve mastery.
For continuous experimentation and risk taking it is important to foster a culture where staff are rewarded for taking risks. To ensure we're able to resolve failures quickly, it is important to monitor Full Resolution Time for Bugs.
To achieve mastery, it is important to limit cognitive load so people have the bandwidth to focus.