Project Management: Kanban
Key learnings about the Kanban methodology of agile project management
Kanban is another popular method for practicing agile software development. Its main differentiator from other methodologies is the focus on JIT principles and matching WIP to the team’s capacity.
Kanban History
Taken from the Salesforce Trailhead module “Meet Kanban”
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 time. Meanwhile, the supermarket can still ensure that the given product a consumer needs is always in stock.
When Toyota applied this same system to its factory floors, its goal was to align its massive inventory levels with the actual consumption of materials. To communicate capacity levels in real-time on the factory floor (and to suppliers), workers passed a card, or “Kanban,” between teams. On the production line, when a materials bin was emptied, workers passed a Kanban to the warehouse with the type and quantity of replacement material needed. The warehouse had a bin of the material waiting to send to the factory floor. The warehouse then sent their own Kanban to the supplier for restocking. The supplier also had a bin of the particular material waiting, and shipped it 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.
Key Traits of Kanban
- Visualize Workflow -> Kanban Boards / Cards
- View the work on cards that move into different stages
- Kanban in Japanese = visible sign
- Limit WIP
- Ask question, “What do we want our WIP limit to be?”
- Incremental and Evolutionary Change
- Unlike scrum-project-management where the Product Backlog protects the team from last-minute requests, and that product backlog isn’t even looked at during active sprints, you can view and prioritize backlogs (and take new work from them) as soon as a member finishes a work item.
- As soon as a team member finishes their work item, they’ll immediately pick up whatever is the next highest priority
- Specific Metrics
- Lead Time: How long does it take a work item to completely pass through all of the stages?
- Throughput
Kanban limits capacity based on preventing multitasking with WIP limits.
Kanban Advantages
- Planning Flexibility
- Unlike Scrum which protects any scope for a given Sprint once the Sprint starts, the Product Owner is free to prioritize the backlog at any time, ensuring that the most important things are going to be the next plucked into the WIP swimlane
- Shortened Cycle Times
- Refers to the amount of time a single item of work takes to move through the workflow (from when it starts to when it ships)
- Shared skillsets help to reduce cycle time
- Fewer Bottlenecks
- The more work items in flight at a given time, the more time wasted in context switching
- Reductions in WIP limits help focus team members and reduce multi-tasking
- Visual Metrics
- Control Chart: Shows cycle time for each issue and rolling average for the team
- Cumulative Flow Chart: Shows number of issues in each state
- Promotes Continuous Delivery
- Instead of waiting for an end to the Sprint, Kanban promotes JIT delivery (or delivery whenever the work item is finished)