Kanban
The process of kanban, associated with the Toyota production system, incorporates the Japanese philosophy of Muda. Muda is the avoidance or elimination of waste and removing useless activities that do not provide value to the customer. The kanban process was developed by Taiichi Ohno to provide the Toyota production system with a practical approach to specific production and market conditions and to maintain a smooth production flow to promote continuous improvement. Kanban is a Japanese expression meaning signboard and was designed as a flow control system in manufacturing in which downstream process demand signals trigger upstream process activities. Although developed for the manufacturing sector to reduce waste in product production, the Kanban philosophy has been applied to software development activities.
Kanban is an Agile project management methodology that is used to manage work in progress effectively. The word "Kanban" is of Japanese origin and translates as "visual sign" or "card." It originated in Toyota's manufacturing systems and was later adapted for software development and other knowledge work.
Here's an overview of the key principles and practices in the Kanban method:
Visualize the Workflow: The main tool in Kanban is the Kanban board, a visual representation of the workflow. This board is divided into different stages of the process, such as "To Do," "In Progress," "Review," and "Done." Tasks are represented as cards that move from one column (or stage) to another as work progresses.
Limit Work in Progress (WIP): To prevent overloading the team and to identify bottlenecks in the process, Kanban encourages limiting the number of tasks that are in progress at any given time. This limit can be adjusted as the team's capacity changes.
Manage Flow: The goal in Kanban is to improve the "flow" of work — that is, the speed and efficiency with which tasks are completed. Metrics such as lead time (the time from the start of work on a task to its completion) and cycle time (the time from when work actually begins on a task to when it's finished) can be used to measure and manage flow.
Make Policies Explicit: The rules and policies for how work should flow, how decisions should be made, and how different types of work should be handled are made explicit and visualized. This way, everyone understands the process, and it is easier to discuss and improve it.
Implement Feedback Loops: Regular meetings and other forms of feedback are used to continuously improve the process. These can include daily standup meetings, retrospectives, and other types of review and feedback sessions.
Improve Collaboratively, Evolve Experimentally (Kaizen): Continuous, incremental improvement is a key principle in Kanban. This improvement is driven by experimentation, feedback, and learning.
One of the advantages of Kanban is its flexibility. Unlike Scrum, for example, it doesn't prescribe specific roles or iteration lengths. Work items can be added to the backlog at any time, and there's no need to plan work for a whole sprint in advance. This makes Kanban particularly suitable for environments where priorities can change quickly.