Theory of ConstraintsUWoL
Useful Ways of Looking is a series on concepts I often reference. You could think of them as mental models, or primitives, or keys, or, well, Ways of Looking. You probably landed here because I referenced one and sent you this link for further explanation!
The Useful Ways of Looking are not necessarily true, but they are — as the name suggests — often useful. Finding where to skillfully apply them is part of the job.
In brief
To solve any problem: 1) properly define your goal, 2) clearly outline the system that will dictate the achievement of that goal, 3) determine the bottleneck of that system, and 4) address the bottleneck — and only the bottleneck.
More context
Eliyahu Goldratt’s Theory of Constraints — first covered in his book The Goal — is superficially about how to generate more output from a factory floor. But the approach can be used for any problem you’re facing.
First, define the outcome you want. Without a specific, clear goal, optimization efforts are for naught.
Second, outline the “system” that dictates the achievement of that goal. In the case of a factory with a goal of throughput, it is relatively clear: there are a series of stations which each perform a role in the creation of the product. You can then estimate the throughput of each of those stations.
You could do the same for software product development (definition to design to engineering to QA), or marketing (campaign concepting to asset creation to placement to measurement), or anything else in your life where there is a goal (perhaps gaining muscle: fueling your body to working out to recovering).
Once you have a clear understanding of the system and its components — this is the crux of the approach — define the bottleneck (also known as a “constraint”). In nearly every single system, there is only one bottleneck.
The key insight behind the Theory of Constraints is this: improving anything other than the bottleneck will have no positive impact on the goal.
This may seem unintuitive (there are several such realizations in this theory), but it holds.
Unfortunately, we are often tempted to improve lots of things that are not bottlenecks.
If another part of the system is underperforming, shouldn’t we fix it? The Theory of Constraints suggests that while you can, it will not get you any closer to your goal.
If there’s low-hanging fruit, doesn’t it make sense to pick it up? The Theory of Constraints suggests that it would be a waste of even the little effort.
In short: the only thing that matters is finding the bottleneck and fixing it. Doing so first requires understanding that a single bottleneck is the direct limiting factor and cause of your current throughput. Then you must identify that bottleneck.
Once you improve one bottleneck, another may arise (or the same bottleneck may remain). There is deeper consideration in Goldratt’s books (beyond the scope of this post) about where you want the bottlenecks to be.
There are three primary ways of fixing a bottleneck, and are best considered in this order (these are part of Goldratt’s “five focusing steps”):
- Exploit the constraint: make sure it is being executed efficiently. Don’t let it be “idle” if at all possible.
- Subordinate everything else to the constraint: don’t let other parts of the system cause problems for the constraint. For example, make sure there is a reasonably-sized “buffer” of work waiting for the constraint from the previous step. And ensure that work gets sent back to the constraint as infrequently as possible.
- Add more capacity to the constraint: as a last resort, you can try to simply add more horsepower to the constraint.
There is more to the theory, available in the readings below. But the heart of this Way of Looking is that whenever you have a “problem” or an outcome you want to improve, you should sit down and calmly, logically follow these steps:
- Clearly identify your goal in terms of an output metric
- Understand the steps of the “system” that leads to that output
- Identify where the bottleneck is in that system
- Do nothing other than improve that bottleneck — by exploiting / optimizing it, subordinating other parts of the system to it, or adding more capacity
- Sit back and re-evaluate, and begin the cycle again
Every system has a lever. Accepting that reality and correctly finding it is often the hardest step.
Further readings
The Goal by Eliyahu Goldratt is exceptional and highly readable. A business book that is worth every minute! His other books are great too.
The best article I have found on the Theory of Constraints is this one from Elliot Temple.
Tiago Forte wrote a good layman’s series too.
Looking for more to read?
Want to hear about new essays? Subscribe to my roughly-monthly newsletter recapping my recent writing and things I'm enjoying:
And I'd love to hear from you directly: andy@andybromberg.com