Friday, August 26, 2011

The world is flat

Here is my friend and coworker Ygor in front a flat screen tv connecting Porto Alegre to San Francisco, Ohio and Bangalore.


For Ygor the world is flat. Flat as that 32 inches tv which he uses to communicate with a distributed agile team with a common goal of building a large scale application for great company.

Friday, August 19, 2011

Little Law, cycle time and throughput

In this blog entry I talk about whisky and Little Law. While sitting at my dining table I was thinking about a way to explain Little Law, cycle time and throughput. This idea came to mind once I did pour myself a glass of whisky. It was the last dose of a Macallan 12 bottle. I removed the empty bottle from the bar, and took a note to buy another one.

Problem Statement A: At home, I have 12 bottles of whisky at my bar. I consume and purchase an average of 6 whisky bottles per year. What is the average time each whisky bottle stays in my bar?


Or, stating the same problem in a different way:
Problem Statement B: At home, I have 12 bottles of whisky at my bar. In average, I finish (and purchase) one whisky bottle every two months. What is the average time each whisky bottle stays in my bar?

From the problem statements I can get the following parameters:
The inventory or WIP is 12 bottles. (Problem statement A and B)
Throughput is 6 bottles per 12 months (Problem statement A)
Average Cycle time is 2 months per bottle(Problem statement B)

And the question is the average lead time

I will solve the problem two ways:
Solution 1:
WIP = Throughput x Average Lead Time
12 bottles = 6 bottles /12 months x Average Lead Time,
Therefore, Average Lead Time = 24 months

Solution 2:
Average Lead Time = WIP x Average Cycle Time
Average Lead Time = 12 bottles x 2 months/bottle
Therefore, Average Lead Time = 24 months

The formulas used on both solutions are equivalent:

WIP = Throughtput x Lead time
<=>
Lead Time = WIP x Cycle Time

Here are the definitions for these equations’ parameters:

  • lead time is the time between the initiation and delivery of a work item.
  • cycle time is the time between two successive deliveries
  • throughput is the rate at which items are passing through the system.
  • WIP – Work in progress; the number of work items in the system. Work that has been started, but not yet completed

Although these formulas are intuitively reasonable, it's quite a remarkable result. And this is the main theorem in the Queuing Theory, which is also known as Little’s Law (It was described by John Little in 1961):

The average number of work items in a stable system is equal to their average completion rate, multiplied by their average time in the system.

The average completion rate can be represented by either throughput, or its inverse, average cycle time. This duality is shown at problem statements A and B. These equivalent statements are made in terms of, respectively, throughput and average cycle time.

I don’t know about you, but before digging into Lean, I was a little confused by Throughput and cycle time (and I did not measure it). I hope this blog post you a simple way to understand and explain it. I also hope more people start measuring such important parameters (I can’t believe I did not use these before going Lean!).

Friday, August 12, 2011

Lead time vs cycle time; from Manufacturing to SW development

I have seen different definitions for lead time and cycle time in the Agile and Kanban communities (for SW development).

From Lean manufacturing:

lead time is the time between the initiation and delivery of a work item.

cycle time is the time between two successive deliveries

In my opinion, this translates directly to Agile SW development like depicted in the photos below.

For a typical Agile development team the workflow is something like:

Backlog -> Ready for Dev -> In Dev -> Ready for Validation -> Validating -> To Be Deployed -> Deployed

Next is a sequence of photos from a card wall depicting these concepts. Please have in mind that I am only showing two stories for illustrative purpose.





lead time is the time between the initiation and delivery of a User Story; in our case it is the time a Story enters the Deployed stage minus the time the story has entered the Backlog stage. Story 34 has entered the Backlog in day 4, and enters the Deployed stage on day 11; lead time equals 7 days (day 11- day 4).

cycle time is the time between two successive deliveries; in our case it is the the time between two stories entering the last stage-- Deployed stage in this case. 34 enters the Deployed stage on day 11, then two days after, the next story-- Story 37--enters the Deployed stage; cycle time equals 2 days (day 13 – day 11).

These metrics should be collected for the set of Stories the team has delivered,. This way you can get the average lead time and average cycle time, two powerful process improvement metrics.

Varying the WIP limits on the workflow stages (assume the same set of Stories, and the same team members) will affect the average lead time and the average cycle time.

This is what the workshop I have been running is all about!

My hypothesis is that after people participate on the workshop they will have experienced the Little’s Law.

Little’s Law: Lead Time = Cycle Time x WIP

On the next blog entries I will write about the Little’s Law and the workshop.