Saturday, September 3, 2011

Scrum VS Kanban

Once a project team has decided that they want to execute project on Agile principles, next big question is which methodology to follow.
Ideally a project team should pick up one base methodology and customize or fine tune the processes to the project requirements.

Two very popular flavors of Agile are SCRUM and KANBAN.

What is SCRUM
SCRUM is basically a way of organizing projects using two important principles:
  • Product backlog: This is a list of all the work (Enhancements, New Development, and Bugs) which is required to be done for a product.
  •  Time Boxing: Product is delivered in iterations and duration for iterations is always fixed. It could be any duration generally from 1 -4 week(s). But once this is decided, it should not be changed.
How Scrum Works:
  • Sprint: At the beginning of Project a fixed duration for deliverable is decided. This is called a SPRINT
  • Product backlog items are prioritized and placed in a sprint. This gives product development road map
  • During each Sprint, backlog items are reviewed and re prioritization is done. This is done on regular interval to make sure that all the changes and new requirements which have come up since last Sprint are placed in product development plan.
Practical Problems with SCRUM
Scrum focuses on time boxing of development cycle. This could be a challenge for maintenance teams where fast turnaround time is required.  They may want to have releases based on priorities instead of waiting for a fixed time period.

For example in first iteration there might be 3 important issues which are required to be released and which will take 2 weeks to deliver. In next iteration this could be 1 week or 3 weeks. So holding on to the release to fulfill fixed duration requirement of SCRUM becomes challenging in environment where there is high pressure from clients for fast turnaround time.
·        
     Sometimes it’s difficult to freeze the priorities even for a small sprint. What if an urgent issue comes up? Should the team keep on waiting for the current SPRINT to be completed to pick up the urgent issue, or should this be picked up immediately?

KANBAN
Kanban eliminates the need for time boxing while maintaining most of the other principles of AGILE intact.

Kanban focuses on continues delivery approach by focusing on limited items at a time

How Kanban works:
Step 1: Define stages of development: 
Each work item, needs to go through different phases from initialization till completion. These are called stages of development. For example the stages could be
  • Requirement gathering
  • Design
  • Develop
  • Test
  • Release
This is the sequence which is required to be followed for completion of an work item. This sequence could be different for each team and needs to be defined based on project requirement.

When one work item goes through all the stages of development that is called a completion of one Cycle

Step 2: Fix Work in Progress (WIP) for each stage:

After the stages of development are defined next step is to fix the max work in progress items for each stage
For example if it is decided that requirement gathering team can pick only 3 items at a time to define requirements. Unless any of these current item is completed, any new item is not picked up and is kept in a queue. Till the time team is working on current item in hand, priority of queue can be changed any time. Only when one of the items is completed next item from the queue is picked up.

Step 3: Manage Work Queue for Each Stage:
Work Queue for each stage is managed to ensure WIP limit in maintained for each cycle. One work item passes through work queue for each stage in life cycle. It is completed when it passes the last stage of the life cycle.  

This gives flexibility to re prioritize at any stage of life cycle.     

Scrum Vs Kanban Diffrences
Scrum
Kanban
Time boxed delivery
Continuous Delivery
Predefined roles for team , scrum master and product owner
No Prescribed Roles
Work is managed in sprint backlog and cannot be reprioritized once sprint started
Work is managed in Queues for each stage and can be reprioritized as long as it’s still in the queue
Batch work is picked up to create product backlog
One item is picked up at a time
Team productivity is assessed using team Velocity which is the average number of story points completed in each cycle
Team productivity is assessed using Item Cycle Time. This is the average time required by an item to complete one full cycle from first stage till the last stage

Scrum Vs Kanban Similarities


  • Both are lean and Agile
  • Both focus on cross functional teams
  • Both are focused on end delivery 
  • Both promote small incremental releases
  • Both promote transparency in the team and flat team structure


Which one is Better SCRUM or KANBAN
Both SCRUM and KANBAN are designed to deal with specific problems.  While SCRUM should be a good practice for a product development, KANBAN can be adopted by Product maintenance teams where turnaround time is of extreme importance. 


No comments:

Post a Comment