The systemic approach to the economics and management of resources focuses on what can be achieved by combining the resources at hand. This is difficult because we are accustomed to thinking of resources as “belonging” to something, i.e. a function. In this paradigm, resources are allocated to achieve local, functional optima to the detriment of the goal of the system. Instead, in the systemic approach resources are generally sub-optimized locally in order to optimize the global systemic result. The goal of synchronization is to make the most out of what we have “as a system”. Resources are therefore deployed to maximize the global result (we call it Throughput) NOT what these resources could achieve if they were to operate in isolation. Accordingly, it is critical to understand what we are synchronizing. Once the system has been designed and the constraint of the system has been chosen, there are two levels of synchronization that must take place at the same time in any organization.
Synchronization level one: scheduling of the chosen physical constraint.
In a production environment, for instance, the scheduler will have to maximize the ability of the constraint to generate throughput ensuring that no time is wasted on it AND that the constraint always works on the right mix. In order to be scheduled, the constraint only needs to be fed a few variables, namely:
- delivery date (and associated Throughput)
- bill of materials
- inventory and replenishment time
In essence, the scheduler enables the effective coordination that must exist between sales and replenishment taking into account process and lead times for the manufacturing and shipping of the products.
Synchronization level two: optimization of the resources company-wide
If we want to manage our organization as a network of synchronized projects we must have a way to avoid resource contention. Resources contribute with their competencies and these competencies are assigned to projects. What we schedule is the finite capacity (in terms of time) of the competencies we have and we then allocate the person that is available. In order to do this effectively we must have a database of competencies (name + what they are capable of doing) and a finite capacity scheduler that can draw from this database only those resources that at any given time are available.
Let us stress this point again: in this model individuals with a set of competencies do not belong to a company function. They are available any time that they are not sick or on holiday and this availability is captured by the scheduler and synchronized in a way that maximizes the Throughput the company can generate. Indeed, not ALL the available time of ALL the resources needs to be scheduled, inasmuch as there are many activities that need to be attended to at all times by certain resources, typically shop-floor and very repetitive ones.
Both levels of synchronization, i.e. scheduling of the constraint and optimization of the resources company-wide, can be managed following the Focusing Steps provided by the Theory of Constraints. An example may be useful.
Let’s say that we want to synchronize the work of a company producing industrial robots and automation tools. Such a company can be seen as an assembly operation and we have to decide where we want the physical constraint to be. Let’s say, for the sake of simplicity, that we choose as constraint the part of the process flow where all the different components making up the final product are assembled. The Focusing Steps would then tell us that:
- We release the different components at the pace at which we can physically assemble them, neither faster nor slower
- We ensure that ALL the components making up the customer order we want to process on that date get in to the assembly line ONE buffer time ahead
- Job order by job order, we monitor statistically what percentage of the buffer has been eaten into or gained
- We assess the predictability of this process (that delivers the pieces to the assembly line) and then:
- i. If the process is in control and the upper limit is within the buffer, we carry on
- ii. If the process is in control but the upper limit is outside the buffer, we re-size the buffer
- iii. If the process is out of control and all the data points are within the buffer, we search for the reasons that send the process out of control and we fix them
- iv. If the system is out of control and some of the data points are outside the buffer, we stop the line and fix the problem
- If we perform these steps and the market demand does not exceed the capacity of the chosen constraint, presumably measured in units of assembled product per time period, then we probably ship everything on time.
However, in order for this chosen constraint to maximize the Throughput of the company many of the processes making up the system (virtually all) must be synchronized:
- Engineering must issue flawless drawings
- Replenishment must deliver the sub-components to the warehouse in time
- Accounting and administration must pay and collect promptly
- Marketing and sales must identify suitable customers and keep the line in “pull” with the highest Throughput mix, etc.
No heroes required
There can be no ‘heroic’ attempts here by one function to try and outshine another. Any attempt to oversell, squeeze suppliers on price, delay collection and payments and reduce the thoroughness of drawings in the name of cost optimization, will result in sub-optimization of the system’s performance. None of these activities can be done in isolation; any attempt by functions to outperform each other and claim more “functional” relevance in the system will not produce one more unit shipped. Accordingly, we need an algorithm and an organizational structure that helps the coordination of all the activities that maximize the throughput that we can achieve with the designated constraint.
Let’s summarize. In order to manage a synchronized system we must:
a) Designate a physical constraint, buffer it and manage the buffer
b) Orchestrate the work of the whole organization with a powerful algorithm that allows the best use of all the resources. This algorithm will be useless if we do not elect it to be the main driver of a suitable, i.e. systemic, organizational structure.
Generally speaking, the set of resources that is identified in the company as suitable for project-like activities should be allocated to projects for 70-80% of their time. Dr. Goldratt, over twenty years ago, developed the Critical Chain algorithm to optimize the allocation of resources on projects, and this algorithm is central to the creation and management of an organization as a network of projects.
Extract from the book: Sechel: Logic, Language and Tools to Manage Any Organization as a Network of Projects
See also our series on Systemic Management: