Little’s Law, as we use it in Kanban, states a relationship between average Lead Time, average Throughput and average Work in Progress.
The original formula comes from queuing theory and looks like this:
L = λ x W
L is the average number of items in a queuing system.
λ is the average number of items arriving into the queuing system over some unit of time
W is the average time a work item spends overall in the queuing system
If we transfer the formula into knowledge work, there are some interesting implications we have to consider. For example: Did you know that Little’s Law only holds true in a stable system where we have Conservation of Flow? This means that every work unit passes the whole system and that the average arrival rate of work equals the average departure rate. I strongly recommend Frank Vega’s great Blog Post Little’s Law: Isn’t ita Linear Relationship? on this topic! My main takeway from Frank’s article is that we need to dig a little bit deeper into the topic before we start calculating lead times according to Little’s Law.
But besides this calculations (at the Advanced Kanban Metrics Tutorial in Boston we called this „The Fancy Stuff“), there are some other interesting things we can use Little’s Law for. For example: discussion!
Here are some examples of fruitful discussions I had with different teams over the last couple of months. This is the variant of Little’s Law which I use (and which is probably most common within the Kanban community):
The first interesting thing here is: If we want to shorten Lead Times (and who does not want to do this?), we have two choices: We can either increase Throughput or decrease the Work in Progress (WIP). This ist trivial, right? But as soon as we make people think about the measures they typically take to shorten lead times, we will probably discover something interesting: Most of them are on the Throughput side. Hiring additional staff, making people work overtime, buying better tools, building frameworks, yelling at people...All these means are quite common in our industry – and they all try to increase the Throughput. But do they work well? In most cases: No! There are different reasons behind this. One is Brooke’s Law. Another one might be that most of these measures lead to a deep J-Curve, meaning it gets much worse before it gets better. So instead of trying harder and harder to increase Throughput, perhaps we should have a look at the numerator of the equation: Work in Progress. If we manage to decrease the WIP, this would lead to shorter lead times. The simpliest way for doing so is to establish a new policy that states: „We as a team agree that we do not want to have more than X items in progress at any time. Before we start another item, we need to finish an old one first.“
Perhaps it is as simple as this. Perhaps it isn’t. But the interesting point here is that now the teams starts discussing things in a completely different way, because they’ve never thought about it from this perspective!
Now let’s go one step further. So far we’ve assumed that we take a measure (new tool, new policy etc.) and this measure will only effect one part of Little’s Law (e.g. Throughput). In practice it’s often not that simple. Let’s take Pair Programming as an example. What will happen if a team starts pairing? One effect might be that the Throughput goes down, because utilization of team members goes down. And this is certainly the most common argument against Pair Programming. (Let’s forget the fact for know that in reality often Throughput does not go down, because pairing leads to less multitasking and better focus.) At the same time something else happens: Pair Programming means that we decrease WIP dramatically! And this will lead to shorter Lead Times. So what we observe in reality quite often is that the overall Lead Time after introducing Pair Programming will be shorter than before – in addition to higher quality and better risk management through continuous knowledge transfer. We’ve seen this happening many times. But it sounds counter intuitive and therefore it’s hard to convince people to give it a try. Using Little’s Law as a model can help making these effects clearer and easier to understand/explain.
Let’s look at another example: utilization. If we consider our Lead Times to be too long, our first reaction is: We need to work more efficiently. And we get there by higher utilization. So we start „managing people“ better so that they don’t have any idle times anymore. According to Little’s Law this might be a good thing to do in order to increase Throughput. But what we often forget is the fact that at the same time we increase the WIP. How can we get better utilization of people? We make them work at new tasks every time they have spare capacity! So the overall effect of higher utilization is often longer Lead Times instead of shorter ones (not to mention poorer quality and a higher stress level of the employees)!
I would be interested in your experiences: How do you use Little’s Law? Do you find it useful? Do you have other examples for fruitful discussions? Please leave a comment!
P.S. If you want to learn more about the fancy side of Little’s Law, you really should attend Lean Kanban Central Europe in Vienna, Oct 22-23. Dan Vacanti will give his talk Little’s Flaw, and together with Frank Vega, he will give the workshop Advanced Kanban Metrics which I really recommend!