Kanban is a lean agile methodology developed at Toyota Corporation, Japan. Kanban utilizes visual queues to manage tasks. ( Kan = Visual, Ban = Cards)
In Software Development, Kanban board has visual cards of product backlog in different queues/steps. Cards move from one step to next, once current step is completed. One of the important aspect of Kanban queue is that there is a limit on WIP items for each queue. In the sample board below there is a limit of 1 items in Test queue. Unless this item moves to Done queue, new item cannot be moved to In Test queue from peer review queue. Same applies to Peer review and In Progress Queue. This upper limit helps steady flow of tasks and if there is an issue at any queue, it gets highlighted
Primary focus of Kanban is to keep delivering 100% completed features to customer in a steady flow.
While scrum focuses on short delivery cycle, early feedback, and continues improvement there are some challenges in Scrum. Some of these challenges are
In Software Development, Kanban board has visual cards of product backlog in different queues/steps. Cards move from one step to next, once current step is completed. One of the important aspect of Kanban queue is that there is a limit on WIP items for each queue. In the sample board below there is a limit of 1 items in Test queue. Unless this item moves to Done queue, new item cannot be moved to In Test queue from peer review queue. Same applies to Peer review and In Progress Queue. This upper limit helps steady flow of tasks and if there is an issue at any queue, it gets highlighted
Primary focus of Kanban is to keep delivering 100% completed features to customer in a steady flow.
While scrum focuses on short delivery cycle, early feedback, and continues improvement there are some challenges in Scrum. Some of these challenges are
- Unclear Development Steps
- Switching of multiple tasks
- Partially done work.
- Unclear Development Steps: In Scrum there is a step "In Progress" but it done not give correct status of In Progress task. Instead of that if there are visually mentioned steps like Execution, Review, Testing then it will help team to get correct status of each task. By visualizing the workflow of tasks, team will be able to address issues at particular step if there are any. Also team can analyze the different steps on board and keep only those steps which add value to customer.
- Task Switching: Constant task switching by a Scrum Team will have hard time for a team to focus on tasks. It is an overload and it impacts the velocity of team. Kanban places limit on WIP items for each Step. If a step has reached WIP level then team has to move at least one task from that step to next step before new task is added to that step. By this way Kanvan prevents having too many tasks in a step and team don't need to switch on multiple tasks.
- Partially Done Work: Scrum values the batch of tasks done where as Kanban values continuous flow of individual task done. Scrum delivers bucket of features at a time whereas Kanban delivers features in steady stream. Because of this nature of Scrum Delivery, Scrum may have multiple partially completed tasks at any time on scrum board. But Kanban focuses on getting the task done 100%. In Kanban there is a WIP limit for tasks in progress. This enforces Kanban team to complete in progress tasks before they can start working on new tasks.
Implementing Kanban principles on Scrum project will help Scrum team to identify the bottlenecks in visual queues and allow them to focus on those bottlenecks before it becomes a big problem.