Skip to content

Kanban

Kanban is a popular framework that focuses on consistent flow of work. Teams are able to leverage just-in-time principles by matching the amount of work in progress (WIP) to the team's capacity. This gives teams more flexible planning options, faster output, clearer focus, and transparency throughout the development cycle. It requires real-time communication of capacity and full transparency of work. Work items are represented visually on a kanban board, allowing team members to see the state of every piece of work at any time. (source)

Rather than a prescriptive set of a team's cadence, kanban promotes constant flow and manages work by considering work-in-progress limits. Important measures on a team are throughput, lead time, and cycle time.

  • Emphasis on visualizing work with a kanban board
  • Primary determinate for work is work-in-progress
  • Implements pull system to reduce waste
  • Can be used for continuous deployment

Work-in-progress (WIP)

In agile development, work in progress (WIP) limits set the maximum amount of work that can exist in each status of a workflow. Limiting the amount of work in progress makes it easier to identify inefficiency in a team's workflow. Bottlenecks in a team's delivery pipeline are clearly visible before a situation becomes dire.

"Too much WIP limits our ability to proactively put oneself in a position to prepare. Preparedness brings confidence to shape the future - rather than waiting to see what happens." - Dominica DeGrandis

Goals and challenges

1. Size individual tasks consistently. When breaking down requirements and user stories, it's important to keep individual tasks to no more than 16 hours of work. Doing so increases the team's ability to estimate confidently, and it helps prevent bottlenecks.

2. Map WIP limits to the team’s skills. If a team has specialists on it, work in progress limits may differ when the specialist is involved. If bottlenecks occur, use the opportunity to educate other team members to add additional capacity for the specialist's skill sets and increase flow across the entire team.

3. Reduce idleness. When a team member has some downtime, encourage them to help an upstream or downstream team member. They'll contribute to the overall to the team, and learn something along the way!

4. Protect a sustainable engineering culture. Work in progress limits do not mean developers need to rush through work to avoid work overload in a particular status. They are meant to support solid agile engineering practices that protect the quality of the product and health of the code base.