7 min read • Guide 677 of 877
Implementing WIP Limits
Work-in-progress limits are the engine of flow optimization in Kanban. When properly implemented, WIP limits reduce context switching, reveal bottlenecks, and help teams focus on finishing work rather than starting new tasks. GitScrum provides configurable WIP limits with visual enforcement.
WIP Limit Fundamentals
Why WIP Limits Work
IMPACT OF WIP LIMITS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ WITHOUT WIP LIMITS: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ IN PROGRESS: 12 items (no limit) ││
│ │ ││
│ │ SYMPTOMS: ││
│ │ • Everything started, nothing finished ││
│ │ • High context switching ││
│ │ • Unpredictable delivery ││
│ │ • Bottlenecks hidden ││
│ │ • Long cycle times ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ WITH WIP LIMITS: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ IN PROGRESS: 4 items (limit: 5) ││
│ │ ││
│ │ BENEFITS: ││
│ │ • Focus on finishing ││
│ │ • Reduced context switching ││
│ │ • Bottlenecks visible immediately ││
│ │ • Predictable flow ││
│ │ • Shorter cycle times ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
Little's Law
LITTLE'S LAW EXPLAINED:
┌─────────────────────────────────────────────────────────────┐
│ │
│ FORMULA: │
│ │
│ Cycle Time = WIP / Throughput │
│ │
│ EXAMPLE: │
│ Team completes 10 items/week (throughput) │
│ │
│ Scenario A: WIP = 20 │
│ Cycle Time = 20 / 10 = 2 weeks │
│ │
│ Scenario B: WIP = 10 │
│ Cycle Time = 10 / 10 = 1 week │
│ │
│ INSIGHT: │
│ Lower WIP = Shorter cycle time │
│ (assuming same throughput) │
│ │
│ This is why WIP limits accelerate delivery │
└─────────────────────────────────────────────────────────────┘
Setting WIP Limits
Initial Calculation
WIP LIMIT FORMULAS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ ACTIVE WORK COLUMNS (In Progress, Development): │
│ │
│ Formula: Number of team members × 1 to 1.5 │
│ │
│ Example: 5 developers │
│ Conservative: 5 × 1 = 5 │
│ Buffer: 5 × 1.5 = 7-8 │
│ │
│ REVIEW COLUMNS (Code Review): │
│ │
│ Formula: Team size × 0.5 to 1 │
│ │
│ Example: 5 developers │
│ WIP = 5 × 0.5 = 2-3 items │
│ (Each person reviews while doing other work) │
│ │
│ QUEUE COLUMNS (Ready, Waiting): │
│ │
│ Formula: Team throughput × 1-2 sprints │
│ │
│ Example: Team does 15 items/sprint │
│ Ready queue: 15-30 items │
│ │
│ SYSTEM WIP (Total): │
│ │
│ Formula: Team size × 2-3 │
│ Example: 5 developers × 2.5 = 12-15 total items │
└─────────────────────────────────────────────────────────────┘
Per-Column Strategy
TYPICAL DEVELOPMENT BOARD:
┌─────────────────────────────────────────────────────────────┐
│ TEAM: 5 developers, 1 QA │
├─────────────────────────────────────────────────────────────┤
│ │
│ COLUMN │ WIP │ RATIONALE │
│───────────────┼────────┼────────────────────────────────────
│ Backlog │ None │ Prioritized queue │
│ Ready │ 8 │ 1-2 sprints of refined work │
│ In Progress │ 6 │ 5 devs × 1.2 (slight buffer) │
│ Code Review │ 3 │ Encourage fast reviews │
│ QA Testing │ 3 │ QA capacity + buffer │
│ Staging │ 2 │ Limit unreleased work │
│ Done │ None │ Completed work │
│ │
│ TOTAL SYSTEM WIP: ~22 items │
│ (Backlog and Done excluded from system WIP) │
└─────────────────────────────────────────────────────────────┘
Enforcement and Response
Visual Indicators
WIP LIMIT VISUALIZATION:
┌─────────────────────────────────────────────────────────────┐
│ │
│ STATUS INDICATORS: │
│ │
│ UNDER LIMIT (Green): │
│ ┌──────────────────────────────────────────────────────────┐
│ │ IN PROGRESS [3/5] │
│ │ ████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 60% │
│ └──────────────────────────────────────────────────────────┘
│ │
│ AT LIMIT (Yellow/Warning): │
│ ┌──────────────────────────────────────────────────────────┐
│ │ IN PROGRESS [5/5] ⚠️ │
│ │ ████████████████████████████████████████░░ 100% │
│ └──────────────────────────────────────────────────────────┘
│ │
│ OVER LIMIT (Red/Alert): │
│ ┌──────────────────────────────────────────────────────────┐
│ │ IN PROGRESS [7/5] ❌ │
│ │ ████████████████████████████████████████████ 140% │
│ └──────────────────────────────────────────────────────────┘
│ │
│ BOARD VIEW: │
│ Column header color changes based on status │
│ Team can see at a glance where problems are │
└─────────────────────────────────────────────────────────────┘
When Limits Are Reached
WIP LIMIT REACHED - ACTION GUIDE:
┌─────────────────────────────────────────────────────────────┐
│ │
│ IMMEDIATE ACTIONS: │
│ │
│ 1. FINISH BEFORE STARTING │
│ Don't pull new work until something completes │
│ │
│ 2. HELP UNBLOCK │
│ Swarm on blocked items │
│ Pair to speed completion │
│ │
│ 3. LOOK DOWNSTREAM │
│ Clear items waiting for next stage │
│ Is the bottleneck actually later? │
│ │
│ 4. IDENTIFY ROOT CAUSE │
│ Why is this column backing up? │
│ Skill gap? Waiting on external? Too complex? │
│ │
│ DON'T: │
│ ✗ Automatically raise the limit │
│ ✗ Bypass with "exceptions" │
│ ✗ Move items backward │
│ ✗ Ignore the limit │
│ │
│ EXCEPTION: True emergencies may exceed limit │
│ but must be discussed and tracked │
└─────────────────────────────────────────────────────────────┘
Optimization
Adjusting Limits
WHEN TO ADJUST WIP LIMITS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ LOWER THE LIMIT IF: │
│ • Cycle time is increasing │
│ • Items sit idle waiting for attention │
│ • Context switching complaints │
│ • Quality issues from rushed multitasking │
│ │
│ RAISE THE LIMIT IF: │
│ • Team frequently idle, waiting for work │
│ • Column always empty │
│ • Blocking legitimate work too often │
│ • Team composition changed (more people) │
│ │
│ ADJUSTMENT PROCESS: │
│ │
│ 1. Observe current state for 2+ weeks │
│ 2. Discuss in retrospective │
│ 3. Agree on adjustment (+/- 1 typically) │
│ 4. Try for 2 weeks │
│ 5. Evaluate and iterate │
│ │
│ NEVER: Make large jumps (e.g., 5 → 10) │
│ Small incremental changes reveal optimal limits │
└─────────────────────────────────────────────────────────────┘
Measuring Effectiveness
WIP LIMIT METRICS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ CYCLE TIME TREND: │
│ Should decrease or stabilize as limits mature │
│ │
│ Before limits: ████████████████████████████ 15 days │
│ Week 4: ████████████████████░░░░░░░░ 12 days │
│ Week 8: ██████████████░░░░░░░░░░░░░░ 8 days │
│ Week 12: ████████████░░░░░░░░░░░░░░░░ 7 days ✓ │
│ │
│ WIP LIMIT VIOLATIONS: │
│ Track how often limits are exceeded │
│ │
│ Week 1: ████████ 8 violations (expected during adoption) │
│ Week 4: ███░░░░░ 3 violations │
│ Week 8: █░░░░░░░ 1 violation │
│ Week 12: ░░░░░░░░ 0 violations ✓ │
│ │
│ THROUGHPUT: │
│ Should remain stable or improve │
│ If dropping significantly, limits may be too tight │
└─────────────────────────────────────────────────────────────┘