As a < type of user >,
I want < some goal >
so that < some reason >.
Hypothesis is a supposition or proposed explanation made on the basis of limited evidence as a starting point for further investigation.
If < I do this > then < this will happen >
As a < type of user >,
I want < some goal >
so that < some reason >.
Hypothesis is a supposition or proposed explanation made on the basis of limited evidence as a starting point for further investigation.
If < I do this > then < this will happen >
Instead of forming a team to deliver a feature, a performing team works on a feature after another.
A team selected for a target featureversusA feature selected for a target team
I have been saving project time and money by keeping a fixed team and selecting features for the team.
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:
Here are the definitions for these equations’ parameters:
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!).
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.
The workshop was composed of two parts: a presentation, and an activity.
At the presentation time, I introduced Kanban, and talked about the reasoning behind the Kanban WIP limits, and the reason I propose a more flexible and effective control: the target-variance score. My hypothesis was that a card wall following target-variance score would have better results than a typical Kanban card wall, and I decided to give it a try at the Agile Brazil conference (it was the first time I did run the activity). The activity results did help me validate the hypothesis! I will repeat this and similar activity, and will keep on sharing the results (future conferences, work sessions, and blog posts).
Below are the presentation slides:
The activity was the simulation of work moving through the card wall (visual representation for the same workflow) for 4 different control mechanisms:
A – without limits
B – Kanban limits, without pairing (unless the WIP reaches the limit)
C – Kanban limit, pairing as much possible
D – using the target-variance score (instead of limits)
Four decks of cards exactly equal were distributed to the teams (A to D) which had the exactly same configuration: 1 BA, 5 Devs and 2 Testers. The cards (Stories) had to be played in the sequential order (1, 2, 3…20).
Below is one team’s deck of cards.
While the time went by (myself screaming: the day started, it is lunch time, it is afternoon working hours, and the day is over), the work was moving on the workflow (the card wall). Each team work dynamics (who helps who, and when) was decided according to each team control (no control for team A, limits for teams B and C, and the proposed target-variance for team D). The teams were taking pictures and collecting data for a Cumulative Flow Diagram (on an excel spreadsheet) at the beginning of each day.
Here is a photo taken by team B:
We were able to finish the activity, but unfortunately, we did run short of time and could not analyze the results. I did promise this blog post for the attendees to share a few notes, photos and the Cumulative Flow diagram of each team.
At the end of the activity, I had the following data points:
On subsequent blog entries, I will share the feedback from the session (thanks!), upload activity photos, and the Cumulative Flow Diagram created by each team. If you were at the session and have either photos or the excel file, please send it over.
Here is the feedback I collected from this workshop.