Kanban Agile is one of the most popular software development methods adopted by agile teams today. But did you know the Kanban method of work dates back more than 65 years? That the idea for Kanban was originally inspired from a Supermarket? Or that its application started from the production systems? Only recently many thought-leaders in various industries have found its applicability beyond the manufacturing industry as well, including Software delivery. This article provides a comprehensive overview of the Kanban Agile method.
Trivia: Kanban is a Japanese term for “signboard” or “Billboard”!
The Kanban history
In the late 1940s Toyota began optimizing its engineering processes based on the same model that supermarkets were using to stock their shelves. Supermarkets stock just enough product to meet consumer demand, a practice that optimizes the flow between the supermarket and the consumer. Because inventory levels match consumption patterns, the supermarket gains significant efficiency in inventory management by decreasing the amount of excess stock it must hold at any given team. Meanwhile, the supermarket can still ensure that the given product a consumer needs is always in stock. Toyota applied this same system to its factory floors. To communicate capacity levels in real-time on the factory floor (and to suppliers), workers would pass a card, or “Kanban“, between teams.
- When a bin of materials being used on the production line was emptied, a Kanban was passed to the warehouse describing required material, the amount, and so on.
- The warehouse would have a new bin of this material waiting, which they would then send to the factory floor, and in turn send their own kanban to the supplier
- The supplier would also have a bin of this particular material waiting, which it would ship to the warehouse.
While the signaling technology of this process has evolved since the 1940s, this same “just in time” (or JIT) manufacturing process is still at the heart of it. In simplified terms, Kanban is a visual system for managing work moving through a process – the “value stream”. It is a system for visualizing work, reducing waste by limiting work in-progress, and maximizing customer value.
Project management with Kanban Agile
What is Kanban Agile?
For one, Kanban is NOT an Agile tool, framework or methodology – Kanban Agile is a popular workflow method for managing knowledge work which balances demands for work with the available capacity for new work. Work items are visualized to give team members a view of progress, from to-do to customer delivery. Agile software development teams today are able to leverage Kanban by matching the amount of work in progress (WIP) to the team’s capacity. Team members “pull” work as capacity permits, rather than work being “pushed” into the process. This gives teams more flexible planning options, faster output, clearer focus, and transparency throughout the development cycle.
How does Kanban-system work?
A software development process can be thought of as a pipeline with feature requests entering one end and improved software emerging from the other end. Agile teams use visualization with a Kanban board, allowing a better understanding of work and workflow. It advises limiting work in progress, which reduces waste from multitasking and context switching, exposes operational problems and stimulates collaboration to improve the system. Kanban has six general practices,
- Visualization: Seeing the work in context
- Limiting work in progress: Don’t push the work. For every column (state) on your Kanban board you should define a “Work In Progress” – Limit (WIP Limit). If a state reaches its pre-defined WIP limit, no new work can enter that state. Limiting the amount of work-in-progress (WIP), at each step in the process, prevents over-work and reveals bottlenecks dynamically so that you can address them before they get out of hand.
- Flow management: when something is finished, the next highest thing from the backlog is pulled
- Making Management policies explicit: keeping and amplifying useful changes, reversing and dampening the ineffective
- Feedback loops: learning from the retrospective
- Collaborative or experimental evolution: promote continuous collaboration and encourage active, ongoing learning and improvement
The work of all Kanban Agile teams revolves around a Kanban board, a tool used to visualize work and optimize the flow of the work among the team. The aim is to make the general workflow and the progress of individual items clear to participants and stakeholders.
- A basic Kanban board has a three-step workflow: To Do, In Progress, and Done. However, depending on a team’s size, structure, and objectives, the workflow can be mapped to meet the unique process of any particular team.
- Every work item is represented (description, responsible person, time estimate, etc.) as a separate card on the board. It doesn’t matter if the work item is a task or a user story as long as it’s consistent. The main purpose of representing work as a card on the Kanban board is to allow team members to track the progress of work through its workflow in a highly visual manner.
- The numbers at the top of each column are limits on the number of cards allowed in each In other words, i.e. limiting the work in progress. Limiting the WIP, at each step in the process, prevents over-work and reveals bottlenecks dynamically so that you can address them before they get out of hand.
- The work items (cards) progress through the workflow from one column to other until it is completed. Once completed, new work items are pulled from the Product backlog.
Allowing team members to see the state of every work item at any given point in time ensures increased focus, full trace-ability, and fast identification of blockers and dependencies. While physical boards are popular among some teams, virtual boards are a crucial feature in any agile software development tool for their trace-ability, easier collaboration, and accessibility from multiple locations.
The benefits of Kanban Agile
- Flexibility: A Kanban team is only focused on the work that’s actively in progress. Once the team completes a work item, they pick the next work item off the top of the backlog.
- Customer-centric: The product owner is free to re-prioritize work in the backlog without disrupting the team. As long as the product owner keeps the most important work items on top of the backlog, the development team is assured they are delivering maximum value back to the business.
- Shortened cycle times: Cycle time is a key metric for Kanban teams. Cycle time is the amount of time it takes for a unit of work to travel through the team’s workflow. Teams can optimize the cycle time by eliminating any bottlenecks like limited skills or shared resources. In a Kanban framework, it’s the entire team’s responsibility to ensure work is moving smoothly through the process.
- Fewer bottlenecks: Focusing on the work-in-progress items leads to efficient work and also highlighting & eliminating any bottlenecks quickly. When the team can see data, it’s easier to spot bottlenecks in the process (and remove them).
- Visual metrics: One of the core values is a strong focus on continually improving team efficiency and effectiveness with every iteration of work. Two common reports kanban teams use are control charts and cumulative flow diagrams. Charts provide a visual mechanism for teams to ensure they’re continuing to improve.
- Continuous delivery: Continuous Delivery is the practice of releasing work to customers frequently. Kanban and Continuous Delivery complement each other because both techniques focus on the just-in-time (and one-at-a-time) delivery of value. And kanban teams focus on exactly that: optimizing the flow of work.
Kanban Agile is a way for teams and organizations to visualize their work, identify and eliminate bottlenecks and achieve dramatic operational improvements in terms of throughput and quality. It’s a method to gradually improve whatever you do – whether software development, IT/ Ops, Staffing, Recruitment, Marketing and Sales, Procurement – in fact, almost any business function can benefit from applying Kanban!
Scrumban: Some teams blend the ideas of Kanban and Scrum into “Scrumban“. They take fixed length sprints and roles from scrum and the focus on work in progress limits and cycle time from Kanban Agile. We will discuss on it in our future articles!