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 lead to failure just like how
people created a non-existent theory of waterfall based on inaccurate practices
(Rajagopalan, 2014). 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.
One of the
primary differences is that Kanban is a method that can be used independently
or along with other approaches like Scrum. This is why we even have derivative
approaches like the Scrumban.
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 the 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 and Scrum are both light-weight approaches, but the operating philosophy is different. Scrum focuses on the work being delivered to customers through multiple iterative deliveries of minimally marketable value by assembling a cross-functional, skilled, and self-organizing team or team of teams. Kanban, on the other hand, is a pull-based system and focuses on the visualized workflow where flow is maximized by limiting what gets worked on by the team. Although both approaches require prioritization in the items represented in the backlog, Scrum team can’t pull an item outside of the Sprint backlog when they have capacity. Kanban team can pull the next priority item from the backlog. So, depending on what product, service, or result the team is delivering, or the benefit being sustained in operations, Scrum, Kanban or Scrumban may work. Select the right tool for the right job!
Thoughts?