The word Kanban means Signboard or Billboard in Japanese.  Kanban is a software development methodology inspired by Toyota’s “Just-in-time (JIT)” production system.

JIT
Toyota wanted to optimize their delivery and make it much similar to the shelf management in super markets. In super markets the customer decides what to purchase and how much needs to be purchased, each purchase triggers a sign for replenishing the stock.  This helps the super market to determine the exact need of the customer and have the supply chain in control by not over stocking or going out of stock.

We can term this methodology as pull where the demand is created by the customer rather than push where the supplier produces goods in anticipation of demand which often goes wrong.

Toyota implemented this methodology in their factory floors where the next process approach the proceeding process to retrieve the necessary parts by exactly defining when they needed it and how much they needed it thereby eliminating the inefficiency in the traditional process of oversupply.

The whole objective of the JIT is to eliminate the following:-

  • Muda – Waste
  • Mura – unevenness
  • Muri – unreasonableness

Lean software development
There are several lean development methodologies practiced across the world like TDD, Scrum, Kanban, XP etc. to help companies quickly bring features to market and the core values are :-

  • Eliminate waste
  • Amplify learning
  • Decide as late as possible
  • Deliver as fast as possible
  • Empower the team
  • Build integrity
  • Have a holistic view

In this article we will see what SCRUM & Kanban is all about and their similarities and differences.

SCRUM
Scrum is a popular framework to implement Agile. In SCRUM, the product is built in series of fixed –length iterations called sprints.  The idea behind this methodology is to cut down the delivery time and get a feature quick to market before the need changes. In the SCRUM we follow the following 4 processes:-

  • Sprint Planning
  • Daily stand up
  • Sprint demo &
  • Sprint retrospective

Like every other methodology, SCRUM also suffers certain disadvantages

  • Change in requirements in the sprint backlog will trigger more sprint planning. It is very difficult to do a change in the middle of the process
  • Scrum’s success depends on the team’s velocity (total number of story points the team can complete in a sprint). This forces the team to break down large issues into tiny components or combine smaller ones to make it big. Maintaining the integrity while breaking the tasks leads to much bigger problems at later stage

KANBAN
KANBAN is the JIT for software development.  It is a continuous flow of work process from one stage to other. The key parameter for the Kanban is WIP (Work in progress); it is a unit that specifies maximum number of items that can be simultaneously handled at each stage

Blog Picture Kanban

In the above Kanban board WIP is 3 for Analysis, 5 for development etc. This signifies at any point in time only 3 items can be analyzed.  This is a most effective way to communicate the stages of development and the progress.

This gives us a great advantage in knowing where the bottleneck is. In this case the tester can test maximum 3 features simultaneously. So the bottleneck is the testing, in this stage the development team is also done with 5 features and they can find ways to help testers to finish testing before taking up new tasks.

While SCRUM focuses on velocity Kanban concentrates on cycle time. The longer the issue in the cycle higher the priority is. This helps the team to focus on tasks that are completed first to get it to production before taking up the next tasks.

Pending items are owned by the product owners and rest of them are owned by the team, this gives the flexibility for the business owners to change the requirement before it gets into the pipeline.

The key advantages of Kanban are:-

  • Focus on quality rather than speed
  • It is flexible and it is evolving. WIP can be altered in between based on the past data, reduced process overheads
  • It is efficient. Kanban achieves efficiency by having WIP; this limits the number of items at any stage and prevents us from multi-tasking. The more multi-tasking we do less efficient we are because of lack of focus and context switching
  • Metrics are easily derived like cycle time, bottlenecks etc.

Scrum vs Kanban

ScrumKanban
Regular fixed length sprintsContinuous flow
Delivery at end of sprintsAt the discretion of product owner
Metrics is velocityMetrics is cycle time

Tools for Kanban:

  • GreenHopper
  • JIRA Agile