The Theory of Constraints (TOC) is a management philosophy developed by Dr. Eliyahu Goldratt, introduced to the world through his 1984 business novel The Goal and subsequently applied to project management through Critical Chain (1997) and a body of practical implementation work that continues to evolve. TOC’s central insight is deceptively simple but profoundly impactful: every system has at least one constraint — a bottleneck that limits the system’s output — and the key to improving the system’s performance is to identify and manage that constraint rather than making random improvements across the entire system. This focused approach to improvement is both more effective and more resource-efficient than the typical management response of trying to improve everything simultaneously.
The Core TOC Insight
Goldratt’s fundamental insight, which he illustrated through Alex Rogo’s manufacturing plant in The Goal, is this: a chain is only as strong as its weakest link. In a delivery system — whether a manufacturing line, a software development pipeline, or a project work breakdown structure — the rate of output is limited by the capacity of the slowest stage. Improving any stage that is not the constraint does not improve the system’s overall output; it only creates inventory piling up in front of the constraint or idle capacity after it. To improve the system’s output, you must first improve the constraint — and then, once the constraint is improved, find the new constraint that has emerged and improve that.
This insight has a counterintuitive implication that contradicts most organisations’ improvement instincts: trying to improve everything simultaneously is inefficient. Local optimisation — improving individual components independently — does not improve system performance unless the component being improved is the current constraint. TOC directs all improvement attention to the constraint and ensures that all other system activities are aligned to support, not compete with, the constraint’s throughput.
The Five Focusing Steps
Goldratt’s Five Focusing Steps provide a repeatable process for identifying and managing system constraints:
Step 1: Identify the Constraint
Find the one resource, process, or capability that limits the system’s throughput. In manufacturing, it is the machine or workstation where work accumulates. In software delivery, it is often the testing phase, the code review process, the deployment pipeline, or a specific technical skill that is in scarce supply. In a project environment, it is the stage where work stacks up while downstream stages are starved. Constraints manifest as the place where queue length is growing relative to other stages — the visible accumulation point in the workflow.
Step 2: Exploit the Constraint
Before investing in expanding the constraint’s capacity, maximise its output with current resources. Exploitation asks: how can we get maximum throughput from the constraint without additional investment? Practical exploitation actions include: ensuring the constraint never sits idle (no unplanned breaks, no waiting for input, continuous work queued), eliminating non-constraint work from the constraint’s workload (why is the bottleneck doing activities that non-constrained resources could do?), and improving the quality of inputs entering the constraint (poor-quality inputs cause rework at the constraint, reducing its effective throughput).
Step 3: Subordinate Everything Else
Align all non-constraint resources to support the constraint’s optimal performance. This is the most organisationally challenging step because it requires non-constraint resources to operate at less than their maximum efficiency in order to serve the constraint optimally. If the testing phase is the constraint, development teams should not work at maximum velocity — they should work at the rate that keeps the testing stage continuously supplied without overwhelming it with an unprocessable backlog. Subordination is the step where local optimisation is explicitly sacrificed for global optimisation.
“Tell me how you measure me, and I will tell you how I behave. If you measure me and incentivise me by local optimisation, do not be surprised when global optimisation fails.” — Eliyahu Goldratt, The Goal
Step 4: Elevate the Constraint
If exploitation and subordination have not sufficiently resolved the constraint, invest in increasing the constraint’s capacity — hire more people, purchase additional equipment, redesign the process, or outsource elements of the constrained work. Elevation is a larger investment than exploitation and should only be pursued after exploitation has confirmed that the constraint’s capacity is genuinely insufficient for the system’s requirements rather than simply underutilised due to poor organisation.
Step 5: Return to Step 1
When one constraint is resolved through the above steps, a new constraint will emerge elsewhere in the system — the weakest link has changed. The Five Focusing Steps are a continuous improvement cycle, not a one-time intervention. Returning to Step 1 and identifying the new constraint prevents the “inertia” trap that Goldratt identified as the most dangerous outcome of constraint resolution: treating the broken constraint as if it were still the constraint, investing improvement effort in a location that is no longer limiting the system.
TOC in Project Delivery: Critical Chain
Goldratt applied TOC to project management through Critical Chain Project Management (CCPM), which identifies the project’s critical chain (the longest sequence of dependent tasks and resources) as the project’s constraint and manages it through buffer management — pooling safety time at the project level rather than embedding it in individual tasks. CCPM’s constraint-focused approach consistently produces shorter project durations and higher on-time delivery rates in environments where resource contention is the primary scheduling challenge.
Identifying Constraints: Diagnostic Questions
| Symptom | Likely Constraint Location | First Exploitation Step |
|---|---|---|
| Testing queue growing every sprint | Testing / QC stage | Stop new development until queue clears |
| PRs waiting days for review | Code review capacity | Make review the team’s first daily priority |
| Deployments blocked by approvals | Governance / CAB process | Streamline approval for low-risk changes |
| Features waiting for one architect | Architecture expertise | Cross-train; shift non-expert work off architect |
Key Takeaways
- TOC’s central insight: every system has a constraint that limits its output — improving non-constraint activities does not improve system throughput.
- The Five Focusing Steps (Identify, Exploit, Subordinate, Elevate, Repeat) provide a repeatable process for systematically improving system performance by managing constraints.
- Subordination is the most challenging step — it requires non-constraint resources to operate below maximum efficiency to serve the constraint optimally, sacrificing local for global optimisation.
- The inertia trap (treating a resolved constraint as if it were still the constraint) is the most dangerous outcome of successful constraint resolution — always return to Step 1 after elevation.
- CCPM applies TOC to project scheduling by identifying the critical chain as the project constraint and managing it through buffer management rather than individual task safety time.
- Constraints manifest as visible queue accumulation points — where work piles up while downstream stages are starved. Walk the workflow to identify them empirically, not theoretically.