T
Throughput
Rate of user-facing value that reaches production and is actually used — features that move a metric, cut cost, or make revenue.
Classic: Rate the system generates money through sales.
More adopted outcomes per week.
0/8
Topic 01 · The Goal
Most teams measure local activity — points, pull requests, how busy people look. The system’s output is something else: valuable work in production that users actually adopt. This is a course in the Theory of Constraints, in the language of pipelines.
Eight short sections. The models are yours to push. Progress stays in this browser.
01
Every system has one constraint. Improving anything else does not improve the system. In software the constraint is rarely “not enough coding”.
It is usually review, a flaky pipeline, a product decision, or a single person who understands the legacy module. Teams still add developers, dashboards and story points — and the rate of adopted value stays flat.
Code
An hour here, while review waits, becomes inventory.
Review
An hour here is an hour for the whole system.
Deploy
Downstream of the wait. It cannot go faster than review.
Where do you spend the hour?
02
Goldratt threw out local efficiency and kept three global measures. The priority does not change when the work is software.
T
Rate of user-facing value that reaches production and is actually used — features that move a metric, cut cost, or make revenue.
Classic: Rate the system generates money through sales.
More adopted outcomes per week.
I
Work in process: open branches, unreviewed pull requests, half-done tickets, code sitting in staging, knowledge trapped in one head.
Classic: Money tied up in things intended for sale.
Lower WIP. Shorter lead time.
OE
Salaries, cloud, licences, meeting load, and the support created by poor flow.
Classic: Money spent turning inventory into throughput.
Controlled. Secondary to raising throughput.
03
Delivery is a chain: design, code, review, test, deploy, observe. Each step varies. A bad day stacks. A good day cannot reach back and undo it.
In The Goal, a troop of hikers is limited by Herbie, the slowest walker. Gaps open in front of him. In a software team Herbie is often the senior who must review every critical change, the flaky end-to-end suite, a manual security gate, or the one person who understands the old module.
Ideas are plentiful. This stage’s output is what review inherits.
Waiting 25
Waiting 1
Waiting 1
Throughput
0.6
finished / day
Inventory
27
items in queues
Lead time
43.2
days of WIP
Work in progress · day 8 · finished today 1
Coding produces four pull requests a day. Review can take one. The line is not balanced, and it should not pretend to be. Work is stacking in front of review. Throughput sits near 1 a day. Faster coding only lengthens the queue.
Lead time here is Little’s Law: inventory divided by throughput. Same finish rate, less WIP, shorter wait. A “balanced” team at full utilisation is fragile. Protective capacity — people who are not constantly maxed — absorbs variation so the constraint keeps moving.
04
The constraint is where work waits, and where the system’s output is decided. Not where people look the busiest.
Open the board or the pipeline. Which column holds tickets the longest? Whose calendar decides when something actually ships? That stage is Herbie until the evidence says otherwise.
The usual Herbie. Pull requests pile up, and everything after review sits idle.
Throughput is set at the marked stage. Making any other stage faster does not raise it.
Where teams actually get stuck
05
Most teams jump to “hire” — elevate — before they have exploited the constraint or subordinated the rest of the system to it. Subordination feels wrong. That feeling is usually local efficiency arguing with the system.
Step 1 of 5 · do not skip ahead
The team feels slow. Developers say they are flat out. Twenty-three pull requests sit in review. CI is green in about eight minutes. Where is the constraint?
1Identify
Find the one limit on valuable output
Mistake: Treating every busy person as a constraint
In software: The longest queue is code review
2Exploit
Get more from it without major spend
Mistake: Buying tools or hiring first
In software: Protect focus, automate trivia, order by value
3Subordinate
Make every other decision serve it
Mistake: Keeping velocity and utilisation targets
In software: WIP limits so coding cannot outrun review
4Elevate
Add capacity only if still needed
Mistake: Elevating too early
In software: Train another reviewer, split ownership
5Repeat
Go back to Identify
Mistake: Managing the old constraint forever
In software: Discovery becomes the limiter
06
This is how subordination works on a board. It looks like a well-run Kanban system because it is one.
Done
0
WIP
4
Rope credits
0
Beats 0
Backlog
Not started
In progress
WIP limit 2
Ready for review
Buffer · limit 3
In review
The drum
Done
Throughput
Review is the drum. Beat it to finish what is in review and pull the next buffered item onto it.
Release the rope and start work. Done will not speed up. Work in progress will. Put the rope back and the same drum produces the same throughput with less inventory — which is a shorter lead time.
07
Measure the rate at which valuable, adopted outcomes reach production. Everything else is a local dial.
What it optimises
Local output of coding
Theory of Constraints
Can increase inventory if reviews lag.
08
Same five steps, four places you will actually meet them. Then a checklist, a cheat sheet, and six questions.
Identify review as the constraint. Exploit it: protect reviewer time, automate style and lint, put high-value pull requests first, cover absences. Subordinate with a WIP limit on in-progress work. Only then elevate — another reviewer, or ownership that is not one person.
0/5
Answer from the system, not from habit. A miss points back at the section.
6 questions. No timer.