GitScrum / Docs
All Best Practices

Kanban Columns & WIP Limits | Optimize Flow 40% Faster

Design Kanban board columns and WIP limits with GitScrum. Configure work-in-progress limits, detect bottlenecks, optimize team flow. Improve cycle time by 40%.

7 min read

Well-designed Kanban columns and WIP limits transform your board from a simple task list into a flow optimization system. GitScrum's flexible board configuration helps teams visualize their workflow, limit work-in-progress, and continuously improve their process.

Board Column Design

Standard Development Board

BASIC DEVELOPMENT KANBAN BOARD:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ BACKLOG   β”‚ READY   β”‚ IN PROGRESS β”‚ REVIEW  β”‚ DONE         β”‚
β”‚ (no limit)β”‚ (5)     β”‚ (4)         β”‚ (3)     β”‚              β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚           β”‚         β”‚             β”‚         β”‚              β”‚
β”‚ β–‘ Story 8 β”‚ β–‘ #125  β”‚ β–  #122      β”‚ β–  #118  β”‚ βœ“ #115      β”‚
β”‚ β–‘ Story 9 β”‚ β–‘ #126  β”‚ β–  #123      β”‚ β–  #119  β”‚ βœ“ #116      β”‚
β”‚ β–‘ Story 10β”‚ β–‘ #127  β”‚ β–  #124      β”‚         β”‚ βœ“ #117      β”‚
β”‚ β–‘ Bug #46 β”‚         β”‚             β”‚         β”‚              β”‚
β”‚ β–‘ Bug #47 β”‚         β”‚ WIP: 3/4 βœ… β”‚ WIP:2/3 β”‚              β”‚
β”‚           β”‚         β”‚             β”‚    βœ…   β”‚              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

COLUMN PURPOSES:
β€’ Backlog: All work not yet ready to start
β€’ Ready: Refined, prioritized, can start immediately
β€’ In Progress: Actively being worked on
β€’ Review: Code review and testing
β€’ Done: Completed and deployed

Advanced Board with Sub-Columns

ADVANCED BOARD WITH SUB-COLUMNS:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ BACKLOG β”‚ READY β”‚ IN PROGRESS    β”‚ REVIEW        β”‚ DONE    β”‚
β”‚         β”‚       β”‚ DOING β”‚ DONE   β”‚ DOING β”‚ DONE  β”‚         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚         β”‚       β”‚       β”‚        β”‚       β”‚       β”‚         β”‚
β”‚ β–‘ #130  β”‚ β–‘ #128β”‚ β–  #122β”‚ β—† #120 β”‚ β–  #118β”‚ β—† #115β”‚ βœ“ #110  β”‚
β”‚ β–‘ #131  β”‚ β–‘ #129β”‚ β–  #123β”‚        β”‚ β–  #119β”‚       β”‚ βœ“ #111  β”‚
β”‚ β–‘ #132  β”‚       β”‚       β”‚        β”‚       β”‚       β”‚ βœ“ #112  β”‚
β”‚         β”‚       β”‚       β”‚        β”‚       β”‚       β”‚         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

LEGEND:
β–‘ Not started  β–  In progress  β—† Done (waiting for pull)  βœ“ Complete

WHY SUB-COLUMNS:
"Done" sub-columns show work waiting for next stage.
Reveals handoff delays between workflow stages.

QA-Integrated Board

DEVELOPMENT + QA BOARD:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚BACKLOGβ”‚READYβ”‚DEV    β”‚CODE   β”‚QA      β”‚STAGING β”‚DONE        β”‚
β”‚       β”‚     β”‚       β”‚REVIEW β”‚TESTING β”‚        β”‚            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚       β”‚     β”‚       β”‚       β”‚        β”‚        β”‚            β”‚
β”‚ β–‘ #140β”‚β–‘#138β”‚ β–  #135β”‚ β–  #132β”‚ β–  #128 β”‚ β–  #125 β”‚ βœ“ #120    β”‚
β”‚ β–‘ #141β”‚β–‘#139β”‚ β–  #136β”‚ β–  #133β”‚ β–  #129 β”‚        β”‚ βœ“ #121    β”‚
β”‚ β–‘ #142β”‚     β”‚       β”‚       β”‚ β–  #130 β”‚        β”‚ βœ“ #122    β”‚
β”‚       β”‚     β”‚       β”‚       β”‚        β”‚        β”‚            β”‚
β”‚       β”‚(4)  β”‚ (3)   β”‚ (3)   β”‚ (4)    β”‚ (2)    β”‚            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

WIP LIMITS BY COLUMN:
β€’ Ready: 4 (keeps work flowing without pile-up)
β€’ Dev: 3 (focus on completing, not starting)
β€’ Code Review: 3 (prevents review bottleneck)
β€’ QA Testing: 4 (allows testing batches)
β€’ Staging: 2 (limit unreleased work)

WIP Limit Strategy

Setting WIP Limits

WIP LIMIT GUIDELINES:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ STARTING FORMULA:                                           β”‚
β”‚ WIP Limit = (Team members for that stage) Γ— 1.5            β”‚
β”‚                                                             β”‚
β”‚ EXAMPLE:                                                    β”‚
β”‚ Team: 4 developers, 1 QA                                   β”‚
β”‚ β€’ In Progress WIP: 4 Γ— 1.5 = 6 (round to 6)               β”‚
β”‚ β€’ Code Review WIP: 4 Γ— 0.5 = 2 (everyone reviews)         β”‚
β”‚ β€’ QA Testing WIP: 1 Γ— 2 = 2 (buffer for QA)               β”‚
β”‚                                                             β”‚
β”‚ ADJUSTMENT SIGNALS:                                         β”‚
β”‚                                                             β”‚
β”‚ WIP TOO HIGH:                                               β”‚
β”‚ β€’ Work sits idle between stages                            β”‚
β”‚ β€’ Context switching increases                              β”‚
β”‚ β€’ Lead time growing                                        β”‚
β”‚ β†’ Lower the limit                                          β”‚
β”‚                                                             β”‚
β”‚ WIP TOO LOW:                                                β”‚
β”‚ β€’ Team members frequently idle                             β”‚
β”‚ β€’ Work blocked on single items                             β”‚
β”‚ β€’ No flow at all                                           β”‚
β”‚ β†’ Raise the limit slightly                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

WIP Limit Enforcement

WIP LIMIT BEHAVIORS:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ VISUAL INDICATORS:                                          β”‚
β”‚                                                             β”‚
β”‚ Under limit:    [3/5] β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ Green           β”‚
β”‚ At limit:       [5/5] β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ Yellow          β”‚
β”‚ Over limit:     [7/5] β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ Red + Alert     β”‚
β”‚                                                             β”‚
β”‚ WHEN LIMIT IS REACHED:                                      β”‚
β”‚                                                             β”‚
β”‚ βœ“ DO:                                                      β”‚
β”‚ β€’ Help finish existing work                                β”‚
β”‚ β€’ Swarm on blocked items                                   β”‚
β”‚ β€’ Address bottlenecks upstream                             β”‚
β”‚ β€’ Pair on complex items                                    β”‚
β”‚                                                             β”‚
β”‚ βœ— DON'T:                                                   β”‚
β”‚ β€’ Start new work anyway                                    β”‚
β”‚ β€’ Move items backward                                      β”‚
β”‚ β€’ Raise limit without discussion                           β”‚
β”‚                                                             β”‚
β”‚ EXCEPTION POLICY:                                           β”‚
β”‚ Emergency/critical bugs may exceed limit                   β”‚
β”‚ Team must acknowledge and track exceptions                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Flow Optimization

Bottleneck Detection

IDENTIFYING BOTTLENECKS:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ COLUMN WAIT TIME ANALYSIS:                                  β”‚
β”‚                                                             β”‚
β”‚ Ready         β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0.5 days avg     β”‚
β”‚ In Progress   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 2.0 days avg     β”‚
β”‚ Code Review   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘ 4.0 days avg ⚠️  β”‚
β”‚ QA Testing    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 1.5 days avg     β”‚
β”‚ Staging       β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0.5 days avg     β”‚
β”‚                                                             β”‚
β”‚ BOTTLENECK: Code Review                                    β”‚
β”‚                                                             β”‚
β”‚ IMPROVEMENT OPTIONS:                                        β”‚
β”‚ β€’ Dedicated review time blocks                             β”‚
β”‚ β€’ Review before new work                                   β”‚
β”‚ β€’ Pair programming (reduce review need)                    β”‚
β”‚ β€’ Automated checks before human review                     β”‚
β”‚ β€’ Cross-train more reviewers                               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Column Metrics

KANBAN FLOW METRICS:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ LEAD TIME: Total time from Ready to Done                   β”‚
β”‚ Current: 8.5 days (target: 7 days)                         β”‚
β”‚                                                             β”‚
β”‚ CYCLE TIME: Time actively worked (In Progress + Review)    β”‚
β”‚ Current: 3.5 days                                          β”‚
β”‚                                                             β”‚
β”‚ WAIT TIME: Lead Time - Cycle Time                          β”‚
β”‚ Current: 5.0 days (indicates queue time)                   β”‚
β”‚                                                             β”‚
β”‚ THROUGHPUT: Items completed per week                       β”‚
β”‚ Current: 12 items/week                                     β”‚
β”‚                                                             β”‚
β”‚ FLOW EFFICIENCY:                                            β”‚
β”‚ (Cycle Time / Lead Time) Γ— 100                             β”‚
β”‚ Current: (3.5 / 8.5) Γ— 100 = 41%                          β”‚
β”‚ Target: >50%                                               β”‚
β”‚                                                             β”‚
β”‚ INSIGHT: High wait time suggests queue problems            β”‚
β”‚ Focus on reducing time in "Ready" and between stages       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Board Customization

Column Types

COLUMN CONFIGURATION OPTIONS:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ QUEUE COLUMNS (pull from):                                  β”‚
β”‚ β€’ No WIP limit or high limit                               β”‚
β”‚ β€’ Items wait here for capacity                             β”‚
β”‚ β€’ Examples: Backlog, Ready                                 β”‚
β”‚                                                             β”‚
β”‚ WORK COLUMNS (active work):                                 β”‚
β”‚ β€’ Strict WIP limits                                        β”‚
β”‚ β€’ Items actively worked on                                 β”‚
β”‚ β€’ Examples: In Progress, Code Review                       β”‚
β”‚                                                             β”‚
β”‚ BUFFER COLUMNS (handoff):                                   β”‚
β”‚ β€’ Small WIP limit                                          β”‚
β”‚ β€’ Work waiting for next stage                              β”‚
β”‚ β€’ Examples: "Dev Done", "Ready for QA"                     β”‚
β”‚                                                             β”‚
β”‚ DONE COLUMNS (completed):                                   β”‚
β”‚ β€’ No WIP limit                                             β”‚
β”‚ β€’ Archive completed work                                   β”‚
β”‚ β€’ May have "deployed" sub-status                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Related Solutions