One of our favorite thinking tools is Eli Goldratt’s Theory of Constraints. In fact, it’s become such an essential part of our work that we recently realized we’d stopped talking about it, while still using it every day.
The central idea of the Theory of Constraints is this: Every system has exactly one constraint that limits the effectiveness (or throughput) of the whole system.
Several key ideas follow from this central idea:
- Improving any other part of the system—anything that’s not the constraint—will have no positive effect on the throughput of the system. At best, it’s waste. More often than not, focusing on a non-constraint makes the whole system worse.
- Identifying the constraint is the first move if you want to improve any system. (That is, unless you don’t know what the system should be optimized to produce more of. In that case, you figure out the goal or purpose of the system; then you find the constraint that limits how much of that goal you’re getting.)
- Once you know what the constraint is, it’s often possible to get outsized ROI from small changes because increasing capacity at a single constraint is particularly high leverage.
The best coaches and consultants are valuable because they’ve seen enough examples to be able to cut through the noise and help their clients find the one constraint in their system and the next move that’ll increase flow through that constraint. (Many ineffective consultants only know how to address one kind of constraint, probably the one they had success with before they became a consultant. If your system happens to have that constraint, great! If not…well, see number 1 above.)
After 20+ years of doing and helping others do this Agile Software Development stuff, we’ve noticed that most software teams go through the same sequence of constraints.
- Product management capability—having something valuable to deliver
- Delivery capability—being able to collaborate to deliver that valuable thing in small slices
- Sustainable quality—being able to make changes to an increasingly large system safely and quickly
- Scaling—being able to increase throughput beyond a single team’s capacity to meet market demand once they have traction
Each system is different, and the actual constraints are more granular in particular cases, but this is the broad progression most teams go through. Go out of order, and you get a lot of noise, a lot of change fatigue, but no meaningful results.
Curious about how the Theory of Constraints works to find the right improvement area to focus on? Check out our mini course on the Theory of Constraints here (only $49).
Since product management capability is such a common constraint on so many teams, we’ve spent a few decades finding the patterns that reliably break that constraint. We’ve just released the culmination of all of that work in 80/20 Product Backlog Refinement ($197), a self-guided course that helps Product Owners and their stakeholders create a steady flow of high value work through their team.
Since the constraints shift around frequently in complex systems, holding effective retros that lead to real change experiments every Sprint is a key capability. Our online course Facilitating Effective Retrospectives ($197) gives you all the tools to help even the most stuck teams get improving fast.
Want to grab all of them? Check out our special 2023 Holiday Bundle.
For just $429, gain access to 6 of our most popular self-guided courses. The full bundle includes:
- 80/20 Product Backlog Refinement
- 2-Week Backlog Makeover
- Agile & Scrum Crash Course
- Effective Goal Setting
- Facilitating Effective Retrospectives
- The Theory of Constraints
Last updated