A series of 5-minute posts on applying principles of flow to knowledge work
In the previous post, I told the story of how Eliyahu Goldratt proposed time as a new mechanism for limiting work-in-process, using a new method he designed called Drum-Buffer-Rope (DBR).
Let’s examine how DBR proposes to fix the situation we left at the end of post #102:
You’ll recall that the red indicates everyone in the company is overloaded and overworked. The more work everyone sends to Engineering (which is the bottleneck in this system), the less time the engineers have to actually get things done. The less they produce, the more new projects everyone else starts “in the meantime,” thus sending even more work to the bottleneck in a vicious cycle.
The question DBR seeks to answer is, “How do we operate the system to achieve maximum throughput?”
Let’s use an analogy: imagine an empty freeway whose flow we’re trying to maximize. As you add each additional car, throughput increases, since the cars can all drive at the same speed without slowing each other down.
But this only works up to a point. Eventually, the incoming cars will start interacting and slowing each other down. Throughput will peak, and then quickly drop. Perhaps you’ve noticed this tipping point while driving on the freeway — all the cars are evenly spaced and flowing at a good pace, and then out of nowhere, an additional few throw the system into disequilibrium, and traffic grinds to a halt.
So our question is, “What is the optimal number of cars to allow onto the freeway to achieve peak traffic flow?”
The answer is obvious when seen from above like this:
The optimal number of incoming cars is however many the narrowest, slowest section of freeway can allow through on a consistent basis.
DBR is designed to enforce this: the processing rate of the bottleneck is the “Drum” that determines the pace at which the entire system should work (like a drummer in a marching band helping the whole group step in sync). The “Rope” is the signal that “pulls” a new item of work into the pipe only when an item is processed by the bottleneck (the same role played by Ford’s belts and Ohno’s kanban cards earlier).
There is one last element to add, which is the Buffer. Buffers in general are an important element in many systems: the wall of a cell is a buffer against the outside environment; the shocks on a car are a buffer against the bumps in the road; the two hours you allow when arriving at the airport are a buffer against unexpected delays. Any part of a system that needs protection from uncertainty, variation, or disturbances in the environment, while still interacting with that environment, requires some sort of buffer.
The need for a buffer in manufacturing becomes obvious when we remember that the capacity of the whole system is equal to the capacity of the bottleneck. What this means is that the “cost” of a broken-down machine (or sick employee) at the bottleneck is not the time lost for that one work center. It is the burn rate for the entire company. Every single minute of lost time at the bottleneck must be counted as a lost minute for the entire system.
Therefore, we must ensure that the bottleneck never goes idle for any reason. The only way to do that is to stockpile work-in-process in a queue in front of it, so it will always have something to work on even if the flow from upstream gets temporarily interrupted.
This is exactly the purpose of the Buffer: to protect the bottleneck from disturbances in the upstream flow of work, evening out the variations and doling out chunks of work from the queue in exactly the quantity and at the pace required for maximum efficiency.
The principles of flow imply a management philosophy: no company should take on more work than their bottleneck can process. The job of management is to determine the capacity of their bottleneck, fill it, and then allow no more projects to begin until one is completed.
In other words, for even one part of a system to be fully utilized (the bottleneck), every other part must have excess capacity. This is in direct contradiction to the universal rule of the modern workplace: “everyone stay busy,” otherwise known as “use all available capacity.” Which is why Goldratt described this as perhaps the single greatest paradigm change required of management in adopting the Theory of Constraints.
The end result of ignoring these principles is familiar to many organizations. If someone reveals or even suggests that they don’t have enough to do, we find something for them to do. If we can’t find anything, we let them go. So of course, no one ever has “nothing to do.” Any excess capacity that may appear is hidden, obscured in the fog of busywork, which expands to fill all available space. Later, when an opportunity for real value-adding work comes along, they’re “busy.”
Seeing their people with no time, and concluding the problem must be a “lack of capacity,” management hires yet more people, who end up doing yet more busywork. Without understanding the root cause of the problem, these new hires make the problem worse, manifesting Brooks’ Law:
“Adding people to a late project makes it later”
The ironic consequence of not allowing people to have excess capacity is that the company is left with tremendously more excess capacity than ever before.
The power of DBR is that it doesn’t bother with complex graphs, doesn’t require total surveillance, and doesn’t prescribe exactly how work should be performed. It focuses instead on system dynamics, using three time-based leverage points plus feedback loops to balance flow, instead of capacity.