Practical DevOps Strategy and Implementation
Systems Thinking
The Principles of Flow
The First Way of DevOps is all about flow. It’s about optimizing the entire system for a smooth, fast, and predictable delivery of work from concept to customer. Think of it as the journey an idea takes from a business requirement, through development and testing, all the way into the hands of a user. The goal is to make this journey as efficient as possible.
This requires a shift in perspective. Instead of each team focusing only on their individual tasks, we must adopt systems thinking. We look at the entire value stream—all the steps required to deliver value—and work to improve the system as a whole. The aim is to increase throughput (the rate at which work is completed) and reduce the lead time (the total time from request to delivery).
The First Way of DevOps is about creating a smooth flow of work through the different functional areas in an organization, from gathering requirements to operating software in production.
Visualizing the Workflow
You can't improve what you can't see. The first step to improving flow is to make the work visible. This is where Value Stream Mapping (VSM) comes in. It's a technique for creating a visual map of every step in your software delivery process.
The map starts with a customer request and ends with the delivery of that feature. Along the way, you document each activity, the time it takes, and the time spent waiting between steps. This process forces you to confront the reality of your workflow, often revealing surprising delays, unnecessary handoffs, and loops of rework.
The goal of VSM isn't to create a perfect diagram. It's to build a shared understanding of how value actually flows—or doesn't flow—through your organization.
Once you have this map, the problem areas become obvious. You can see where work piles up and where it sits idle. These points of friction are your system's constraints, and they are the key to improving the entire system.
Finding the Bottleneck
The Theory of Constraints (TOC) states that any complex system has one governing constraint, and the system's total output is limited by this single bottleneck. A chain is only as strong as its weakest link.
In software development, this means that making improvements to any area other than the bottleneck will not improve the overall delivery speed. For example, if your developers can write code twice as fast, but the testing environment takes 48 hours to provision, you haven't delivered value any faster. You've just created a bigger pile of code waiting for testing. This is a classic local optimization that fails to improve the global system.
A real-world systems thinking failure occurs when teams increase web server capacity to handle more traffic but neglect the database's connection limit. The servers can handle the load, but they all try to connect to the database at once, exhausting its connection pool. The result? The entire system fails. The bottleneck was never the servers; it was the database. The only way to improve the system is to address the actual constraint.
Limiting Work in Progress
One of the most effective ways to manage constraints and improve flow is to limit Work in Progress (WIP). WIP is any task that has been started but not yet completed. When you have too much WIP, it becomes difficult to track everything, quality suffers due to constant context switching, and lead times grow longer because work sits waiting at each step.
By setting explicit WIP limits, you force the system to finish existing work before starting new work. If the development team hits its WIP limit, they can't pull in a new feature. Instead, they must help unblock the next step in the process, such as helping the testing team or automating a deployment step. This naturally focuses the entire team's effort on alleviating the current bottleneck.
Limiting WIP makes bottlenecks impossible to ignore. It improves focus, reveals system inefficiencies, and ultimately helps the entire team work together to optimize the whole system, not just their small part of it. This is the essence of The First Way: creating a fast, smooth, and predictable flow of value to the customer.
