This is the second in a series of posts I’ll be writing on my favorite mental models and how they apply to MSPs. The first one was on the Four Types of Work.
What is the Theory of Constraints?
Today, I’m going to dive into the Theory of Constraints (TOC), an influential mental model introduced by management guru Eliyahu M. Goldratt. This powerful framework can help you massively boost efficiency in your MSP business.
You might have come across Goldratt’s book, The Goal: A Process of Ongoing Improvement, which first brought TOC into the spotlight back in the 1980s. The book highlights the critical role of bottlenecks in a business and provides actionable strategies for clearing them.
So, what exactly is the Theory of Constraints? Simply put, it’s all about identifying and managing the constraints that limit the performance of a system or process.
According to TOC, a system can have only one true bottleneck at any given time. This bottleneck is the part that restricts the overall throughput or output of the entire system. By focusing on the bottleneck, you can make big strides in system performance.
In other words, finding and fixing your true bottleneck will allow you to clear the single biggest barrier to your success at any given time, so it’s where you should focus all your attention. Working on any other areas of the system while the bottleneck exists will have you grinding with little to show for it.
Once you clear one bottleneck, you can focus all your efforts on the next constraint—whatever becomes the one true bottleneck next. In this way, your efficiency snowballs.
The Five Focusing Steps of the Theory of Constraints
In TOC, there are Five Focusing Steps. Think of them as a roadmap that can guide you towards continuous productivity gains.
In my rundown of the five steps, I also follow the journey of an example MSP who’s applying the theory of constraints to a big problem they’re experiencing: keeping up with ticket volume. Customers are increasingly unhappy because their issues go unsolved or take ages to clear. Ticket queues keep getting bigger instead of smaller.
Step 1: Identify the constraint
You first need to identify the bottleneck or constraint that’s holding back your system’s throughput. Take a look at your metrics, keeping an eye out for patterns of slowdown or areas with low productivity. Look for the spots where tasks tend to pile up or experience significant delays. They’re like red flags pointing you towards constraints that need your attention.
But don’t stop there. Tap into the wisdom of your team members—they’re your frontline experts. Ask them about the areas they perceive as bottlenecks. Their insights are pure gold when it comes to identifying the real blockers in your system.
By proactively pinpointing the bottleneck, you gain a crystal-clear understanding of the areas that need improvement. This sets the stage for the subsequent steps, where we’ll address the constraint head-on.
Sample MSP: After looking at data from their PSA and talking to the team, it becomes clear the bottleneck in their business is the limited availability of technicians with the experience to handle the issues that are coming in. They found this by realizing they didn’t have any time to focus on revenue-generating activities because they were so bogged down in open tickets. Tickets kept piling up because they needed the attention of more experienced technicians.
Step 2: Exploit the constraint
Now that you’ve pinpointed the constraint in your MSP, it’s time to optimize it. This might sound weird. It’s a bottleneck—shouldn’t we be trying to get rid of it, not optimize it? Yes! But first, we need to make sure we’ve got the bottleneck operating in its best possible condition so we can then expand the sides of it to allow more throughput.
So in Step 2, we’re going to focus on improving the constraint’s performance by eliminating any idle time or interruptions in the current workflow leading into the bottleneck.
Sample MSP: The MSP brainstorms how they can improve the constraint performance with their existing resources. They come up with a number of actions:
- Ensure that experienced techs are only working on tickets the other techs can’t solve
- Offload any other unnecessary work from experienced techs
- Have other technicians gather background information on issues ahead of time so the experienced techs can get straight to problem solving
- Do root-cause analysis on every issue solved so they’re prevented in the future
- Give the techs all the software tools they need to maximize their time
- Remove distractions so they don’t have to context switch
Step 3: Subordinate the non-constraints
Now you’re going to align the rest of your system to support the bottleneck. Again, the goal here is to get the point of constraint to work as well as possible with its current resources. So in this step, called subordination, you’ll ensure that all other processes and resources work in harmony with the constraint, not against it (thus making its impacts worse).
- Sync workflows: Align the flow of work in other areas of your system with the pace and rhythm of the constraint. Dial down inputs to the constraint if you need to. It makes no sense to jam the bottleneck if you know it can’t possibly process them.
- Prioritize support functions: Give priority to functions that directly contribute to improving the constraint’s performance. Focus on improving the efficiency and effectiveness of processes that enable or complement the constraint.
- Eliminate non-essential work: Identify and eliminate non-essential activities or tasks that don’t directly contribute to the constraint’s throughput. Remove unnecessary steps or processes that add complexity without adding value.
Sample MSP: The MSP now has the experienced technicians only working on what’s necessary, and their throughput has improved. But they realized they were rewarding the junior technicians for average time to resolution and number of tickets solved, which was encouraging them to process tickets quickly. Instead, they’re now encouraging the junior technicians to be as thorough as possible and solve as many tickets as they can without help from the experienced technicians.
Step 4: Elevate the constraint
Now it’s time to increase the system’s overall capacity by elevating the constraint—essentially removing or alleviating the issue by expanding the capabilities of the bottleneck process. Here, we want to focus on three key areas:
- Tools: Consider investing in additional equipment or software tools that can help expand the constraint’s capacity and reduce its limitations.
- People: Focus on improving the skills and capabilities of the people who touch or support the constraint. This might include training, coaching, or mentoring.
- Process: Look at the existing processes surrounding the constraint and look for opportunities to make them more efficient.
Sample MSP: The MSP is now as efficient as it can possibly be without adding resources to the constraint. They’ve calculated how much it’s costing them not to have these more experienced technicians, and have decided to increase the salary and add a signing bonus to attract senior folks to move to their area. This resulted in hiring three new experienced technicians.
Step 5: Repeat the process
Iterate! Continuous improvement lies at the heart of the Five Focusing Steps. Once you address a constraint, you’ll want to repeat the entire process to identify your next true bottleneck.
Follow the systematic approach of identifying, exploiting, subordinating, and elevating the constraint. By repeatedly going through the steps, you create a culture of continuous improvement that drives ongoing enhancements in system performance.
Sample MSP: The team is celebrating. Technician capacity is up and so is customer satisfaction. The team is now able to handle ticket volume while meeting SLAs. The team finally has time to work on revenue-generating activities like sales and marketing because they’re not constantly putting out fires and expediting overdue tickets.
Theory of constraints: Where’s the bottleneck in your MSP?
Follow the Five Focusing Steps of the Theory of Constraints to find it and eliminate it, then watch your efficiency soar. Let me know how you make out with a comment down below.