Kanban involves setting up visual bins – usually in a low-tech way, like on a whiteboard or even a wall with sticky notes. Those bins will typically include basic work categories like work to be done, work in progress, and work completed. Of course, there can be additional bins representing different aspects of work in progress. The key idea with Kanban is that it is a “pull” system, where once an item exits a bin, there is room for a new item to be pulled from the preceding bin. This allows for maximum worker efficiency, and provides a framework for doing basic process management.
Five (5) Principles of Kanban
There are five (5) core principles that guide the operation of Kanban software development:
- Visualize the workflow – By nature software development is knowledge intensive. Kanban boards enable teams to organize the work for tracking and optimizing of workflow visually.
- Limit Work In Progress (WIP) – While there needs to be work in progress in any given bin, productivity – or velocity, in more agile terms - actually declines when there is too much WIP.
- Manage Flow – The visual aspect of Kanban helps facilitate the management of the flow of work. Everyone on the team can see the overall flow, and process adjustments can be made to improve the flow. Feedback on adjustments can be rapid.
- Make process policies explicit – The idea here is to keep the emotions out by articulating clearly how things work, allowing for meaningful discussion and fruitful actions going forward.
- Improve collaboratively – The process is owned by the team, and they can and must work together to improve it. Kanban is a very empowering method.
Kanban is simple at its core, but that is the beauty of it. It allows a team to see its workflow clearly and to manage it using simple, low-tech methods that can be very effective. It can be used as part of any agile project, and not necessarily just on its own.
This post is part of the series: A Look at Agile Methods
A series on the most popular agile project management methods, including Scrum, Extreme Programming (XP), Lean Product Development and Kanban.