Operating a product development process near full utilization is an economic disaster.
Principle #6 – Visualize and limit WIP, reduce batch sizes, and manage queue lengths
To achieve the sustainably shortest lead time, Lean systems builders strive to achieve a state of continuous flow, whereby new system capabilities move quickly from concept to cash. Achieving continuous flow requires the elimination of the traditional start-stop-start project initiation and development process, along with the incumbent stage gates that hinder flow (Principle #5).
The three primary keys to implementing flow are to visualize and limit work-in-process, reduce the batch sizes of work items, and to manage queue lengths.
Visualize and Limit WIP
Overloading teams and programs with more work than they can accomplish is a common and pernicious problem. Having too much work-in-process (WIP) in the system causes multiplexing and frequent context switching. It overloads the people doing the work, reduces focus on any task at hand, reduces productivity and throughput, and increases wait times for new functionality.
The first step is to make the current WIP visible to all stakeholders. This visualization illustrates the total amount of work at each step and also serves as an initial process diagnostic, showing the current bottlenecks. In some cases, simply visualizing the current work is a wake-up call that causes developers to start to address the systemic problems of too much work, and too little flow.
The next step is to start balancing the amount of work in process against the available development capacity. When any step reaches its WIP limit, no new work is taken on.
However, limiting WIP requires knowledge, discipline, and commitment. It may even seem counterintuitive to those who believe that the more work you put into the system, the more you get out. While that is true up to a point, after that point the system becomes turbulent and flow decreases. There is no substitute for effective management of WIP.
Reduce Batch Size
Another way to reduce WIP and improve flow is to decrease the batch sizes of the work— those requirements, designs, code, tests and other work items that move through the system. Simply, small batches go through the system faster, and with less variability, which fosters faster learning. The faster speed is obvious; the variability increases because of the accumulated variability of the items in the batch.
The economically optimal batch size is dependent upon both the holding cost (the cost for delaying feedback and value) and the transaction cost (the cost of implementing and testing the batch). The figure illustrates the “u-curve optimization” for batch size .
In order to improve the economics of handling smaller batches—and thereby increasing throughput—a primary focus must be placed on reducing the transaction costs associated with any batch. This typically involves increasing the attention and investment on infrastructure and automation, including things such as the continuous integration and build environment, DevOps automation, and system test setup times. This is integral to systems thinking (Principle #2), and a critical element in long view optimization.
Manage Queue Lengths
The last element in achieving flow is by managing—and generally reducing—queue lengths. Little’s Law—the seminal law of queuing theory—tells us that the wait time for service from a system is the ratio of the length of the queue divided by the average processing rate (This might seem complicated, but even the line at Starbucks teaches you that). Therefore, assuming any average processing rate, the longer the queue, the longer the wait.
For solution development, this means that the longer the queue of work awaiting implementation by the team, the longer the wait time, no matter how efficient the team is in processing the work. If you need faster service, you must either reduce the length of the queue or increase the processing rate. While increasing the processing rate is a consistent and common goal, the fastest way to reduce wait times is to reduce the length of the queue. This is accomplished by keeping backlogs short and largely uncommitted. Visualizing the work helps this process immensely.
Reducing queue lengths decreases delays, reduces waste, and increases predictability of outcomes.
The three primary ways of implementing flow, visualizing and limiting work-in-process, reducing the batch sizes of work items, and managing queue lengths provide an extremely powerful way to increase throughput. Doing so can cause fast and measurable improvements in customer satisfaction and employee engagement, to the overall economic benefit of Agile teams and their customers.
Learn More Reinertsen, Donald G. The Principles of Product Development Flow: Second Generation Lean Product Development. Celeritas, 2009.
Last update: 11 May 2015