The Kanban method, developed by David J. Anderson, is an approach to developing technology or service organizations. The idea of the method is to gradually improve the existing way of working. The change process is evolutionary and incremental: Present ways of working, roles and responsibilities are respected.
In the Kanban method, work flow is visualized and the amount of work limited. These aspects highlight bottlenecks and potential for improvement in the process or ways of working. Work moves in the process according to the pull mechanism: New work is not started until all work in the current process phase is finished. Pull mechanism helps maintain balance between demand and available capacity. In addition, Kanban helps observe and measure the amount of work and work queues in the different phases of the process. This is essential, because the effect of the amount of work in progress on the lead time and quality of the work is relatively little understood in knowledge work process improvement.
The workflow is visualized with a Kanban board
The purpose of visualizing and the pull mechanism is to reveal points of improvement or problems in the present way of working. Kanban helps notice if, for example, work is not progressing, what stops it from progressing, what is being worked on at the moment, or how much work is on hold.
The principles of Kanban include:
- Making the workflow and its steps visible.
- Limiting the amount of work (pull mechanism).
- Managing the flow of work.
- Making process policies explicit.
- Developing ways of working using different models together with stakeholders.
In the Kanban method, a kanban system is often designed on a big whiteboard that is used for modeling the present workflow. Work items in the different phases of the workflow are described by different color cards. A more detailed description of the tasks is written on each card. If the employees do not work in a collocated workspace, various software tools can be used to complement a local whiteboard and otherwise support the Kanban method for distributed teams.
Different tasks can be described according to the following properties, for example:
- Type of task: new functionality, change request, bug
- Size of task: S, M, L, XL
- Class of service: urgent, fixed date, normal, not urgent
- Person assigned to the task
- Special skills required for the task
The picture below shows one example of a Kanban board:
It is important that a Kanban system is designed for the specific context by studying the amount, variation and nature of the work load directed to the system. This information is used to design a system where available capacity is allocated according to the work load.
When observing the work load of a software development team, for example, we might notice that approximately 50% of all requests are new features, 30% are change requests and 20% are fault reports. With this information, a Kanban system that allocates the capacity of the system in proportion with the different types of tasks can then be designed for the team.
Better risk management with classes of service
The concept of classes of service is a robust approach to managing business risks and implementing different sets of tasks. Classes of service offer various methods for prioritizing work and managing risk. The picture below shows the difference to a traditional project model on a high level:
The classes of service concept can be used to decrease the technical debt of an information system or to coordinate work in situations where different stakeholders have interdependencies. These include, for instance, multi-vendor environments or product development with parallel software and hardware development.
Models and metrics help in process development and planning
A Kanban system is continuously developed based on new knowledge, feedback and the metrics and models in use. Common metrics in Kanban are various quality metrics, metrics that describe how the work in progress is limited, lead time metrics, efficiency metrics and measuring the things and causes that obstruct the smooth flow of work in the system. Commonly used models include Eliyahu M. Goldratt’s Theory of Constraints, William E. Deming’s Theory of Variation, and systems thinking.
Long term planning in the Kanban method is based on information on the system’s capability in relation to the type of work or its class of service. The system’s capability in a project environment, for example, is often modeled as a burn-up chart, which can be compared with the s-curve phenomenon commonly known in software projects. If the Kanban method is used outside the development team, in the entire value chain or service environment for example, the focus is often more on the lead times or queue times of the work that goes through the system.
Kanban is suitable for various situations and environments
It is important to understand that in practice the Kanban method is a set of principles that are applied to the existing process or way of working. These principles can be adopted in various types of situations, including processes based on the waterfall model, or when using agile methods. Scrumban is one example of an agile method that uses Kanban system's principles. In addition, it is worth remembering that the Kanban system is always designed case by case for different environments by observing the amount, variation and type of demand. This is why the Kanban method can be used for different purposes in project and service environments.