Monday, August 20, 2012

Notes on Kanban


Below are my notes on Kanban.

What is Kanban?


It's a Japanese word, it literally means "signboard" or "billboard," it is a concept related to lean and just-in-time (JIT) production. According to its creator, Taiichi Ohno, Kanban is one means through which JIT is achieved, he introduced this model for Toyota in mid 1920's. 
Kanban in software engineering is a flavor of Scrum methodology, in better words it is considered a leaner flavor of Scrum.

Why Kanban?

Implementing it can result in:

- Improved quality of work
- Faster turnaround of work requests
- Identification and elimination of bottlenecks
- Reduction of time work spends in queues
- Improved teamwork
- Reduction of wasted effort

How Kanban works?

Two most important Principles of Kanban are to:

       1- Visualize your work: Providing a means of visualizing work, allows you and others know what are you doing, What should I be working on right now?
       2- Limit work in process(WIP), which in turn:
1. reduces waste
2. improves quality
3. improves flow:  in Kanban Work processes should be optimized to maximize flow not capacity utilization! 100% utilization kills flow! An example of maximized capacity is a 100% CPU, which we all know it's not an good situation to be at.
                                
                                Little's Law shows that response time improves directly with reduction in WIP
               
                                Little's law Arrival rate=throughput
                                Length of queue=Arrival rate * average wait time
                                wait time= Length of Queue/Arrival rate
                                cycle time= WIP/throughput

                                Cycle time starts when work begins on the request and end when the item is ready for  delivery.
                                Lead time starts at feature request and ends when it is delivered
               

Team Kanban 

 Recipe for Success 


1- Focus on Quality
2- Reduce Work-in-Process 
3- Deliver often
  1. Reduced WIP, shortens Lead Time
  2. Shorter Lead Times allow for more frequent releases
  3. Frequent releases build trust!!! which is very important!

4- Balance Demand Against Throughput  
  1.      Not accepting new work at a rate that exceeds the rate that team produces. This will reveal bottle-necks activities in the process. 
  2.       You need slack  in order to improve or Kaizen , 100% utilization kills flow

5- Prioritize
6- Attack source of variability to improve predictability

  
References: