Using data to identify where flow breaks down and what to do about it.
A bottleneck is a stage that limits the throughput of the entire system. It's the slowest step in the process.
Theory of Constraints (Eli Goldratt): The output of the system can never exceed the output of the bottleneck. Improving anything other than the bottleneck doesn't improve the system.
In Kanban:
Every system has a bottleneck. When you fix one, another emerges. This isn't failure—it's how improvement works. The bottleneck should move as you improve.
Metrics that reveal bottlenecks:
1. Queue lengths (WIP in waiting states) If "Ready for QA" has 8 items while other queues have 1-2, QA is likely the bottleneck.
2. Time in stage If items spend 3 days in development but 5 days in code review, code review is slowing things down.
3. CFD band widths Wide bands = high WIP = bottleneck. Look for bands that grow over time.
4. Age of oldest item per stage If the oldest item in "Deploy" is 2 days but oldest in "Testing" is 10 days, testing is the constraint.
Common bottlenecks in software teams:
Once you've identified the bottleneck, options include:
1. Add capacity to the bottleneck
2. Offload work from the bottleneck
3. Reduce demand on the bottleneck
4. Subordinate other stages to the bottleneck
5. Elevate the bottleneck
QA is the bottleneck. Team decides: (1) Two developers start helping with testing, (2) Add more automated tests to reduce manual QA load, (3) Tighten WIP limit on dev so QA isn't flooded. QA throughput increases, flow improves.
QA is the bottleneck. Team decides to 'go faster' in development by cutting corners. Dev throughput increases. QA pile-up worsens. Quality drops. System throughput unchanged.
When you fix a bottleneck, a new one appears. This is expected and healthy.
The cycle:
Common progression in software teams:
This is progress! Each time the bottleneck moves, your system capacity has increased.
The danger: Trying to fix all bottlenecks at once. You can't. Focus on the current constraint. When it's no longer the constraint, move to the next.
If you're not sure which stage is the bottleneck, your WIP limits are probably too loose. Tighten them until queues form—then you'll see the bottleneck clearly.