In this episode, we’ll explore how to address bottlenecks and optimize the system using the Theory of Constraints.

After listening to this episode, you'll understand:

  • Why local optimization doesn’t work
  • How to identify bottlenecks
  • How to apply the Five Focusing Steps to address bottlenecks
  • Why hiring more people may not be the answer

Show Notes

The Theory of Constraints is an approach to improving organizational performance created by Dr. Eli Goldratt and is explained in his book, The Goal.  The thought behind Theory of Constraints is that in every organizational system, there is one constraint that limits the flow of value.

It explains why local optimization doesn’t help and that we need to use systems thinking.  Similar to the weakest link in a chain, improvements to the rest of the chain don’t make it stronger.  Only by improving that weakest link can we improve the strength of the chain.

In addition to some tools and practices, the Theory of Constraints uses what Dr. Goldratt refers to as the Five Focusing Steps for optimizing systems.  This approach allows you to address constraints is the simplest way possible.


Step 0: Define the Goal

Each system has a goal. What is it you want to achieve and how will you know when you’ve reached the goal? To determine the goal, need to understand who uses the output of the System and what’s valuable to them.  After you understand that, find metrics to measure the throughput, or amount of value produced by the system.

Understanding the goal is often the most difficult step in the process. Finding the right goal and the right metrics to measure progress toward that goal will be critical to your success.

Step 1: Identify the Bottleneck

Each system has one constraint that determines the throughput of the entire system. The constraint can be a person, a team, a physical machine, one organizational rule, or anything else that limits the speed at which value flows through the system.  The constraint is often called a bottleneck.

At its core, the Theory of Constraints provides an approach to finding the bottleneck and taking action to improve throughput of the system as a whole.

As mentioned earlier, making improvements anywhere but the bottleneck will not improve the throughput of the system and it can even have a negative effect.

How do you recognize a bottleneck?  If the bottleneck is a person, team, department, or piece of equipment, work piles up in front of them and people downstream of the bottleneck are idle some of the time.

To help identify the bottleneck, you can use tools like flow charts, swim lane diagrams, root cause analysis, Pareto charts, or queuing models.  Remember that a system can only have one constraint at a time.

It’s important to understand that being a bottleneck doesn’t mean a person or team is bad at what they do or that they’re doing anything wrong.  Being the bottleneck is neither good nor bad; it’s just a fact of the system.  There’s always one constraint.

Now that we’ve identified the bottleneck, what can we do to improve throughput?


Step 2: Exploit the Bottleneck

The first way to try to address the bottleneck is to “exploit” it.  Exploiting the bottleneck isn’t what it sounds like.  “Exploiting” means that we’re ensuring that the bottleneck isn’t distracted by non-throughput producing work.

If you think about it, the flow of value through the system is determined by a single constraint.  Therefore, any work done by the bottleneck that doesn’t contribute toward the goal is waste and results in less throughput.

You can exploit the bottleneck by ensuring that the bottleneck always works on the highest priority, highest value work that contributes to the goal.  You can also:

  • Make sure the bottleneck works on only one thing at a time. We want to get to done; stop starting and start finishing.
  • Remove any non-throughput producing work from the bottleneck.
  • Shield the bottleneck from interruptions and quickly remove impediments, but don’t shield them from important information like customer input and feedback.
  • Make sure that the bottleneck is never idle or waiting for information, equipment, or materials. This type of waste reduces the value producing work that the bottleneck can do.

You may want to use techniques such as brainstorming to identify possible experiments you can try to exploit the bottleneck and improve the system.  After you implement the exploit experiment, measure the impact to see if it made a positive change.

Make sure you only change one thing at a time.  If you make multiple changes, you can’t tell if some changes had a positive effect and some had a negative effect.

After each change, you’ll also want to go back to the beginning to make sure the goal hasn’t changed.  You’ll also need to make sure that the bottleneck hasn’t moved.

Through your improvements, it’s quite possible that the original constraint is no longer the system constraint.  You may have improved the bottleneck to a point where they’re no longer the constraint and any additional improvements to the original bottleneck won’t improve the system.  That’s why you go back to the first step after each change.

Start by exploiting the bottleneck because it requires the lowest investment.  It only affects the single bottleneck and it doesn’t require additional time or money, but results in higher throughput.


Step 3: Subordinate Decisions to the Bottleneck

After you’ve exhausted what you can do through exploiting the bottleneck, the next step is to subordinate decisions to the bottleneck. Subordinating decisions means the rest of the system works to help the bottleneck produce maximum value.

That’s because people other than the bottleneck have some slack.  If everyone is working toward the same goal, anyone working beyond the pace of the bottleneck is not increasing the throughput of the system.

Instead of working at what they do faster, they can work to the pace of the bottleneck and use their extra capacity to support the bottleneck.

Some approaches you can use are:

  • Ensure that the work, information, and materials received by the bottleneck as an input to their work is of the highest quality.
  • Have everyone work to the pace of the bottleneck (no faster or slower).
  • Someone else may be able to take some non-specialized tasks from the bottleneck. At this stage, only have someone take on tasks if it doesn’t require a large investment in time or money.

Subordinating decisions to the bottleneck is done after the exploit step because there’s a slightly higher investment needed, but it’s still relatively easy.  Subordination only impacts a few resources and requires little investment.

As with the exploit step, find a subordination experiment, implement it, and measure the result.  Afterwards, go back to the beginning.  Has the goal changed?  Has the bottleneck changed?

If not and after you exhausted what you can do to subordinate decisions to the bottleneck, the next step is to elevate the bottleneck.


Step 4: Elevate the Bottleneck

After doing what you can to exploit and subordinate, you can elevate the performance of the bottleneck. Elevating the bottleneck requires time and money, so it’s done only after exploiting and subordinating.

You can elevate the bottleneck and improve performance by:

  • Get more people that can do the same work as the bottleneck.
  • Buy more or faster machines
  • Give people training and better tools
  • Coach for individual improvement
  • Improve the workspace
  • Change organizational policies

Often we jump right directly to elevating by adding people, getting training, buying equipment and tools.  These changes can be expensive and it takes time to get a positive impact on throughput.  They could even have a negative effect in the short term.

Elevate as a last resort when you can’t find any more ways to exploit or subordinate.


Step 5: Repeat

Every time you find a potential improvement, implement it, measure the results and go back to the beginning.  Make sure the goal is still valid and see if the constraint has moved.

Theory of Constraints

The key is to see the system as a whole, understand what’s valuable, and recognize the constraint.  After that, make small changes one at a time starting with the easiest and cheapest to implement and measure the results.

Listen to the full episode to learn how to apply the Theory of Constraints to your process.



Your Homework

Work with your team to make sure the goal is clearly understood.  Without a shared understanding of the goal, you can’t optimize the system.  From there, you can identify the constraint and implement one experiment to improve throughput.


Links mentioned in this episode:

Thank you for listening to the program

To get more valuable content to enhance your skills and advance your career, you can subscribe on iTunes.

Also, reviews on iTunes are highly appreciated! I read each review and it helps keep me motivated to continue to bring you valuable content each week.