A highway at capacity is not a parking lot
But it can feel like one...
A highway at capacity is a parking lot...
This is a meme I have seen making the rounds online in recent weeks.
Thanks for reading The Polaris Flow Dispatch! If you were forwarded this email, consider subscribing for free to receive new posts and support my work.
It is used to warn of the perils of high utilization, but the arguments as to exactly why this is bad are often a bit muddled.
Since parking lots and highways are seemingly very different kinds of beasts - cars are moving by default in one, and cars are stopped by default in the other, the claim that when a highway reaches capacity, it starts behaving like a parking lot is intuitively appealing but subtly wrong.
But once a highway starts reaching capacity, it indeed feels like a parking lot to many people trying to get home.
Let's use flow principles to understand why this is the case.
Utilization vs. Throughput
Consider rush hour traffic when your local interstate is presumably clogged with traffic and running at or near total capacity. The highway is almost fully utilized.
If this were a parking lot, the default expectation would be that cars are not moving, but the opposite is true.
The maximum possible number of cars are moving through the system simultaneously, and the highway is running at peak throughput.
So it might feel like you are sitting in a parking lot, but that’s only your imagination!
The true impact of high utilization
The real problem with high utilization is that it increases the transit time.
So while lots of cars are getting through, each car takes longer to get through.
If you happen to be one of the unfortunate cars not yet on the highway and waiting at an entrance ramp, you will wait a very long time to get onto the highway as it fills up.
Something we all recognize if we’ve ever braved rush hour traffic.
Why this happens
Queueing theory provides the mathematics to explain this.
As the utilization increases, the size of queues increases, and assuming throughput is capped at the maximum, the time it takes to go through the system increases. You can see my article, The Iron Triangle of Flow, a primer on Little’s Law, the theorem that explains this relationship, to understand why this happens.
The graph below shows the relationship between utilization and queue size.
As the utilization increases, the queue size increases exponentially, assuming traffic continues to arrive. We double the queue size and wait times from 60 to 70% utilization. Go up another 10 percent, and we double the queue size and wait times again. And so on…
While utilization does not affect throughput, knowing the utilization lets us predict several things about your expected transit experience.
For example, it can tell you what fraction of the time cars trying to get on the highway find they need to wait on an on-ramp. In most cases, this is exactly the same as the utilization!
It can tell you how long those on the on-ramp must wait before they can get on.
It can tell you what fraction of the commute will be spent waiting instead of moving.
All told, when your utilization nears 100%, you will seemingly wait for an eternity in each case.
At rush hour, even a slowing or stalled car in a single lane can cause traffic to back up in unpredictable ways for miles.
This lack of resilience is the true cost of trying to maximize utilization.
The Lesson for Product Development Flow
If you are running a product development shop, all these same insights can come into play as you manage the workflow of your product development process.
The takeaway is that keeping utilization for people at an optimal level helps you balance throughput and lead times.
60-70% is a good rule of thumb in most cases, as you can see from the above graph.
So don’t focus on keeping people maximally busy. Much as you might hate that up to 40% of your capacity is “under-utilized,” it is the only way to ensure your shop delivers the best possible customer experience.
That said, there are valid situations, particularly when dealing with critical constraints in your system. You may want to consider running those areas at much higher utilization to ensure you optimize your system's overall throughput and lead times.
But you’ll need to closely manage and prioritize the work that gets into those queues because you have less room for errors and changes once you run at high utilization.
In general, you need to manage utilization carefully to increase the resilience of your process - the ability to respond to sudden changes in demand or unexpected demand during execution without disrupting the overall flow in the system.
The slack in the system makes it more resilient and adaptive, but it is all a balancing act.
Queuing theory says so.
Doing this type of reasoning well at any scale in product development requires understanding the Principles of Product Development Flow. Don Reinersten’s book is the definitive guide for this. I highly recommend reading it from cover to cover and absorbing the principles.
A more technical explanation for the points we made above can be found on pages 58-60 of this book.
But if you prefer the more digestible explanations, subscribe to this newsletter too!
Also, check out The Polaris Advisor Program, where we help you improve product development flow in your shop and show you how to implement these principles with your teams using real-time data from your development tools.
This graph assumes a single queue and certain relationships between the distribution of arrival times. In general, the non-linear behavior will vary greatly depending upon these parameters. Still, the key point here is that the relationship is non-linear, and the impact is greater at high utilization.