9 min read • Guide 809 of 877
Kanban Flow Optimization
Flow efficiency drives productivity. GitScrum's Kanban boards help teams visualize work, identify bottlenecks, and optimize their delivery flow.
Understanding Flow
Flow Metrics
KEY FLOW METRICS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ CYCLE TIME: │
│ ─────────── │
│ Time from start to done │
│ Lower is better │
│ │
│ Work Started ────────────────────→ Work Completed │
│ ├────────────── Cycle Time ──────────────────┤ │
│ │
│ LEAD TIME: │
│ ────────── │
│ Time from request to done │
│ Customer perspective │
│ │
│ Request Made ──────────────────────→ Work Completed │
│ ├────────────── Lead Time ───────────────────┤ │
│ │
│ THROUGHPUT: │
│ ─────────── │
│ Items completed per time period │
│ Higher is better │
│ │
│ FLOW EFFICIENCY: │
│ ──────────────── │
│ Active work time / Total time × 100 │
│ Typical: 15-25%, Good: 40%+ │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ EXAMPLE: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Item A: ││
│ │ ││
│ │ Total time (lead): 10 days ││
│ │ ││
│ │ │██░░░░░░░░░░░░░██░░░░░░░░░░░░░░░██│ ││
│ │ │2d wait 2d work 6d wait 2d│ ││
│ │ ││
│ │ Active work: 4 days ││
│ │ Flow efficiency: 4/10 = 40% ││
│ │ ││
│ │ (60% of time was waiting!) ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
Optimizing Flow
Limit WIP
WORK IN PROGRESS LIMITS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ WHY LIMIT WIP: │
│ ────────────── │
│ More WIP = Longer cycle times │
│ Less WIP = Faster delivery │
│ │
│ HIGH WIP (BAD): │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ DEV (10 items) │ │
│ │ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ │ │
│ │ │A ││B ││C ││D ││E ││F ││G ││H ││I ││J │ │ │
│ │ └──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘ │ │
│ │ │ │
│ │ Everything started, nothing finishing │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
│ LOW WIP (GOOD): │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ DEV (WIP: 3) │ │
│ │ ┌──┐┌──┐┌──┐ │ │
│ │ │A ││B ││C │ ← Focused work │ │
│ │ └──┘└──┘└──┘ Items flow through faster │ │
│ │ │ │
│ │ Finish something before starting new │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ SETTING WIP LIMITS: │
│ ─────────────────── │
│ Start with: Team size × 1.5 │
│ Adjust based on flow │
│ │
│ 5-person team → Start with WIP limit of 7-8 │
│ If work backs up → Lower the limit │
│ If people idle frequently → Raise slightly │
│ │
│ COLUMN WIP LIMITS: │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ BACKLOG │ DEV (3) │ REVIEW (2) │ QA (2) │ DONE │ │
│ │ │ ┌──┐ │ ┌──┐ │ ┌──┐ │ ┌──┐ │ │
│ │ ┌──┐ │ │A │ │ │D │ │ │F │ │ │G │ │ │
│ │ │X │ │ └──┘ │ └──┘ │ └──┘ │ └──┘ │ │
│ │ └──┘ │ ┌──┐ │ ┌──┐ │ ┌──┐ │ ┌──┐ │ │
│ │ ┌──┐ │ │B │ │ │E │ │ │ │ │ │H │ │ │
│ │ │Y │ │ └──┘ │ └──┘ │ └──┘ │ └──┘ │ │
│ │ └──┘ │ ┌──┐ │ │ │ │ │
│ │ ┌──┐ │ │C │ │ │ │ │ │
│ │ │Z │ │ └──┘ │ │ │ │ │
│ │ └──┘ │ │ │ │ │ │
│ └────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
Finding Bottlenecks
IDENTIFYING BOTTLENECKS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ SIGNS OF BOTTLENECK: │
│ ──────────────────── │
│ • Column consistently at WIP limit │
│ • Items waiting before that stage │
│ • Stage after is often empty │
│ │
│ BOTTLENECK EXAMPLE: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ││
│ │ DEV (5) REVIEW (2) ← BOTTLENECK QA (3) ││
│ │ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ││
│ │ │ │ │ │ │██│ │██│ ← Always full │ │ ││
│ │ └──┘ └──┘ └──┘ └──┘ └──┘ ││
│ │ ┌──┐ ┌──┐ Waiting: 3 items ┌──┐ ││
│ │ │ │ │ │ │ │ ← Empty ││
│ │ └──┘ └──┘ Average wait: 2 days └──┘ ││
│ │ ┌──┐ ││
│ │ │ │ ← Work piling up ││
│ │ └──┘ ││
│ │ ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ BOTTLENECK SOLUTIONS: │
│ ───────────────────── │
│ │
│ CODE REVIEW BOTTLENECK: │
│ • Smaller PRs (faster to review) │
│ • Dedicated review time │
│ • More reviewers trained │
│ • Review SLA (24-hour max) │
│ │
│ QA BOTTLENECK: │
│ • Shift-left testing (dev tests more) │
│ • Automated tests │
│ • Clear acceptance criteria │
│ │
│ DEPENDENCY BOTTLENECK: │
│ • Better planning │
│ • Parallel work with mocks │
│ • Reduce external dependencies │
└─────────────────────────────────────────────────────────────┘
Flow Analysis
Cumulative Flow Diagram
CUMULATIVE FLOW DIAGRAM (CFD):
┌─────────────────────────────────────────────────────────────┐
│ │
│ Items │
│ │ │
│ 40 ├─────────────────────────────────────────████████ │
│ │ ██████ Done │
│ 35 ├──────────────────────────────█████ │
│ │ ██████ QA │
│ 30 ├─────────────────────███ │
│ │ ███ Review │
│ 25 ├───────────────███ │
│ │ ███ Dev │
│ 20 ├─────────███ │
│ │ ███ Backlog │
│ 15 ├────██ │
│ │ ██ │
│ 10 ├██ │
│ │ │
│ 0 ├───────────────────────────────────────────────→ Time │
│ Week 1 Week 2 Week 3 Week 4 │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ HOW TO READ CFD: │
│ ──────────────── │
│ │
│ BAND WIDTH = WIP in that stage │
│ Wide bands = High WIP = Potential problem │
│ │
│ BAND GROWTH = Arrival rate │
│ Top growing faster than Done = Overload │
│ │
│ HORIZONTAL GAP = Cycle time │
│ Wider gap = Longer cycle time │
│ │
│ HEALTHY CFD: │
│ • Bands roughly parallel │
│ • Done growing steadily │
│ • No band expanding rapidly │
│ │
│ UNHEALTHY CFD: │
│ • Bands widening (WIP growing) │
│ • Done flat (nothing finishing) │
│ • Large horizontal gap (long cycle time) │
└─────────────────────────────────────────────────────────────┘
Flow Policies
Explicit Policies
KANBAN POLICIES:
┌─────────────────────────────────────────────────────────────┐
│ │
│ COLUMN POLICIES: │
│ ──────────────── │
│ │
│ READY (Entry criteria): │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Item can enter DEV when: ││
│ │ ☐ Acceptance criteria defined ││
│ │ ☐ Design approved ││
│ │ ☐ Dependencies resolved ││
│ │ ☐ Estimated ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ DEV: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ WIP Limit: 3 ││
│ │ Pull from Ready, push to Review ││
│ │ If blocked, mark and swarm ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ REVIEW: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ WIP Limit: 2 ││
│ │ SLA: Review within 24 hours ││
│ │ If feedback, return to DEV ││
│ │ 2+ approvals required ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ QA: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ WIP Limit: 2 ││
│ │ Test against acceptance criteria ││
│ │ If bugs found, return to DEV ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ DONE: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Merged to main ││
│ │ Deployed to staging ││
│ │ Acceptance criteria verified ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ POLICIES VISIBLE ON BOARD │
│ No ambiguity about what each column means │
└─────────────────────────────────────────────────────────────┘
Daily Flow Management
Running Kanban
DAILY KANBAN PRACTICES:
┌─────────────────────────────────────────────────────────────┐
│ │
│ DAILY STANDUP (Walk the Board): │
│ ─────────────────────────────── │
│ │
│ Start from RIGHT (closest to done) │
│ │
│ For each item in DONE column: │
│ "What shipped yesterday?" │
│ │
│ For each item in QA: │
│ "How can we get this done?" │
│ "Any blockers?" │
│ │
│ For each item in REVIEW: │
│ "Who can review this?" │
│ "How long has it been waiting?" │
│ │
│ For each item in DEV: │
│ "Any blockers?" │
│ "Need help?" │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ WEEKLY REVIEW: │
│ ────────────── │
│ • Review cycle time trends │
│ • Analyze blockers from past week │
│ • Check CFD for anomalies │
│ • Adjust WIP limits if needed │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ KEY BEHAVIORS: │
│ ────────────── │
│ • Stop starting, start finishing │
│ • Finish before starting new │
│ • Help unblock others │
│ • Swarm on bottlenecks │
│ • Escalate blockers early │
└─────────────────────────────────────────────────────────────┘