A short introduction to Kanban

A short introduction to Kanban

Nowadays kanban is considered to be an agile software development methodology. In fact, it is also a synonym for a token that is running through a kanban system.

Kanban has its roots in physical manufacturing at Toyota. That was in the 1940s. At that time the basic idea was to only have in stock what is really needed. In other words a process consumes the products of a child-process which in turn leads the child-process to re-stock. In that sense, kanban balances the amount of stock and its consumption.

Why does that make sense? You could say that it's just to build up enough stock to have a buffer of products and reduce the dependencies in the system. However, sometimes the demand is hard to forecast and building up stock is expensive. You constantly have to adapt to the current demand. Hence, kanban tries to create a system that responds fast enough to the current demand to optimize flow from the start to the end of the system. Finally, the goal of kanban is not to increase the output but to optimize the flow according to the demand.

Kanban in software development

Kanban can be used in software development as well. In fact, my colleagues and me at Babbel have switched from scrum to kanban during the upgrade of the web framework Ruby on Rails for one of our applications. The main reason for this move was that an upgrade of a framework that has a very high level of interweaving in the application is not plannable.

Just like scrum kanban encourages continuous improvement by making small, incremental changes to the process. However, it does not prescribe specific roles and events. Therefore, it is simpler, less drastic and respects the current setup in your organization.

The kanban board

A requirement for making changes is to know what doesn't work and what to change. A common approach to make the process visible for the outside - and the team - is to set up a kanban board. Have a look at the article image to see a simple example.

The kanban board visualizes the process and the work in progress (WIP). A task is moved from left to right and, defined by the column it is in, shows everybody its state. As a result, it lets you limit WIP to increase focus and the effort to finish the tasks that the team is currently working on instead of pulling new tasks.

To summarize, compared to scrum, kanban gives you a simpler start to use agile methodologies. You are not forced to setup new roles and events. You start with what you have right now and adapt as needed. And certainly, kanban is an option for agile methodologies in your family as well!.

Additional resources

  • Kanban for Skeptics: a great explanation of usual arguments against using kanban and how to circumvent them.
  • Aspects of Kanban: a bit more theoretical, K. Scotland writes about workflow, visualisation, work in process, cadence and continuous improvement in the kanban system. I particularly like the quote he gives at the end of his article from “The Toyota Way”: “kanban is something you strive to get rid of, not to be proud of”.

Post image taken by me, published under CC BY-SA 4.0.