ICatalyst

I don’t always optimise, but when I do, I optimise the bottleneck

Everybody loves to optimise.  Everyone loves hearing that we shaved 14 hours off process x.  The problem is if process x isn’t the bottleneck it doesn’t matter.  It looks great in reports when you talk to how time was saved in this part of the process, or reduced the number of people required at this stage of the process.  It doesn’t always mean that the process itself has been optimised.

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).

process flow 1

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.

process flow 2

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.

the bottleneck flow

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.vertically scaling activity flow
  • 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.Throttle the activity flow

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:

And if you are looking for something a little less like a novel

 

Add comment