Kanban, or かんばん in Japanese literally means “signboard”.

The term comes from the manufacturing world. Implemented first in 1953, it was the precursor to the JIT (just-in-time) manufacturing process used throughout the world today.

In software development, Kanban has slowly been replacing Scrum as the Agile methodology of choice since about 2010.

The core of Kanban for software development is the Kanban board. This is simply a tool that makes the project status visible to all project members and stakeholders.

The simplest Kanban board has three columns:

The To Do column is a queue. Doing is a WIP (work in progress) column. And Done is a final state.

Here is a much more complicated example with 8 columns and many sub-columns:

On both charts, the principles are the same:
  1. Work moves from left to right
  2. Columns can represent queues of work to do, or work that is in progress
  3. There can be limits on the number of cards in each column
Work is treated like inventory, and is it the entire team’s job to keep it moving smoothly through the process.

Stalled or “on hold” work is the equivalent of inventory sitting in a warehouse. It’s considered wasteful, and should be minimized at all costs.

If a large amount of work is held up in any given state, it is visible to everyone, and they can pitch in to help get things moving again.

Having the entire queue visible also makes it easy to:
  1. See whether it is realistic to expect something to be done by a given deadline.
  2. Adjust the queue in real-time to make sure the most important work gets done first.
A team using Kanban should subscribe to the notion of continuous improvement, tweaking their process incrementally to suit the team and the organization.

And finally – Remember, in being an Agile process, Kanban values:
  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Responding to change over following a plan