Learning about the Theory of Constraints with The Bottleneck Game
Tuesday, 18 August 2009
How to improve your software delivery process
When it comes to improving the way we deliver software projects, it’s rarely technology that’s the real problem. Nor is it inevitably a skills issue. Instead, the greatest challenge with building software is this: How do you spot the problem when you can’t see the process?
That’s where The Bottleneck Game comes in. The Bottleneck Game simulates a production line at the Hats and Boats Company where its workers are paid a fair wage (by chocolate of course!) to produce pairs of hats and boats. For each pair of hat and boat produced by the team, the team gets paid a bonus (in the form of chocolate of course!). You don’t get fairer than that as jobs go.
The game teaches us about the Theory of Constraints (TOC). According to the Theory of Constraints, every system has one key constraint which determines the throughput of value. This constraint is called the ‘bottleneck’. The theory states that we can improve a system’s throughput by applying the Five Focusing Steps on the bottleneck. Any effort spent on any constraint other than the bottleneck will have little impact or even have an adverse effect on the existing system.
The Five Focusing Steps
Step 1: Find the bottleneck – You can spot a bottleneck because it’s usually a stressed out resource, with work piling up upstream to it and resources sitting idle downstream from it. A chain is only as strong as its weakest link. Do something with the bottleneck to improve the system as a whole.
Step 2: Exploit the bottleneck – Begin by ensuring the bottleneck resource is 100% utilised, focused on delivering value and working at a sustainable pace. Make sure there’s always work with high value available for the bottleneck to work on. After all, Time is Money. As you’ve already paid for the bottleneck resource, this step requires no extra investment nor increases your operating expense.
Step 3: Subordinate everything to the bottleneck – This means the rest of the system must subordinate decisions to help out the bottleneck. Since the bottleneck is the most important part of the system, get the rest of the system to work at the pace of the bottleneck to help deliver the maximum value possible. Like the Exploit step, this step comes at little or no extra cost since you’ve already paid for the existing resources to deliver value. By definition, a non-bottleneck resource will always have slack, so you can also get the non-bottleneck resources to share some of the workload of the bottleneck.
Step 4: Elevate – You elevate by investing on training and tools for the bottleneck and other team members. You can also increase the number of the type of bottleneck resources. Since all these actions incur extra cost, you should apply Elevations only when you can’t find any more Exploits or Subordinations (which come at no extra cost in comparison). The Five Focusing Steps focuses on maximising the value of your existing investment before incurring further cost.
Step 5: Rinse and repeat – Once the bottleneck’s situation is improved and it’s no longer the primary constraint, the secondary contraint that determines the throughput of the system gets a promotion! It becomes the new bottleneck and you get the chance to apply the Five Focusing Steps all over again. Practice makes perfect!
It all sounds like hardwork and so much fun…
That’s because it is with The Bottleneck Game! Look at the intense expression on each player’s face. In spite of all the tricky origami involved, everyone who plays with us is always keen to stay after the game to talk some more about how to apply the Five Focusing Steps to their work.
Pascal and I will be running The Bottleneck Game at Agile 2009 in Chicago on 26 August. Restrictions* apply!
* There’s a maximum of 60 places in the session, so join us early to get a good seat!