What is Kanban?
When you visit the East Gardens of the Imperial Palace in Tokyo Japan, you’ll either get a card and can enter the park or get told that the park is full. There is a certain amount of cards available on the entrance and each person that enters the park get exactly one. If all cards are handed out, you have to wait until someone leaves the park and returns their card. That card is called a Kanban. Kanban is a japanese word that translates to sign or singboard.
Kanban is not only a signal card or token in japanese parks. According to Wikipedia it is also „a scheduling system for lean manufacturing and just-in-time manufacturing (JIT)“ developed at Toyota by Taiichi Ohno. Here also the principle of signal cards is used to avoid excessive stocking of inventory and order just enough to keep the product flowing.
Though developed in a mass-production environment, Kanban made it’s way into software development. The basic idea to protect a system (as with the East Gardens in Tokyo) from overload is still the backbone of Kanaban in software development.
The principles of Kanban in software development
- Start with what you do now
- Agree to pursue incremental, evolutionary change
- Respect the current process, roles, responsibilities & titles
- Encourage acts of leadership at all levels
Kanban per se doesn’t have a rule set or specific procedure to ramp up. You should start where you are and evolve from there. In practise this means you can apply Kanban to whatever approach, method or workflow you have at the moment. With that Kanban is quite a smooth change management method. It doesn’t come in disruptive and implementation couldn’t be easier. With that approach resistens is very low to none, but incremental and evolutionary change are build in with Kanban. These are usually very small changes that still seem smooth and doen’t cause much resistance. And one more principle to keep resitance out, roles, responsibilities and titles are kept as the are.
Kanban tries to keep resitance to change as low as possible and it encourages leadership at all levels. Everyone is asked to take leadership whenever it is necessary. Leadership is not linked to roles, responsibilities or titles. Leadership should be taken where and when it is needed, not when a person with a specific role or title is ready to do so. the thought of continuous imrovement (the japanese word for that is Kaizen) requires everyones active participation.
To support the four principles, six core parctises are belonging to Kanban:
- Visualize the workflow
- Limit WIP
- Manage flow
- Make Process Policies Explicit
- Feedback
- Improve Collaboratively
If you want to improve it helps that you work as transparent as possible. Therefore visualize the workflow so that you fully understand what activities are in place in order to get work done. Typically you’ll find „Backlog“, „In Development“, „QA“, „Deployment“ and „Done“ on a Kanban board for software development. On a Kanban board activities are represented in columns. As I often see some confusion: „On Hold“, „Blocked“ or similar are not activities but states and should not be reflected as a column on a Kanban board. A certain status should be made visual by adding a dot or a not to the card representing the actual work.
Work in progress (WIP) must be limited eihter across a Kanban board or better per activity. That’s the equivalent of the card handed out in the East Gardens in Tokyo. Once WIP limit is reached, no additonal work is allowed until work in progress is finished. With work in progress limits you’ll quickly see bottle neck in your activities. As mentioned, wok in progress limit is the backbone of Kanban.
With all work that passes through your system, you try to find small improvements and implement them.When your first impprovement is implemented, the next issue becomes visible. You continue improving and with that establish and manage a smooth flow of work through your system and deliver value.
Existing decisions or improvement must be made explizit and known to everyone. This is the basis for further improvents, which will be hard to find and to make if there is confusion about the existing process.
Feedback is essential in order to improve. This might refer to your team sing Kanban but also to others external to your team. Feedback loops are everywhere and the information coming out of them. As there are no rules or procedures in Kanban, feedback can be gathered anywhere all the time. Also adhoc retrospectives on certin events are possible.
For improvements Kanban suggests to use a scientific approach to implement changes continuously. Avalable models amongst others are The Theory of Constraints, The System of Profound Knowledge, Lean Economic Model.
Sources & Reads:
Leave a Reply