Skip to main content.

The Theory of Constraints' 5 Focusing Steps

Applying the focusing steps to the simulation

Step 0. Make the Goal explicit

Put as many paper boats+hats in production, using the least amount of paper.

Step 1. Identify the Constraint

Usually, the programmer is the constraint. Work piles up in front of them, people behind them are idle a lot of the time.

Step 2. Exploit the Constraint

Get the most out of the constraint resource. For example:

Step 3. Subordinate to the Constraint

Let the resources who have excess capacity spend some of that capacity to help the Constraint. For example:

XP2005_TOC_game3Running the simulation again after applying focusing steps. Notice how Jaana, The Tester, (with the green shirt) has moved so she can oversee the whole process.

Step 4. Elevate the Constraint

We can raise the throughput rate of the Constraint by:

Step 5. Don't let inertia become the Constraint

After improving the performance of the Programmer, we can't let up. There's always another bottleneck! In the simulation, the constraint can shift to the Designer. So, we start again from the beginning...

Step 6. Change the System

If the previous steps don't yield any substantive improvements anymore, change the system.


toc_chain_focused.png The modified system:
  • The Designer subordinates by doing some extra work to complete the hats
  • The Programmer is exploited by putting a queue with unfinished boats in front of them
  • The Programmer is exploited by taking away the rework, which is now done by the Designer, who therefore subordinates
  • The Tester subordinates by testing before the material reaches the Programmer
  • The Tester elevates the other team members by teaching them about the acceptance tests
  • The first round Programmer elevates the new Programmer by coaching him in folding the boats

All the documentation required to run this workshop is available from the Agile Coach site under a Creative Commons license.


Pictures courtesy of Marc Evers