10x programmers aren’t necessarily faster or better programmers than their 1x colleagues. They just don’t waste their time doing things that don’t matter. They concentrate their effort on the ‘thing’ that is capable of producing the most positive impact. It took me years to figure this out. I’d tried all kinds of things to increase my impact with mixed results. But everything changed when I discovered the Theory of Constraints and applied it to my work.
Introduction to the Theory of Constraints
The Theory of Constraints is a systems approach to continuous improvement. Every system has inputs that are converted to outputs through a series of linked processes. The output of all systems is limited by one process that is acting as the system constraint.
If you can identify and improve the performance of your system’s constraint, you will improve the performance of your whole system. But if you implement random improvements–like most quality improvement methodologies recommend–it is highly unlikely you will improve the performance of the system. This is why most quality improvement programs fizzle out–the results suck. Improving the performance of a non-constrained resources doesn’t improve the throughput of the system. You have to improve the performance of the constraint!
The constraint usually isn’t obvious (or someone would have solved it already). You can easily see symptoms of the constraint. Many managers spend a lot of time dealing with these symptoms without ever discovering the constraint itself. Don’t be like those other managers.
Benefits of applying the Theory of Constraints
If you apply the Theory of Constraints methodology to your company to find your organization’s constraint, you can get three main benefits:
- you can avoiding a whole wack of potential ‘improvements’ that won’t help the overall system
- you avoid wasting time trying to fix symptoms
- you can zero in on the area that is most likely to benefit from improvement and focus your efforts there
The Theory of Constraints processes and tools are thorough. If you follow the steps, you have a high probability of successfully identifying your constraint and discovering a way to improve it.
The five focusing steps of the Theory of Constraints
Entire books have been written about the Theory of Constraints but we’ll just cover the basics here. I’ll give you some reading recommendations at the end of the post.
The five focusing steps give you a structured way to approach your system and find ways to improve it (remember your company is a system that is trying to maximize its profit). Your goal is to concentrate your effort on the part of the system capable of producing the most positive impact.
Step 1: Identify the system constraint
Where is the constraint? Which part of your system is the weakest link? Is the constraint internal or external? Is it physical or a policy?
Step 2: Decide how to exploit the constraint
This means doing whatever you can to improve the performance of the constraint without committing to upgrades or costly changes. In this step you are just trying to maximize the resource you already have.
Step 3: Subordinate everything else
Make changes to other parts of your system to help the constraint perform as near its theoretical maximum as possible. This could mean slowing some parts of the system down while speeding other parts up. We are looking to optimize the system as a whole, not the individual parts.
Step 4: Elevate the constraint
If the actions you took in steps 2 and 3 weren’t enough to overcome the constraint, you need to resort to more drastic measures. This could mean reorganizing your company, hiring, firing, adding automation, building a new factory, and other expensive (in both time an money activities). This step should not be taken lightly but sometimes it’s the only way to overcome the constraint.
Step 5: Go back to step 1 but beware of ‘inertia’
If you’ve overcome the constraint go back to step one and find the new constraint. If you haven’t overcome the constraint, then you skip step 1 and go to step 2 and exploit the constraint again. Step 2 will be different than last time because of the changes you made in step 4. Then go to step 3 and 4 if required. Finally, I should remind you that this process never ends. Because there is no upper limit on profit, your system will always face a constraint just waiting to be improved. So keep at it.
How to identify and overcome the constraint
The Theory of Constraints provides several tools that you can use to analyze your system, determine the constraint, and overcome it. I’ll list them here for completeness so you can look them up later:
- current reality tree
- conflict resolution diagram
- future reality tree
- prerequisite tree
- transition tree
You can use these tools to handle any size of problem. In fact, you could plan your path to victory in a major war with these tools. But for many simple systems, using all of these tools is overkill. The point is that if you learn and apply these tools correctly, you can approach a system of any complexity, zero in on the constraint, and then formulate and execute a plan to improve the performance of the system.
Discovering the Theory of Constraints was a game-changer for me. I wish I could tell you everything you need to know about the Theory of Constraints in a single blog post but it’s just not possible. I can, however, tell you what you should read to get up to speed.
Start with a business novel called The Goal: A Process of Ongoing Improvement (by Eliyahu M. Goldratt). The story revolves around a factory manager. He is trying to figure out a way to save his manufacturing operation from being shutdown and a trusted adviser teaches him the Theory of Constraints. It’s a great read with a 4.5 rating on 993 reviews on Amazon. Start here.
I read the sequel to The Goal called It’s not luck (by Eliyahu M. Goldratt) next. Our factory manager has been promoted to run a whole division. But he struggles to find a way to improve profitability. This book focuses on marketing and business and less on manufacturing. It’s not quite as eye-opening as The Goal but it’s still worthwhile with a 4.5 rating on 110 reviews on Amazon.
These two books will give you enough background to grasp the Theory of Constraints and apply it to your job. I highly recommend them both.
For anyone who wants the Learn all the formal processes and tools, I recommend Goldratt’s Theory of Constraints (by H. William Dettmer). This book is more like a textbook but if you really want to know your stuff, this is the book for you.
The Theory of Constraints is a powerful tool in the hands of a 10x small business programmer. It allows you to quickly focus in on the part of your company that is holding everything back and helps you figure out what you need to change to make things better.
However, unless you’re also an owner or senior manager in your company, you probably won’t be able to just walk into accounting and say “this is your problem and here’s what you’re going to do about it.” You need to start with something smaller, something more manageable. And you may need to pick up some new skills too.
In my next post, I’m going to show you how and where to start. Stay tuned.