The Theory Of Constraints: Increasing Profits Through Continuous Improvement
The Theory of Constraints (TCs) is a methodology, introduced by Dr. Eliyahu Goldratt, that allows companies to identify and mitigate the most important limiting factors.
TCs follow a scientific improvement approach in which every complex system consists of multiple connected activities, being one of them the constraint to the entire system.
Let's agree on the goal of most software companies. To be profitable in the short term and in the long term. TCs provides a set of tools that will help them achieve that goal
So, this approach works not just to increase profit but to improve it fast, focusing all attention on one critical area, the system constraint. Optimizing this constraint will enable more capacity, reducing lead times and eliminating less work-in-process.
The TCs provides a set of methodologies and tools to achieve that goal:
- The Five Focusing Steps
- The Thinking Processes
- Throughput Accounting
The Five Focusing Steps
The Five Focusing Steps is a methodology for identifying and eliminating constraints. This methodology is based on these five steps. Identify, exploit, subordinate, elevate and repeat.
First of all, we need to identify, the current constraint that limits the goal wanted to be achieved. After this, exploit it, making quick improvements using existing resources.
The subordinate steps are about reviewing all other parts in the process to ensure that they are aligned with the needs of the constraint.
If the constraint still exists, we move to the elevated step considering those further actions that can be taken to eliminate it from being the constraint. At this step, we will break the constraint or move somewhere else, maybe to the capital investment.
Finally, repeat because this methodology is based on a continuous improvement cycle. Therefore, once a constraint is resolved the next constraint should immediately be addressed.
The Thinking Processes
The Thinking Processes are a set of tools for analyzing and resolving problems. The goal of these tools is to answer these three questions.
- What needs to be changed?
- What should it be changed to?
- What actions will cause the change?
Each question is solved by one or two Thinking Process Tools.
The Current Reality Tree is the one that will resolve the first one.
Later, Dr. Goldratt developed the 3-Cloud Method for more rapid diagnosis and implementation. This method, combined with TOC and implementation templates called Strategy and Tactic Trees, is hugely effective for solving many problems.
Throughput Accounting is a methodology for measuring performance and guiding decisions.
In traditional accounting, the goal is to cut expenses. In the TCs cutting expenses have much less importance than increasing throughput. Cutting expenses is limited by reaching zero expenses, whereas increasing throughput has no such limitations.
In that way, decisions are guided by their effect on achieving the following improvements (in order of priority):
Will Throughput be increased?
Will Investment be reduced?
Will Operating Expenses be reduced?
The strongest emphasis (by far) is on increasing Throughput. In essence, TOC is saying to focus less on cutting expenses and focus more on building sales (Throughput).
The theory of constraints is connected with Lean
The theory of constraints and Lean share the same goal: increasing profits through continuous improvement. They look for the same, but how they get there is different.
On one hand, TCs focus on working with limiting factors and using them as opportunities. On the other hand, lean manufacturing principles are all about minimizing waste within a system without sacrificing productivity.
By mixing it, it's possible to apply lean techniques to constraints and non-constraints to improve other areas of the system or project. In fact, combining these methods in a hybrid approach can help to achieve profits, because as I said, they share the same goal.
In software construction, as in manufacturing areas, it is important to find the limiting factor that will increase our ability to build the desired product. Finding the constraints in the software build cycle is an essential task in high-performance teams.