DevOps is not just about culture or just about automation. All of the CAMS values enable organizations to bring DevOps principles and practices to life.
The Three Ways are introduced in ‘The Phoenix Project: A Novel About IT, DevOps, And Helping Your Business Win’ by Gene Kim, Kevin Behr and George Spafford. The Three Ways are an effective way to frame the processes, procedures and practices of DevOps, as well as the prescriptive steps.
- The First Way– Flow Understand and increase the flow of work (left to right)
- The Second Way– Feedback Create short feedback loops that enable continuous improvement (right to left)
- The Third Way– Continuous experimentation and learning
o Create a culture that fosters experimentation, taking risks and learning from failure
o Understanding that repetition and practice is the prerequisite to mastery
The First Way – Flow
One of the Lean principles is ‘flow’. Taking a walk on the shop floor with an experienced belt or Lean sensei, the first question to be answered is ‘where is the flow’? Flow should be visible at the shop floor. This should not be compared with people being busy. Everybody can look very busy, without having a flow. Lean is focused on getting the right things to the right place at the right time in the right quantity to achieve perfect flow. If production flows perfectly without interruptions there is no inventory or only a limited amount of inventory between process steps. This results in a lower risk for confusion and mistakes. Flow will create a continuous process to identify problems. Each problem is an opportunity to improve.
If you experience no flow, there is no lean. The easiest way to observe flow is to take a look at both ‘doors’ of the shop floor. At one door you should see orders corning in (e.g. Parts, components, sick patients, clients, bins, trucks, requests-,etc.). At the-other door you see finished goods and completed products going out (e.g. Subassemblies, healthy patients, happy clients, products, passports, answers, etc.) going out. Between these two ‘doors’ you should see people busy and equipment running, but more important is that you observe flow at each work location or machine. At one side of the work location you should see work being done and on the other side of the location you should see work that is completed and moved to the next operation step. The amount of work waiting should be limited, organized and clear.
A steady and continuous flow can be observed easily because the time between work moving between stations is constant. The amount of time depends on the type of organization, but will typically vary between a few seconds and a few minutes. It should not take hours or days or even longer. Even for very complex machines it should be possible to observe flow. A good example is the production of trucks or the patient in a hospital.
The Second Way – Feedback
In the era of rapid technology evolution, it is not the biggest that survives, but the fastest. The sooner the end product is delivered without major defects, the sooner feedback can be received, and incorporated into the next iteration. The shorter the iterations, the better the learning and communication within the team. With speed, decisions can be delayed. Speed assures the fulfilling of the customer’s present needs and not what they required yesterday. This gives them the opportunity to delay making up their minds about what they really require until they gain better knowledge. Customers value rapid delivery of a quality product.
The just-in-time production ideology could be applied to software development and Operations, recognizing its specific requirements and environment. This is achieved by presenting the needed result and letting the team organize itself and divide the tasks for accomplishing the needed result for a specific iteration. At the beginning, the customer provides the needed input. This could be simply presented in small cards or stories – the developers estimate the time needed for the implementation of each card. Thus the work organization changes into self-pulling system – each morning during a stand-up meeting, each member of the team reviews what has been done yesterday, what is to be done today and tomorrow, and prompts for any inputs needed from colleagues or the customer. This requires transparency of the process, which is also beneficial for team communication.
Practices for achieving fast feedback include
- Automated testing
- Peer review of production changes
- Monitoring/Event Management data
- Production logs
- Process measurements
- Retrospectives and Post-mortems
- Shared on-call rotation
- Change, Incident, Problem and Knowledge Management data
- Daily Standup meetings
The Third Way – Continuous Experimentation and Learning
The Third Way encourages a culture that fosters two things: continual experimentation, taking risks and learning from failure; and understanding that repetition and practice is the prerequisite to mastery.
Some of the ways in which this principle could be implemented are
- Allocate time for the improvement of daily work
- Create rituals that reward the team for taking risks
- Introduce faults into the system to increase resilience
- Plan time for safe experimentation and innovation (hackathons)