Value stream mapping (VSM) is a lean manufacturing technique that's become essential for understanding software delivery. By mapping the flow of work from idea to production, you can identify waste, bottlenecks, and opportunities to improve—with data, not guesswork.
"You can't optimize a process you can't see. Value stream mapping makes the invisible visible—and usually reveals that most of your lead time is waiting, not working."
What is Value Stream Mapping?
A value stream map visualizes the flow of work through a system, showing:
- Process steps — Each activity that transforms work
- Process time — Time spent actively working
- Wait time — Time spent waiting between steps
- Information flow — How work items move and communicate
- Bottlenecks — Where work accumulates
In software development, a value stream typically includes: idea → requirements → design → development → code review → testing → deployment → customer value.
The Software Delivery Value Stream
SIMPLIFIED SOFTWARE VALUE STREAM
───────────────────────────────────────
Customer Product Dev Team Code Testing Ops Customer
Request → Backlog → Development → Review → & QA → Deploy → Value
┌─────────┐ ┌───────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ Wait: │ │ Process: │ │ Wait: │ │ Process:│ │ Wait: │
│ 5 days │ │ 3 days │ │ 1 day │ │ 0.5 day │ │ 2 days │
│ │ │ │ │ │ │ │ │ │
│ Queue │ │ Coding │ │ Review │ │ Testing │ │ Deploy │
│ Size: 15│ │ WIP: 8 │ │ Queue: 5│ │ WIP: 3 │ │ Window │
└─────────┘ └───────────┘ └─────────┘ └─────────┘ └─────────┘
LEAD TIME: 11.5 days
PROCESS TIME: 3.5 days
FLOW EFFICIENCY: 30% (3.5 / 11.5)
INSIGHT: 70% of time is waiting, not working/// Our Take
Most teams are shocked when they first map their value stream. They expect coding to be the bottleneck—instead they find that 60-80% of lead time is waiting: waiting for requirements, waiting for review, waiting for approval, waiting for deployment windows.
This is why optimizing developer productivity rarely improves delivery speed. You're optimizing the 20-30% that's already working while ignoring the 70-80% that's idle. Value stream mapping shows you where to focus.
Key VSM Metrics
| Metric | Definition | Why It Matters |
|---|---|---|
| Lead Time | Total time from request to delivery | Customer-facing speed |
| Process Time | Time spent actively working | Actual effort required |
| Wait Time | Time spent idle between steps | Where waste lives |
| Flow Efficiency | Process Time / Lead Time × 100 | How much is productive |
| Throughput | Items completed per time period | System capacity |
| WIP | Items currently in progress | System load (affects wait time) |
Flow Efficiency Benchmarks
- < 15% — Typical (lots of waiting)
- 15-25% — Good (some optimization needed)
- 25-40% — Great (well-optimized flow)
- > 40% — Excellent (rare outside small teams)
How to Create a Value Stream Map
Step 1: Define Scope
- What triggers the start? (Customer request, bug report, etc.)
- What marks the end? (Deployed, customer using, etc.)
- What work items to include? (Features, bugs, all?)
Step 2: Walk the Process
Follow actual work items through your system. Talk to people at each stage:
- What do you do with the work?
- How long does your step take?
- How long do items wait before you start?
- What do you wait for from others?
Step 3: Collect Data
For each process step, measure:
- Average process time (time actively working)
- Average wait time (time before work starts)
- Queue size (items waiting)
- WIP (items being worked)
- Rework rate (items that come back)
Step 4: Draw the Map
Create a visual representation showing:
- Process boxes for each step
- Time annotations (process and wait)
- Arrows showing flow direction
- Information flows (how decisions are communicated)
- Queues and WIP limits
Step 5: Calculate Metrics
- Total lead time = sum of all process + wait times
- Total process time = sum of active work times
- Flow efficiency = process time / lead time
📊 How to See This in CodePulse
CodePulse automatically tracks key VSM metrics from your git data:
- Dashboard shows cycle time breakdown (coding, waiting, review, merge)
- PR List shows individual PR flow times
- Review Network identifies review bottlenecks
Common Types of Waste
Waiting (Most Common)
- PRs waiting for code review
- Features waiting for approval
- Deployments waiting for window
- Questions waiting for answers
Handoffs
- Dev to QA to Ops transitions
- Information lost in handoffs
- Waiting for handoff availability
Rework
- PR changes requested in review
- Bugs found after deployment
- Requirements misunderstood
Overproduction
- Building features never used
- Excessive documentation
- Gold-plating beyond requirements
Motion
- Context switching between tasks
- Hunting for information
- Meetings that could be async
Improving Flow
Reduce Wait Time
- SLAs for code review (24 hours max)
- Automated deployments (no waiting for windows)
- Self-service infrastructure (no waiting for Ops)
- Clear escalation paths for blocked work
Reduce Batch Size
- Smaller PRs (under 400 lines)
- More frequent releases
- Feature flags for partial releases
Limit WIP
- Explicit WIP limits per stage
- Finish before starting new work
- Pull-based system (don't push work onto busy teams)
Reduce Handoffs
- Cross-functional teams
- DevOps culture (dev owns deployment)
- Shift-left testing (dev writes tests)
"Every handoff is an opportunity for waiting, information loss, and misunderstanding. The fewer handoffs, the better the flow."
Value Stream Map Template
VALUE STREAM MAP: [Product/Team Name] Date: [Date] Scope: [Feature request to production deployment] ─────────────────────────────────────────────────── STAGE 1: [Backlog] ├── Process Time: [X hours/days] ├── Wait Time: [X hours/days] ├── Queue Size: [N items] └── % Complete & Accurate: [X%] STAGE 2: [Development] ├── Process Time: [X hours/days] ├── Wait Time: [X hours/days] ├── WIP: [N items] └── % Complete & Accurate: [X%] STAGE 3: [Code Review] ├── Process Time: [X hours/days] ├── Wait Time: [X hours/days] ├── Queue Size: [N items] └── % Complete & Accurate: [X%] STAGE 4: [Testing/QA] ├── Process Time: [X hours/days] ├── Wait Time: [X hours/days] ├── WIP: [N items] └── % Complete & Accurate: [X%] STAGE 5: [Deployment] ├── Process Time: [X hours/days] ├── Wait Time: [X hours/days] └── % Complete & Accurate: [X%] ─────────────────────────────────────────────────── SUMMARY ├── Total Lead Time: [X days] ├── Total Process Time: [X days] ├── Total Wait Time: [X days] ├── Flow Efficiency: [X%] └── Throughput: [X items/week] TOP BOTTLENECK: [Stage name] IMPROVEMENT OPPORTUNITY: [What to do]
Related Guides
- Cycle Time Breakdown Guide — Detailed analysis of PR flow time
- Reduce PR Cycle Time — Practical bottleneck elimination
- Deployment Frequency and Lead Time — DORA metrics for flow measurement
- Engineering Efficiency Guide — Broader efficiency optimization
Conclusion
Value stream mapping reveals the truth about your delivery process: most of your lead time is waiting, not working. By visualizing the entire flow from idea to production, you can identify the real bottlenecks—which are usually queue times and handoffs, not coding speed.
- Map your current state—you can't improve what you don't see
- Focus on wait time—that's where the biggest gains are
- Reduce batch size—smaller work flows faster
- Limit WIP—too much parallel work creates queues
- Eliminate handoffs—each one adds delay and errors
Start by using CodePulse to see your cycle time breakdown. Where is time being spent? If "waiting for review" is significant, that's your first improvement target. VSM turns guesswork into data-driven improvement.
"Improving flow efficiency from 20% to 40% cuts lead time in half—without anyone working harder. You just spend less time waiting."
See these insights for your team
CodePulse connects to your GitHub and shows you actionable engineering metrics in minutes. No complex setup required.
Free tier available. No credit card required.
Related Guides
The 4-Minute Diagnosis That Reveals Why Your PRs Are Stuck
Learn to diagnose exactly where your PRs are getting stuck by understanding the 4 components of cycle time and how to improve each one.
We Cut PR Cycle Time by 47%. Here's the Exact Playbook
A practical playbook for engineering managers to identify bottlenecks, improve review processes, and ship code faster—without sacrificing review quality.
Measuring Deploy Frequency Without CI/CD (The Hack That Works)
Master DORA deployment frequency and lead time using GitHub data alone, without requiring CI/CD pipeline access.
5 Silent Killers Destroying Your Engineering Efficiency
Learn how to measure and improve engineering efficiency without burning out your team. Covers the efficiency equation, bottleneck identification, and sustainable improvement.
