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.