ImNotABottleneckImAFreeMan

From SPA Wiki

Jump to: navigation, search

Contents

I'm not a bottleneck, I'm a free man!!

Introducing the Theory of Constraints!!

Introducing the Theory of Constraints (ToC)!

The Theory of Constraints: the throughput of a system is determined by one constraint (or bottleneck).

We started the session to illustrate this point with a simulation of a development team. The team was asked to fold paper hats and boats. The result was somewhat like in the animation on http://www.tocca.com.au/Services/demoprojectM.htm

The bottleneck (the developer in the team) was easy to spot:

  • he was always busy
  • unfinished work started to pile up in front of him
  • people downstream from him were idle a lot

We then tried to apply the focusing steps:

  1. Choose the goal of the system
  2. Identify the constraint
  3. Exploit the constraint: make sure the constraint is fully loaded working on useful work, not idle, not working on other stuff
  4. Subordinate everything else to the constraint: everyone else must use their spare capacity to ensure that the constraint is at its most effective.
  5. Elevate the constraint: find ways to increase the throughput of the constraint (by hiring extra people, training, coaching...)
  6. Don't let inertia become the constraint. Keep on improving.

ToC recommends to first try to exploit constraints, because that's the easiest and cheapest way to gain throughput. For example, try to find and cut useless work. Next, subordinate other resources to the constraint. Those who are not the bottleneck should have some spare capacity, which they can spend on helping the constraint. In our simulation, the designer could do a bit of the folding in place of the programmer. Lastly, we can invest something in elevating the capacity of the constraint: add more people, buy better machines, send them to training or conferences...

One of the surprising consequences is this recommendation:

  • The bottleneck should be 100% loaded
  • Non-bottlenecks may never be 100% loaded. What would happen if non-bottlenecks worked at 100%?
  • Workers in front of the bottleneck would produce too much unfinished work, that the bottleneck will never be able to process. Thus, they waste inventory and raw materials
  • Workers behind the bottleneck might not be able to cope with variations in output from the bottleneck, resulting in wasting the output of the bottleneck.

When we started to apply some optimizations, the throughput (the number of hats and boats folded) went up. But we also experienced a more disturbing phenomenon: the constraint started to wander around. It became hard to see where the bottleneck was. Which in turn makes it difficult to find an effective optimization.

ToC recommends to choose carefully where to place the bottleneck, when designing a system (team, organisation) and keep it there. Ensure the bottleneck stays in place and that you control it.

Measurements and Throughput Accounting!

During the simulation we measured two things:

  • The number of boats and hats produced (throughput)
  • The number of pieces of paper input into the simulation (investment)
  • From the difference of the two we can calculate work in progress (inventory): # of boats%2bhats produced - # of papers input)

We gave the team two goals: 1. make as many boats and hats as possible (maximize throughput) 2. do it with the least amount paper input (minimize investment)

Throughput Accounting has 3 major variables:

  • T = Throughput = the amount that measures how close we come to our goal = the amount of fresh money that comes in through sales
  • OE = Operating Expense = the amount (of money) that we must keep spending to keep the system going = wages, rent, energy....
  • I = Investment = the amount (of money) that we must tie up in the system to generate throughput = inventory, raw materials, machines....

The goal of our optimizing steps is to maximize the following two quantities:

  • NP = Net Profit = T - OE
  • ROI = NP/I = (T - OE) / I

ToC recommends to try to increase T first, second try to decrease I (unless doing so decreases T), lastly try to decrease OE (unless it decreases T or increases I).

Resources!

http://wiki.systemsthinking.net/Systemsthinking/BookList.html contains a list of book on the Theory of Constraints (and more)