Something that I often see being forgotten on the metrics is the impact to the entire process.
What is a process?
A process has a flow. Work should flow through the process in one direction. At each point in the flow, an activity occurs. Each activity has a maximum throughput (the measure of the work an activity can take in and how quickly it can execute that work).
Each activity will have different throughputs, and it is these differences in throughputs that create bottlenecks in the process. When an activity processes work slower than the previous activity then work piles up waiting to be executed. Similarly, when an activity processes work slower than the next activity can handle it the next activity spends a lot of time waiting for work.
A fully optimised process is one where work never waits at any point in the process.
Where do you optimise?
A flow with a bottleneck is a flow where either the work is coming in too fast to handle, or the work is exiting the activity at a rate which the rest of the process cannot cope.
If you optimise before the bottleneck then you are increasing the work waiting at the bottleneck, and if you improve after the bottleneck then you are increasing the time that activities are waiting for work to execute.
When you have identified a bottleneck, optimisation options are based on the type of bottleneck and the ability/cost to resolve the bottleneck. This is very much simplifying but options are generally:
- Scale the vertically scaling activity. By having multiple instances of the activity the throughput of that activity is increased. This also increases the cost of the activity as it usually also means you are increasing the number of people executing the activity.
- Throttle the activity. Reducing the throughput of an activity allows the rest of the flow to be fully utilised. This usually reduces the cost of the flow as throttling usually means reducing the number of people executing, hopefully enabling them to work on other activities.
And importantly, when you have optimised a bottleneck, start looking for the new bottleneck start the optimisation process again.
Some great books to read on this:
- The Goal by Eliyahu M. Goldratt and Jeff Cox
- The Phoenix Project by Gene Kim, Kevin Behr, and George Spafford
- Maverick by Ricardo Semler
And if you are looking for something a little less like a novel