6 min read • Guide 189 of 877
Identifying Bottlenecks in Development Workflow
Bottlenecks are the hidden constraints that limit your entire team's output. A 10-person team with a 1-person code review bottleneck is effectively a 1-person team for review. Finding and eliminating bottlenecks is the highest-leverage improvement you can make.
Bottleneck Indicators
| Symptom | Likely Bottleneck |
|---|---|
| PRs waiting days | Code review |
| Bugs after release | Testing/QA |
| Deploy takes hours | Deployment process |
| Answers take days | Requirements/decisions |
| Work piles in column | That column's activity |
Finding Bottlenecks
Data Analysis
CYCLE TIME BREAKDOWN ANALYSIS
═════════════════════════════
MEASURE TIME IN EACH STAGE:
─────────────────────────────────────
Stage Avg Time % of Total
─────────────────────────────────────
Ready → Start 0.5 days 10%
Development 2.0 days 40%
Code Review 1.5 days 30% ← Bottleneck?
QA Testing 0.5 days 10%
Deploy 0.5 days 10%
─────────────────────────────────────
Total 5.0 days 100%
ANALYSIS:
├── Review is 30% of total cycle time
├── Relative to development (40%), it's disproportionate
├── Queue time in review = waste
└── Focus improvement here
WEEKLY TREND:
Week 1: Review 1.2 days
Week 2: Review 1.5 days
Week 3: Review 1.8 days ← Getting worse
Week 4: Review 2.1 days
Growing review time = capacity bottleneck
Board Observation
VISUAL BOTTLENECK DETECTION
═══════════════════════════
LOOK AT YOUR BOARD:
┌────────────────────────────────────────────────────────┐
│ Ready │ In Progress │ Review │ QA │ Done │
├────────────────────────────────────────────────────────┤
│ [T1] │ [T5] │ [T8] │ [T14]│ [Done] │
│ [T2] │ [T6] │ [T9] │ │ [Done] │
│ [T3] │ [T7] │ [T10] │ │ [Done] │
│ [T4] │ │ [T11] │ │ │
│ │ │ [T12] ←──│──────│── PILE │
│ │ │ [T13] │ │ │
└────────────────────────────────────────────────────────┘
BOTTLENECK: Review column
├── 6 items waiting
├── More than other stages
├── Age: Some 3+ days old
└── QA is starved (only 1 item)
IMPACT:
├── Developers finish but can't ship
├── Waiting = inventory = waste
├── Delays feedback to customer
└── Frustration for team
Team Input
TEAM BOTTLENECK SURVEY
══════════════════════
ASK THE TEAM:
─────────────────────────────────────
1. "Where do you wait most often?"
2. "What blocks you from shipping?"
3. "What process frustrates you?"
4. "If you could eliminate one wait, which?"
COMMON ANSWERS:
├── "Waiting for code review"
├── "Waiting for requirements clarification"
├── "Waiting for design approval"
├── "Waiting for environment access"
├── "Waiting for third-party API"
└── "Waiting for deployment window"
RETROSPECTIVE EXERCISE:
1. Each person writes top 3 waits
2. Group similar items
3. Vote on biggest impact
4. Focus on top 1-2
5. Create action item
Common Bottlenecks
Code Review
CODE REVIEW BOTTLENECK
══════════════════════
SYMPTOMS:
├── PRs open for days
├── Developers waiting
├── Context lost by review time
├── Review backlog grows
ROOT CAUSES:
├── Too few reviewers
├── Large PRs (take long to review)
├── No review SLA
├── Reviewers are senior devs (busy)
├── Review not prioritized
SOLUTIONS:
─────────────────────────────────────
1. SMALLER PRs
├── Target: <200 lines changed
├── Faster to review
├── Faster feedback
└── Less context loss
2. REVIEW SLA
├── First review: 4 hours
├── Track and report
├── Make visible
└── Hold accountable
3. MORE REVIEWERS
├── Train junior devs
├── Peer review (not just seniors)
├── Review rotation schedule
└── Automated review for style
4. PAIR PROGRAMMING
├── Review built-in
├── No separate step
└── Ship faster
QA/Testing
QA BOTTLENECK
═════════════
SYMPTOMS:
├── Items pile up waiting for QA
├── Bugs found late
├── QA rushed before release
├── Manual testing takes too long
ROOT CAUSES:
├── Manual testing only
├── Too few QA resources
├── Testing at end (not continuous)
├── Unclear test criteria
SOLUTIONS:
─────────────────────────────────────
1. SHIFT LEFT
├── Developers write tests
├── Testing during development
├── Not a separate phase
└── Continuous integration
2. AUTOMATE
├── Automated test suite
├── Run on every PR
├── Fast feedback
└── Manual for exploratory only
3. ACCEPTANCE CRITERIA
├── Clear before development
├── Testable criteria
├── Developers can verify
└── QA confirms, not discovers
4. ADD CAPACITY
├── More QA if needed
├── Or developer testing time
└── Balance team composition
Deployment
DEPLOYMENT BOTTLENECK
═════════════════════
SYMPTOMS:
├── Deploy takes hours/days
├── Manual steps required
├── Limited deploy windows
├── Waiting for "deploy person"
ROOT CAUSES:
├── Manual deployment process
├── Limited deploy access
├── Infrequent deploys (scary)
├── No rollback capability
SOLUTIONS:
─────────────────────────────────────
1. AUTOMATE DEPLOYMENT
├── CI/CD pipeline
├── Merge = deploy
├── No manual steps
└── Repeatable, reliable
2. DEPLOY MORE OFTEN
├── Small changes = low risk
├── Multiple times per day
├── Deploy is normal
└── Not an event
3. ENABLE ROLLBACK
├── Easy rollback process
├── Reduces fear
├── Faster recovery
└── More confidence
4. DEMOCRATIZE ACCESS
├── Developers can deploy
├── Not just ops team
├── Self-service
└── Remove bottleneck person
GitScrum for Bottlenecks
Cycle Time Analysis
GITSCRUM BOTTLENECK DETECTION
═════════════════════════════
CYCLE TIME REPORT:
┌─────────────────────────────────────────────────────────┐
│ Cycle Time Analysis - Last 30 Days │
├─────────────────────────────────────────────────────────┤
│ │
│ AVERAGE: 4.5 days │
│ │
│ BY STAGE: │
│ ░░░░░░░░░░ Ready: 0.5 days (11%) │
│ ████████░░ Dev: 1.8 days (40%) │
│ ██████░░░░ Review: 1.4 days (31%) ← FOCUS HERE │
│ ██░░░░░░░░ QA: 0.4 days (9%) │
│ ██░░░░░░░░ Deploy: 0.4 days (9%) │
│ │
│ INSIGHT: Review stage is disproportionately long │
│ relative to QA and Deploy │
│ │
│ RECOMMENDATION: Implement review SLA, reduce PR size │
│ │
└─────────────────────────────────────────────────────────┘
WIP BY COLUMN:
├── Ready: 4 items (OK)
├── In Progress: 5 items (OK)
├── Review: 8 items (HIGH - investigate)
├── QA: 2 items (OK)
└── Done: --
ACTION: Add WIP limit to Review column
Best Practices
For Bottleneck Elimination
- Measure first — Data beats intuition
- One bottleneck at a time — Focus effort
- Address root cause — Not symptoms
- Add capacity at constraint — Not elsewhere
- Monitor after change — Verify improvement
Anti-Patterns
BOTTLENECK MISTAKES:
✗ Optimizing non-bottleneck stages
✗ Adding capacity everywhere equally
✗ Ignoring team input
✗ Not measuring before/after
✗ Treating symptoms, not causes
✗ Multiple changes at once
✗ Not addressing cultural factors
✗ Expecting immediate results