Achieving the DevOps’ Three Ways
The site places these points within the context of The Three Ways, a set of principles popularized by “The Phoenix Project”. Jez Humble, a notable member of the DevOps community, and Mark Burgess, CFEngine’s author, pointed to these milestones on Twitter.
Following The First Way means thinking about a system’s end-to-end processes, e.g., considering all the steps a software change must take, from the client’s initial request until the deployment to production. This helps to avoid local optimizations and to bring down work silos, as explained by Gene Kim et al. in “The Phoenix Project”. The Second Way enables the amplification of feedback loops, so that the problems are quickly identified and corrected. A canonical example is making an application’s production logs readily available to the development team. The Third Way fosters a culture of continuous experimentation and of mastery through repetition and practice. Netflix’s Chaos Monkey can be seen as an extreme example of The Third Way in practice.
Tom Limoncelli, co-author of Everything Sysadmin, proposes five milestones for achieving The Three Ways. These milestones are informal checkpoints that enable an organization to assess how those principles are ingrained in its culture.
The first milestone is the starting point, when nothing is documented, measured or automated. The impossibility of consistently executing the system’s existing processes and/or rewarding people for local optimizations are symptoms of this first milestone. The organization is also at the start of the journey when it cannot measure the system’s processes, such as knowing how long an average deployment takes.
The second and third milestones mark the long path to The First Way. The former deals with making sure the processes are documented and repeatable while the latter looks for clear process objectives and avoiding rework. An organization practices The First Way when it can, among other things, consistently follow the defined processes and attach a QA checklist to each process step. The First Way also manifests itself when process changes are always discussed and communicated to all the interested parties.
If an organization is doing things like process measurements on a continuous basis and reviewing defects or amount of rework, then it has reached the fourth milestone and The Second Way. At this stage, the organization has dashboards that show data such as step completion times, defects, or cycle times. Most importantly, the organization takes advantage of these measurements to make sure that process changes fix the issues that prompted them.
The Third Way is achieved when the fifth milestone is reached. This level of maturity has some salient features, such as regularly improving cycle and lead times or exercising contingency procedures (e.g., dealing with a failing server) on a regular basis. Usually, all the steps of a given process have triggered a process change or, at least, they have been analyzed and were found to be in no need of optimization.