In Software Engineering, Kanban is an Agile framework used to manage work by visualizing it on a board. Unlike Scrum, which organizes work into time-boxed "Sprints," Kanban is a continuous flow system. It is designed to help teams identify bottlenecks and improve efficiency by limiting the amount of work in progress.
1. The Core Principles
Kanban is based on four foundational principles:
Visualize the Workflow: Use a board with columns to represent the stages of work (e.g., To Do, In Progress, Testing, Done).
Limit Work in Progress (WIP): Set a maximum number of tasks that can be in any single column at one time.
Manage Flow: Monitor how work moves through the system to ensure it is smooth and predictable.
Continuous Improvement (Kaizen): Constantly look for ways to make the process faster and higher quality.
2. The Kanban Board
The most recognizable part of the framework is the Kanban Board. Every "card" on the board represents a task or user story.
Commitment Point: The moment a task is moved from the "Backlog" to the "To Do" column.
Delivery Point: The moment a task enters the "Done" column and is ready for the customer.
Lead Time: The total time from the Commitment Point to the Delivery Point.
3. WIP Limits (Work In Progress)
This is the "secret sauce" of Kanban. By putting a number at the top of a column (e.g., "In Progress: Max 3"), you prevent the team from starting new tasks until current ones are finished.
Why use WIP limits? It forces the team to collaborate and finish "stuck" tasks rather than just starting new ones.
The Goal: Move from "starting" work to "finishing" work.
📊 Kanban vs. Scrum: Which to choose?
Feature | Scrum | Kanban |
|---|---|---|
Cadence | Regular intervals (Sprints). | Continuous flow. |
Release Methodology | At the end of every Sprint. | Continuous delivery (whenever a task is done). |
Roles | Specific roles (Scrum Master, etc.). | No predefined roles. |
Changes | Discouraged during a Sprint. | Can be made at any time. |
Primary Metric | Velocity (Points per Sprint). | Cycle Time / Lead Time. |
4. When to use Kanban?
Kanban is excellent for environments where priorities change frequently or where work is unpredictable. It is the gold standard for:
Support and Maintenance Teams: Dealing with incoming bugs that vary in urgency.
DevOps/Operations: Managing server deployments and infrastructure tasks.
High-Maturity Teams: Who don't need the "guardrails" of a 2-week Sprint.
💡 The Cumulative Flow Diagram (CFD)
Kanban teams use a CFD to track their health. If the bands in the diagram are getting wider, it means work is piling up (bottleneck). If the bands are consistent, the flow is healthy and predictable.