Kanban
What is Kanban?
History and Evolution
The origins of Kanban trace back to the Toyota Production System (TPS) in the 1940s, developed by Taiichi Ohno. Toyota sought to achieve higher efficiency and reduce waste by implementing a "just-in-time" (JIT) manufacturing system. This system used physical cards (kanban) to signal the need for new materials or components on the production line, ensuring that parts were only produced or delivered when needed, thereby minimizing inventory and waste. This pull system was revolutionary in manufacturing. In the early 2000s, the principles of Kanban were adapted for knowledge work, particularly software development, by David J. Anderson and others. Recognizing the similarities between manufacturing bottlenecks and software development queues, Anderson formalized the "Kanban Method" as a way to apply Lean principles to IT and knowledge work. This adaptation focused on visualizing the flow of tasks, limiting the number of tasks in progress, and continuously improving the process based on empirical data. The Kanban Method quickly gained traction as a flexible and powerful approach to managing complex work, often complementing or integrating with existing Agile frameworks.Purpose and Importance
The primary purpose of Kanban is to improve the efficiency and predictability of work delivery. It achieves this by:- Visualizing Work: Making all work items and their current status transparent, allowing everyone to understand the workflow and identify bottlenecks.
- Limiting Work in Progress (WIP): Preventing teams from taking on too much work simultaneously, which reduces multitasking, improves focus, and shortens lead times.
- Managing Flow: Optimizing the movement of work through the system, ensuring a smooth and continuous delivery of value.
- Making Policies Explicit: Clearly defining the rules and criteria for moving work from one stage to the next, promoting consistency and shared understanding.
- Implementing Feedback Loops: Providing mechanisms for continuous inspection and adaptation of the process.
- Improving Collaboratively, Evolving Experimentally: Encouraging teams to continuously seek improvements through data-driven decisions and shared understanding.
Relationship to Other Knowledge Topics
Kanban is deeply rooted in Lean Software Development principles, sharing its focus on eliminating waste, optimizing flow, and delivering value quickly. It is often used in conjunction with other Agile frameworks like Scrum, where teams might use a Kanban board to visualize their Sprint Backlog and manage flow within a Sprint. While distinct, both Kanban and Scrum are expressions of Agile values. Kanban also influences practices in Continuous Delivery and DevOps by emphasizing flow and reducing lead times. Its focus on metrics like lead time and cycle time ties into Agile Metrics & Reporting.How It Works
Core Practices of the Kanban Method
David J. Anderson's Kanban Method outlines six core practices:- Visualize the Flow of Work: The most fundamental practice is to make all work items and their workflow stages visible. This is typically done using a Kanban board, which is divided into columns representing different stages of the workflow (e.g., "To Do," "In Progress," "Testing," "Done"). Each work item (e.g., user story, task, bug) is represented by a card that moves across the board as it progresses. This visualization helps everyone understand the current state of work, identify bottlenecks, and see where value is being created or delayed.
- Limit Work in Progress (WIP): This practice is crucial for improving flow and reducing lead times. WIP limits restrict the number of items that can be in progress at any given stage (column) or for the entire system at one time. When a column reaches its WIP limit, no new work can be pulled into it until an existing item moves to the next stage. This forces the team to focus on completing existing work before starting new work, reducing multitasking, improving quality, and making bottlenecks immediately apparent.
- Manage Flow: Once work is visualized and WIP is limited, the focus shifts to actively managing the flow of work through the system. This involves monitoring metrics like lead time and cycle time, identifying blockages, and continuously seeking ways to smooth the movement of work. The goal is to achieve a steady, predictable flow of value delivery, rather than maximizing individual resource utilization.
- Make Process Policies Explicit: For effective flow management, the rules governing how work moves through the system must be clear and understood by everyone. These "explicit policies" define what "done" means for each stage, how work is prioritized, how blockages are handled, and who is responsible for what. Explicit policies reduce ambiguity, ensure consistency, and provide a basis for discussion and improvement.
-
Implement Feedback Loops:
Kanban emphasizes continuous learning and adaptation through various feedback loops, often referred to as "cadences." These can include:
- Stand-up Meetings: Daily brief meetings to synchronize and identify blockers.
- Replenishment Meetings: To decide which items to pull into the workflow next.
- Delivery Planning Meetings: To plan releases and deliveries.
- Service Delivery Review: To review performance with customers.
- Operations Review: To review the overall Kanban system performance.
- Strategy Review: To review the overall strategy and fitness for purpose.
- Kanban Meeting (or Service Delivery Review): To review the performance of the Kanban system itself and identify areas for improvement.
- Improve Collaboratively, Evolve Experimentally: Kanban encourages a culture of continuous improvement based on the scientific method. Teams are encouraged to identify problems, propose changes, experiment with solutions, and measure the impact. This evolutionary approach means that changes are typically small, incremental, and data-driven, minimizing risk and disruption. It fosters a shared understanding and collective ownership of the process.
By applying these practices, teams can transform their existing workflows into a more efficient, predictable, and adaptable system for delivering value.
Key Concepts
Kanban Board
Work In Progress (WIP) Limits
Pull System
Flow
Explicit Policies
Feedback Loops (Cadences)
Lead Time & Cycle Time
Classes of Service
Practical Considerations
Benefits
- Improved Flow and Reduced Lead Time: By visualizing work and limiting WIP, Kanban helps identify and eliminate bottlenecks, leading to faster delivery of value.
- Increased Predictability: Consistent flow and data-driven insights (like cycle time) enable more accurate forecasting of delivery dates.
- Enhanced Transparency: The Kanban board provides a clear, real-time view of all work, fostering shared understanding and better communication.
- Reduced Waste: Limiting WIP and focusing on completion minimizes idle work, context switching, and unnecessary inventory.
- Greater Adaptability: Kanban's evolutionary approach allows teams to start with their current process and make incremental changes, making it highly adaptable to changing requirements and environments.
- Focus on Continuous Improvement: Built-in feedback loops and the emphasis on experimental evolution drive a culture of constant learning and process optimization.
- Reduced Team Overload: WIP limits prevent teams from being overburdened, leading to more sustainable pace and improved morale.
Limitations
- Less Prescriptive: Unlike Scrum, Kanban does not define specific roles, events, or artifacts, which can be challenging for teams new to Agile who might prefer more structure.
- Requires Discipline: Effective Kanban relies heavily on the team's discipline to adhere to WIP limits and explicit policies. Without this, it can devolve into a simple task board.
- Initial Resistance: Introducing WIP limits can sometimes be met with resistance, as it may initially feel counter-intuitive to stop starting new work.
- Focus on Flow, Not Necessarily Iteration: While it supports continuous delivery, Kanban doesn't inherently enforce time-boxed iterations like Scrum, which some teams find useful for planning and rhythm.
Common Mistakes
- No WIP Limits: The most common mistake. Without WIP limits, a Kanban board is just a visualization tool, not a system for managing flow.
- Treating it as a Static Task Board: Failing to actively manage flow, analyze metrics, or continuously improve the system.
- Ignoring Explicit Policies: Lack of clear "definition of done" for each column or rules for moving work leads to inconsistency and confusion.
- Not Using Metrics: Failing to track lead time, cycle time, and throughput means missing opportunities for data-driven improvement.
- Over-optimizing Individual Stages: Focusing on making one stage extremely fast without considering the impact on the overall system flow.
- Lack of Feedback Loops: Not holding regular meetings or reviews to inspect the system and adapt.
Real-world Examples
In software development, a team might use Kanban to manage their backlog of features and bugs. A typical board could have columns like "Backlog," "Ready for Dev," "In Development" (WIP limit 3), "Code Review" (WIP limit 2), "Testing" (WIP limit 2), and "Done." When a developer finishes a task, they pull the next item from "Ready for Dev" only if "In Development" is below its limit. This ensures focus and prevents a large queue of untested code.
Beyond software, an IT operations team might use Kanban to manage incident resolution, with columns for "New Incident," "Investigation," "Resolution in Progress," "Awaiting User Feedback," and "Closed." A marketing team could manage campaign creation, moving items through "Idea," "Content Creation," "Design," "Review," and "Published."
Best Practices
- Start with What You Do Now: Don't try to redesign your entire process upfront. Visualize your current workflow and then incrementally improve it.
- Agree to Pursue Incremental, Evolutionary Change: Kanban is about continuous, small improvements rather than big-bang transformations.
- Respect Current Roles, Responsibilities, and Titles: Kanban doesn't mandate new roles, allowing teams to evolve their structure naturally.
- Encourage Acts of Leadership at All Levels: Foster a culture where everyone is empowered to identify problems and suggest improvements.
- Visualize Blockers: Make it explicit when a work item is blocked and why, so the team can swarm to resolve it.
- Regularly Review Metrics: Use data (lead time, cycle time, throughput) to understand system performance and guide improvement efforts.
- Conduct Regular Cadences: Utilize feedback loops like replenishment meetings and service delivery reviews to keep the system healthy and evolving.
Frequently Asked Questions
Q: Is Kanban an Agile framework?
A: Kanban is an Agile method or approach, deeply rooted in Lean principles. While it embodies Agile values, it's less prescriptive than frameworks like Scrum, focusing on evolutionary change rather than a defined set of roles, events, and artifacts.
Q: What is the main difference between Scrum and Kanban?
A: Scrum is a time-boxed, iterative framework with prescribed roles, events, and artifacts, focused on delivering increments. Kanban is a flow-based method for continuous delivery, emphasizing visualizing work, limiting WIP, and continuous improvement, without fixed iterations or roles.
Q: Can Kanban be used for large projects or organizations?
A: Yes, Kanban is highly scalable. Its principles can be applied at team, program, and portfolio levels. Techniques like "Flight Levels" help coordinate multiple Kanban systems across an organization to achieve strategic goals.
Q: What are WIP limits and why are they important?
A: WIP (Work In Progress) limits restrict the number of items being worked on simultaneously. They are crucial because they force completion over starting new work, reduce multitasking, expose bottlenecks, and improve the overall flow and predictability of the system.
Q: Does Kanban have roles like Scrum Master or Product Owner?
A: The Kanban Method does not prescribe specific roles. It encourages "acts of leadership at all levels." However, teams often adapt existing roles or introduce functions like a "Service Delivery Manager" or "Flow Manager" to oversee the Kanban system and facilitate improvements.
Q: How do you start implementing Kanban?
A: The best way to start is to "start with what you do now." Visualize your current workflow on a Kanban board, agree on explicit policies, and then introduce WIP limits incrementally. Focus on small, evolutionary changes and continuous improvement.
Explore Related Topics
References & Further Reading
- Ohno, Taiichi. Toyota Production System: Beyond Large-Scale Production. Productivity Press, 1988.
- Anderson, David J. Kanban: Successful Evolutionary Change for Your Technology Business. Blue Hole Press, 2010.
- Anderson, David J., and Andy Carmichael. Essential Kanban Condensed. Lean Kanban University Press, 2016.
- Lean Enterprise Institute. Official website for Lean principles and practices. lean.org
- Agile Manifesto. Principles behind the Agile Manifesto. agilemanifesto.org/principles.html