Recently when attending the 5-day Agile 2014 conference in
Orlando, Florida, I had an opportunity to discuss various agile implementations.
Some of the discussions centered on selecting the right type of agile
methodology to consider for software implementations from extremely regulated medical
devices industry and government projects where Scrum was considered prevalent.
Then, when I found in my network of work and friends, there were questions that
revolved around using Kanban because Scrum wasn’t working.
Having used Kanban and Scrum, I wondered why there is still
confusion among the early adopters of Agile and why Kanban would be considered as a substitute for Scrum. Unclear understanding of agile concepts may actually lead to failure despite the methodology as discussed in one of my networking
seminars on some impediments to agile’s failure (Readers can visit http://www.agiletrainingchampions.com/#!video/c1emu for more information). So, I focus below on a comparative study of the basic premises between Kanban and Scrum. I hope this article captures the essence of
these approaches demystifying the confusion and helping in the
selection of the right approach for the challenge at hand.
Concept
|
Kanban
|
Scrum
|
Management focus
|
Maximize resource usage avoiding delay and enhancing accountability
to support flow.
|
Consistent delivery in the cadence of execution, as the features in
the product backlog is delivered.
|
Operating rhythm
|
No time-boxed iterative development exists.
|
Time-boxed iterative development – usually two to four weeks.
|
Granularity of work
|
Focus is at the task level for which the scope of work is generally
known.
|
Focus is at the user story level for which the scope may not always
be known, requiring it to be estimated before tasks can be identified and
taken up by the team.
|
Agile Estimation & Planning
|
Estimation is generally not done. There is little to no ambiguity on
the task that any member of that team should be able to take on the next
available task and execute it.
|
User stories are estimated. Then, they are prioritized and risk
adjusted so that these are included in the release and iteration planning.
|
Value Delivery
|
Every task completion may not necessarily add minimally marketable value
to the customer. Task identification and dependency require careful
coordination.
|
The cadence of release and iteration planning focuses on adding
minimally marketable feature through the scrum cycle. The self-organized team
determines the task identification and dependency.
|
Progress Tracking
|
Flow of items throughout the lifecycle limiting delay. This is why
the focus is on limiting “Work in progress (WIP)” is promoted through “Don’t Repeat
Yourself (DRY)” focuses on maximizing work not done
|
Focus is on tracking the velocity measuring the user stories done and
delivered to customer in an iteration
|
Utility value
|
Better for managing workload and resource management.
E.g.: How many projects of
different combinations can be taken up by a project?
|
Better for managing products, programs, and projects.
|
Thoughts to consider in software development
|
Use of Kanban for software development may impede flow if all the
units don’t consume the work produced at the same speed. Therefore additional
processes must be in place to support Kanban.
E.g.: QA not having capacity to
test code developed by engineering team. If QA’s capacity comes from the fact
that more defects are found in the build, then, more granularity in tasks to
ensure proper code review, unit testing, and documentation are processes that
the organizations must have in place.
|
Implementing Scrum doesn’t mean ability to write user stories and
avoiding documentation completely! This requires a management shift to ensure
critical thinking on the product, program, and projects. If iterative
delivery is not understood by the management and client, then, Scrum is not
an option to consider.
|
In summary, Kanban is similar to Scrum in that they both are
light-weighted approaches but the operating philosophy is different. Scrum
focuses on the work being delivered to customer through multiple iterative
deliveries of minimally marketable value by assembling cross-functional, skilled,
and self-organizing team. Kanban, on the other hand, focuses on the visualized
workflow where flow is maximized by limiting what gets worked on by the team.