I always like to distill a good book down to it's bare essentials, so hear goes.
The goal is to make money. There are 3 fundamental measurements that express the goal, listed in order of importance.
- Throughput: the rate at which the system generates money through sales.
- Inventory: all the money the system has invested in purchasing things it intends to sell.
- Operational expense: all the money the system spends turning inventory into throughput
Note that in software, inventory is any software or feature that is unfinished or not yet delivered to customers.
- Throughput is money coming in
- Inventory is money stuck inside the system, or investments that potentially could be sold
- Operating expense is money going out (to make throughput); any investment that can't be sold
There are 2 types of resources:
- bottlenecks (a.k.a. constraints): capacity <= demand
- non-bottlenecks: capacity > demand
Activation vs. utilization of a resource:
- utilizing a resource is using it in a way that moves the system toward the goal
- activating a resource is using it whether or not there is any benefit from it's output.
- The level to which you can utilize a non-bottleneck resource (without increasing inventory) is determined not by the capacity of that resource but by some other constraint in the system.
- Activating a resource is not the same as utilizing it; activating a non-bottleneck to its full capacity is counter-productive with respect to the goal.
The process for accomplishing the goal:
- identify the system's constraints (bottlenecks)
- decide how to exploit the constraints; maximize their utilization
- subordinate everything else to the above decision. Operate all other components to maximize utilization of the constraint.
- elevate the system's constraints; add resources or otherwise increase capacity of constraint resources
- if in the above steps a constraint has been broken, go back to step 1. Do not allow inertia to cause a system's constraint. Whenever a constraint is broken, immediately re-examine conditions included the changes made in steps 2-4; they may now be problematic.
- What should be changed
- What should it be changed to
- How to cause the change - without creating new problems, and with enthusiastic support