Try free
8 min read Guide 792 of 877

WIP Limits and Flow Management

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           │
└─────────────────────────────────────────────────────────────┘