WIP Limits and Flow Management | Kanban Guide
Control work in progress to improve flow and reduce multitasking. GitScrum WIP limits help teams finish work faster by limiting how much starts.
8 min read
Less work in progress means faster delivery. GitScrum supports WIP limits to help teams finish work before starting new work.
Understanding WIP
The Flow Problem
WHY WIP LIMITS MATTER:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β WITHOUT WIP LIMITS: β
β βββββββββββββββββββ β
β β
β TO DO IN PROGRESS TESTING DONE β
β ββββββ βββββββββββ βββββββ ββββ β
β ββββββ ββββββ β
β ββββββ β β β β ββββββ ββββββ β
β β β β β β β β π β β β
β β
β ββββββ β β β β β β β β β
β ββββββ ββββββ ββββββ ββββββ ββββββ β
β β β ββββββ ββββββ β
β ββββββ β β β β β
β ββββββ β β β β β 6 in progress β
β β β ββββββ ββββββ β 1 blocked in testing β
β ββββββ ββββββ ββββββ β Very little done β
β β β β β β
β ββββββ ββββββ β
β β
β PROBLEMS: β
β β’ Everyone busy, little finishing β
β β’ Context switching between tasks β
β β’ Testing backed up β
β β’ Bottleneck hidden β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β WITH WIP LIMITS: β
β βββββββββββββββββ β
β β
β TO DO IN PROGRESS (3) TESTING (2) DONE β
β ββββββ βββββββββββββββ βββββββββββ ββββ β
β ββββββ ββββββ ββββββ ββββββ β
β ββββββ β β β β β β β β ββββββ β
β β β β β β β β β β β β β
β β
β ββββββ ββββββ ββββββ ββββββ ββββββ β β β
β ββββββ ββββββ ββββββ β
β β β β β π ββββββ β
β ββββββ ββββββ STOP! β β
β β
β ββββββ Limit hit β β β
β β β Help testing! ββββββ β
β ββββββ ββββββ β
β β β
β β
β ββββββ β
β β
β BENEFITS: β
β β’ Bottleneck visible (testing) β
β β’ Team swarms to help β
β β’ More finishing, less starting β
β β’ Faster cycle time β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Setting WIP Limits
Initial Limits
SETTING WIP LIMITS:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β STARTING POINT: β
β βββββββββββββββ β
β β
β Rule of thumb: # of people who work in that stage β
β β
β EXAMPLE (Team of 5): β
β β’ 3 developers β In Progress limit = 3 β
β β’ 1 QA β Testing limit = 1 or 2 β
β β’ Code Review β 2-3 items β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β BOARD WITH LIMITS: β
β β
β TO DO IN PROGRESS CODE REVIEW TESTING DONE β
β ββββββ [Limit: 4] [Limit: 3] [Limit: 2] ββββ β
β β
β ββββββ ββββββ ββββββ ββββββ ββββββ ββββββ β
β β β β 1 β β 2 β β 1 β β 1 β β β
β β
β ββββββ ββββββ ββββββ ββββββ ββββββ ββββββ β
β ββββββ ββββββ ββββββ ββββββ ββββββ ββββββ β
β β β β 3 β β 4 β β 2 β β 2 β β β
β β
β ββββββ ββββββ ββββββ ββββββ ββββββ ββββββ β
β ββββββ ββββββ β¬οΈ FULL β
β β β β 3 β β
β ββββββ β¬οΈ FULL ββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ADJUSTING: β
β β
β LIMIT TOO LOW: β
β β’ People idle β
β β’ Work waiting to enter β
β β Increase limit β
β β
β LIMIT TOO HIGH: β
β β’ Still context switching β
β β’ Bottlenecks not visible β
β β Decrease limit β
β β
β JUST RIGHT: β
β β’ Occasional blocking (expected) β
β β’ Team helps each other β
β β’ Steady flow to Done β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Managing Flow
When Limits Are Hit
RESPONDING TO WIP LIMITS:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β WHEN LIMIT IS HIT: β
β ββββββββββββββββββ β
β β
β WRONG RESPONSE: β
β β Ignore the limit β
β β Increase limit to fit more β
β β Start new work anyway β
β β
β RIGHT RESPONSE: β
β β
Stop starting, start finishing β
β β
Help unblock items in later stages β
β β
Pair with someone on their work β
β β
Clear bottleneck β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β SCENARIO: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β IN PROGRESS: 4/4 (FULL) ββ
β β CODE REVIEW: 3/3 (FULL) ββ
β β TESTING: 1/2 ββ
β β ββ
β β @alex finishes coding, wants to start new task ββ
β β ββ
β β OPTIONS: ββ
β β 1. Do a code review (unblock Review column) ββ
β β 2. Help with testing (unblock done items) ββ
β β 3. Pair with @jordan (help them finish faster) ββ
β β 4. Refactor/improve existing work ββ
β β 5. Update documentation ββ
β β ββ
β β NOT AN OPTION: ββ
β β β Start a new story anyway ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β "Stop starting, start finishing" β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Measuring Flow
FLOW METRICS:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β CYCLE TIME: β
β βββββββββββ β
β Time from start to done for one item β
β β
β Task Started βββββββββββββββββ Task Done β
β ββββββββββββ βββββββββ β
β βββββββ Cycle Time βββββββ β
β β
β GOAL: Reduce cycle time (faster delivery) β
β WIP limits help by reducing wait time β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β THROUGHPUT: β
β βββββββββββ β
β Number of items completed per time period β
β β
β Week 1: 5 items β
β Week 2: 7 items β
β Week 3: 6 items β
β Average: 6 items/week β
β β
β GOAL: Consistent, sustainable throughput β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β CUMULATIVE FLOW DIAGRAM: β
β β
β Itemsβ βββββββββββββββββββββ Done β
β β βββββββββββββββββββββ β
β β βββββββββββββββββββββ Testing β
β β βββββββββββββββββββββ β
β β βββββββββββββββββββββ In Progress β
β β βββββββββββββββββββββ β
β βββββββββββββββββββββββββββββββββββββ β
β Week 1 Week 2 Week 3 β
β β
β LOOK FOR: β
β β’ Widening bands = bottleneck building β
β β’ Steady flow = healthy system β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Common Challenges
WIP Limit Problems
TROUBLESHOOTING WIP:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β "WE KEEP BREAKING LIMITS": β
β ββββββββββββββββββββββββββ β
β Causes: β
β β’ Limits not enforced β
β β’ Urgent work bypasses limits β
β β’ Limits too aggressive β
β β
β Fixes: β
β β’ Make limits visible on board β
β β’ Call out violations in standup β
β β’ Start with higher limits, lower over time β
β β’ Emergency lane for truly urgent work β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β "PEOPLE ARE IDLE": β
β ββββββββββββββββββ β
β Causes: β
β β’ Limits too low β
β β’ Team not cross-functional β
β β’ Bottleneck elsewhere β
β β
β Fixes: β
β β’ Increase limits slightly β
β β’ Cross-train team members β
β β’ Find bottleneck, add capacity there β
β β’ Use idle time for improvement β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β "ONE COLUMN ALWAYS BLOCKED": β
β βββββββββββββββββββββββββββββ β
β Causes: β
β β’ Bottleneck in that stage β
β β’ Insufficient capacity β
β β’ Too much upstream work β
β β
β Fixes: β
β β’ Add capacity to bottleneck β
β β’ Reduce WIP before bottleneck β
β β’ Everyone helps bottleneck stage β
β β’ Don't start new work until bottleneck clears β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ