Continuing my summary of The DevOps Handbook, this week we look at the first half of Part 1. We begin with an overview of DevOps and how it is a “result of applying Lean principles to the technology value stream.” Finally, we outline the first of The Three Ways: Flow, Feedback, and Continual Learning and Experimentation.
If you missed out on the previous installment, click here to catch up.
A Brief Overview of DevOps
DevOps is to the technology value stream what Lean is to manufacturing. But it is so much more too. DevOps is a culmination of several other critical movements. These include the Agile Manifesto, Infrastructure as Code/Agile Infrastructure, the adoption of Continuous Delivery, and the Toyota Kata system. Since the phrase ‘DevOps’ was first coined in 2009 by Patrick Debois, the concept has grown to embrace the best qualities from all of these and expand on new principles as well.
The DevOps Handbook establishes the theory of Lean manufacturing; discussing how its principles apply to the technology value stream.
In a manufacturing value stream (a fundamental Lean concept), it is easy to observe the flow of work. The sequence of activities for raw materials—from customer request to product fruition—is a visual process on a factory floor. The focus of Lean is to create a smooth path of operations. In comparison, the key problem within the technology value stream is that everyone’s work is largely invisible.
Value occurs for customers when services are running in production and deployments happen swiftly without causing disruptions. Built on its fundamental principles, the Three Ways, DevOps practices aim to incorporate the same principles. The system seeks to offer visualization of the technology value system. All to achieve a smooth and even flow of work similar to Lean results in manufacturing.
Lean Manufacturing and DevOps Principles
Within Lean, one of the essential quantifiable measurements for following work flow is to measure the lead time of an operation. Which is what the customer experiences. Improving the process time drives fast flow and short lead times in the manufacturing value stream.
In DevOps, the focus is on deployment lead time (the equivalent process time). The aim of the concept is to narrow lead time down to a period of minutes. This is the time between an engineer checking a change into version control up to the change running effectively in production, creating value for the customer, and generating feedback.
DevOps’ The Three Ways, the “principles from which all the observed DevOps behaviors and patterns are derived,” aim to achieve this goal.
The Three Ways: The First Way — The Principles of Flow
The First Way seeks to boost global organizational goals. By improving the fast left-to-right flow of work from Dev to Ops.
To achieve this, teams need to:
- “Make Work Visible.” The technology value stream is a largely invisible process. Making it important for teams to use a visual work board (kanban or sprint planning boards are ideal). All of this makes work tickets much more visible and enables the measurement of lead time. Work moves quickly through the columns from “in production” to “done,” increasing throughput.
- “Limit Work in Progress (WIP).” Studies are increasingly negating multitasking as an ability. Time spent on multiple tasks degrades if our focus is split. Kanban/sprint boards can be a powerful management tool. Use these boards to help limit the number of work tickets that can be in production at any one time. Thereby improving a team’s focus on completing work.
- “Reduce Batch Sizes.” Perform work in small batch sizes to concentrate focus into a single-piece flow (where work happens one unit at a time). Teams can identify and solve issues quickly to prevent disruptions continuing downstream in the process and reduce negative outcomes (variability in flow and poor quality).
Watch Single-Piece Work Flow in Action
**The book outlines the benefits of single-piece flow using a mass production envelope stuffing versus single-unit process example. Check out The Lean Workshop’s video simulation on YouTube to see the single-piece flow efficiency in practice.**
- “Reduce the Number of Handoffs.” Moving code through the value stream from version control into the production environment requires work passing from team to team. On the way, it can lose context, get lost in the system and become subject to rework. Reorganizing teams and automating tasks can actively reduce the number of handoffs. Which ultimately adjusts the amount of time work spends in queue.
- “Continually Identify and Evaluate Our Constraints.” Strive for continuous improvement by identifying any bottlenecks within the technology value stream. Work to break through or exploit these constraints to increase developers’ productivity. Fewer constraints will allow them to develop, test, and deploy code quickly—and ultimately, deliver more value to customers. Common areas of constraint are environment creation, code deployment, test setup and run time, and overly tight architecture.
- “Eliminate Hardships and Waste in the Value Stream.” The Handbook identifies waste within the DevOps context as the “hardships and drudgery in our daily work.” These are partially completed projects, additional work outside the customer’s remit, extra features, employee task switching and firefighting heroics to deal with problems. Eliminating this waste is crucial to the organization goal the First Way: fast ‘Flow’.
Up next in my summary series: The DevOps Handbook Series Part 1: The Three Ways Continued.