On the internet there is much information on Little’s Law. It is described an explained in many places [Vac]. Recently, the conditions under which it is true got attention [Ram11]. As will be explained in this blog the conditions under which the law is true are very mild. It will be shown that for teams working on backlog items virtually there are no conditions.
Why does it work? Under what conditions does it hold?
Airplane Folding
In the previous post (Applying Little’s Law in Agile Games) I described how to calculate the quantities in Little’s Law. As an example this was applied to the Agile game of folding airplanes consisting of 3 rounds of folding.
Let’s look in more detail in which round an airplane was picked up and in which round it was completed. This is depicted in the following figure.
The horizontal axis shows the number of rounds. The vertical axis describes each airplane to fold. The picture is then interpreted as follows. Airplane no. 2 is picked up in round 1 and competed in the same round. It has a waiting time of 1 round. This is indicated at the right of the lowest shaded rectangle.
Airplane no. 8 was picked up in round 1 and finished in round 3. A waiting time of 3 rounds. Airplane no 12 (top most shaded area) was picked up in round 3 and unfinished. Up to round 3 a waiting time of 1 round.
The number 3, 5, and 10 denote the number of completed airplanes at the end of round 1, 2, and 3 respectively.
Waiting Times
The waiting times are determined by counting the number of ‘cells’ in a row.
The pictures show that we have 12 airplanes (12 ‘rows’), 3 completed in the first round, 2 more completed in the second round and 5 additionally folded airplanes in the third and last round giving a total of 10 finished paper airplanes.
All twelve airplanes have waiting times of 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, and 1 respectively.
Work in Progress
In the figure below the number of airplanes picked up by the team in each round are indicated with red numbers above the round.
In round 1 the team has taken up the folding of 11 airplanes (of which 3 are completed). In round 2 the team was folding 8 airplanes (of which 2 were competed) and in round 3 the team was folding 7 airplanes (of which it completed 5).
Work in progress is determined by counting the number of ‘cells’ in a column.
Little’s Law…..Again
Now that we have determined the waiting times and amount of work in progress, let’s calculate the average waiting time and average work in progress.
Average Waiting Time. This quantity we get by adding all waiting times and dividing by the number of items. This gives 26/12.
Average Work in Progress. This quantity is equal to (11+8+7)/3 = 26/3.
Average input rate. This is equal to 12 (the height of the third column) divided by 3 which gives 4.
Again we find that: Average Waiting Time = Average Work in Progress / Average input rate.
Why It Works
Little’s Law works….always….because the average waiting times is got by adding the lengths of all the rows dividing by the number of rows, so it is proportional to the size of the shaded area in the picture to the right.
The average work in progress is got by adding the heights of the columns in the shaded area which is also proportional to the size of the shaded area.
Both the waiting time and work in progress relate to the size of the shaded area: one by adding the heights and the other by adding the rows. The proportionality corresponds to the average input rate.
Conditions
What assumptions did we make? None…well this is not exactly true. The only assumptions we make in this calculation:
- We count discrete items
- There are a finite number of rounds (or sprints)
- Items enter and possibly leave the system.
That’s it. It doesn’t need to be stable, ageing (items having increasingly larger waiting times) is not a problem, prioritisation/scheduling of items (also known as queueing discipline), etc. Only the above assumptions need to be true.
Note: Especially the second condition is important, i.e. Little’s Law is measured over a finite time interval. For infinite time interval additional conditions need to be fulfilled.
Note: When applying this to agile teams we always consider finite time intervals, e.g. 6 months, 1 year, 8 sprints, etc.
Conclusion
Little’s Law is true because the average waiting time is proportional to the size of the shaded area (see figure) and the average work in progress is also proportional to the size of the same shaded area.
Only 3 basic conditions need to be met for Little’s Law to be true.
References
[Vac] Little’s Law Part I, Dan Vacanti, Little’s Law Part 1
[Ram11] Little’s Law – It’s not about the numbers, Agile Ramblings, Little’s Law – It’s not about the numbers