Bottlenecks
A bottleneck is a constraint that slows the delivery of value in our system. That is awfully abstract language, so let’s provide an example from everyday life.
In the morning, you’re driving to work on a highway. Traffic slows down for no apparent reason. You’re looking for the accident, but can’t find one. You emerge from the other side and traffic speeds up. You’ve just been through a bottleneck.
As the Theory of Constraints shows, nothing we do to either side of the bottleneck affects the throughput of the system. Let’s consider the morning commute again. If we speed up the rate at which cars arrive at the bottleneck, all we’ve done is increased the size of the queue in front of the bottleneck. If we increase the speed of the cars after they leave the bottleneck, we get only marginal improvements in the rate at which they get to work.
In the world of work, one way we find bottlenecks is by looking where there is work stacking up in front of a work station. For example, in many teams the developers are churning out features and they start stacking up in front of Quality Assurance. In this case the QA is the bottleneck. Either there aren’t enough people to do the work expected of them, or the way the work is being done is inefficient. Since most organizations don’t have an infinite supply of money to hire more people, then either people cross-skill to help with QA or they find more effective ways of working (hint: start testing earlier in the process with either Behaviour Driven Development and/or Ensemble Programming).
A Kanban board can be an effective tool in visualizing bottlenecks. Gentle reminder that, with all data, the data tells where to start looking, but it doesn’t tell you what is actually happening. To find out what is going on, talk to the people on the ground doing the work.
Agile Pain Relief Blog Entries
- Scrum By Example: Team Gets Bottlenecked
- Specialists Are Overrated
- Agile Bonuses – The Damage They Do
- How to Cross-Skill and Grow T-shaped Team Members - CrossSkilling team members is one of the best ways to eliminate bottlenecks.
Resource Links
- Adopting flow analytics in software development projects - Readable academic paper that summarized the benefits of eliminating bottlenecks
- Common Deployment Bottlenecks
- How to Avoid Human Bottlenecks in Production
- Kanban Bottlenecks
- Kanban: Process Improvement and Bottlenecks Revisited | Software Process and Measurement
- Strengthen the Weakest Link: Theory of Constraints
- Theory of Constraints (TOC) 3 Bottle Oiled Wheels Demonstration
- Video demonstration - Three Questions to Ask When Figuring Out Software Development Bottlenecks