You can read in many places (for example here or in Don Reinersten’s Book The Principles of Product Development Flow) that when you avoid over utilization (that is, use less than 100% capacity) a system (like a road or a scrum team) that handles items with variation (like cars or stories for software) you get better cycle time – that is, items flow faster through the system.
That makes sense. However, I was wondering about the throughput. I can understand that if a team is less busy they will process items faster, but if they are less busy it means some people don’t do something some of the time. So what will happen to the throughput?
I was thinking about this on my way home from a client yesterday and suddenly I found myself on a pedestrian bridge above a highway (road 2 in Israel).
As you can see, the northbound lanes (going out of Tel Aviv) are jammed (the lanes are fully utilized) while the southbound lanes are pretty free. So I thought to myself why not check the throughput?
I measured one minute and counted the cars going on the northbound lanes (the jammed lanes): Sixty. Good. Now I counted how many cars go under the bridge in one minute in the southbound lanes: Forty. It was a bit disappointing. It sure wasn’t worth all the strange looks I got from passers by on the bridge. I was hoping to get a better result on the free lanes. However, traffic was not very intense going to Tel Aviv so I decided to give it another try tomorrow morning.
All that night I couldn’t sleep from excitement and finally dawn came and I was ready to go out and count cars again. The only problem was that counting the cars too early would not do so I waited for morning to advance a bit, for my kids to wake up and demand the full service they deserve and for traffic to build up.
Finally I got to that bridge again. This is how traffic looked this morning.
As you see there is no traffic Jam. In fact the utilization of the road is pretty low – a lot of asphalt is enjoying a warm Israeli winter Sun. Again I started my stopper and counted cars on the northbound lanes. The tension was high in the air. A friend of mine who happened to be on that bridge shouted “Don’t jump!”
What would I do if I can’t beat the traffic jam throughput of Sixty? I was looking to build intuition here and if I couldn’t prove it to myself how could I persuade my clients?
The traffic was good but there were some gaps. I watched the seconds go by. And then, finally… Eighty cars! What a relief.
This means (to me) that there may be something there in that theory, that if we better managed the traffic we could get better throughput. But it’s not just better throughput, it is better cycle time too! Those cars were going around 90 or 100 kilometers per hour! We could get more cars per hour and even get them faster wherever they’re going!
Could this be true for software, too? Could it be that if we better manage the level of utilization of our software teams and the flow of development items into the teams we will get higher throughput and improved cycle time?
(To be continued)