Sprint Planning Accuracy | Velocity-Based Commitment
Hit 90%+ sprint completion with velocity-based planning, task decomposition, and buffer strategies. Track estimated vs actual to calibrate over time.
7 min read
Sprint planning accuracy determines whether you deliver what you committed or constantly miss targets. Accurate planning builds trust with stakeholders, enables reliable forecasting, and creates sustainable pace. It requires data, discipline, and continuous calibration.
Planning Accuracy Problems
| Problem | Cause | Solution |
|---|---|---|
| Over-commit | Optimism bias | Use historical velocity |
| Unfinished work | Scope creep | Protect commitment |
| Constant surprises | Unknown work | Add buffer |
| Inaccurate estimates | No feedback loop | Track actual vs. estimate |
Estimation Improvement
Using Historical Data
VELOCITY-BASED PLANNING
βββββββββββββββββββββββ
HISTORICAL VELOCITY:
βββββββββββββββββββββββββββββββββββββ
Sprint Committed Completed Rate
ββββββββββββββββββββββββββββββββββββ
20 35 32 91%
21 38 29 76%
22 32 30 94%
23 34 33 97%
24 36 31 86%
25 33 32 97%
βββββββββββββββββββββββββββββββββββββ
Average velocity: 31 points
Standard deviation: 1.5 points
Reliable capacity: 30 points (avg - 1 std)
NEXT SPRINT PLANNING:
βββ Don't commit > 30 points
βββ If uncertain items, commit less
βββ Leave room for surprises
βββ 30 points = realistic commitment
VELOCITY TREND:
βββ Stable: Use average
βββ Improving: Use recent average (last 3)
βββ Declining: Investigate root cause
βββ Erratic: Use lowest recent
Task Decomposition
BREAKING DOWN WORK
ββββββββββββββββββ
BEFORE:
βββββββββββββββββββββββββββββββββββββ
User Story: "User login"
Estimate: 13 points (large, vague)
Accuracy: Poor (too big to estimate)
AFTER (decomposed):
βββββββββββββββββββββββββββββββββββββ
"Login - UI form" 3 pts
"Login - API endpoint" 3 pts
"Login - validation" 2 pts
"Login - error handling" 2 pts
"Login - tests" 2 pts
"Login - integration" 1 pt
βββββββββββββββββββββββββββββββββββββ
Total: 13 points (same, but accurate)
WHY BETTER:
βββ Each piece is understood
βββ Hidden complexity exposed
βββ Can verify each part
βββ Better tracking
βββ Easier to parallelize
DECOMPOSITION RULES:
βββ No item > 5 points
βββ Each item ships independently
βββ Clear acceptance criteria each
βββ Estimable in < 2 minutes
βββ Complete in 1-2 days
Estimation Calibration
ESTIMATE CALIBRATION
ββββββββββββββββββββ
TRACK FOR EACH TASK:
βββ Estimate (points or hours)
βββ Actual time spent
βββ Calculate ratio
EXAMPLE TRACKING:
βββββββββββββββββββββββββββββββββββββ
Task Estimate Actual Ratio
βββββββββββββββββββββββββββββββββββββ
GS-123 3 pts 4.5 hrs 1.5x
GS-124 2 pts 2 hrs 1.0x
GS-125 5 pts 9 hrs 1.8x
GS-126 3 pts 3 hrs 1.0x
βββββββββββββββββββββββββββββββββββββ
Average ratio: 1.3x
CALIBRATION:
βββ Team underestimates by 1.3x
βββ Apply factor to future estimates
βββ Or acknowledge in capacity planning
βββ Improve over time
FEEDBACK LOOP:
1. Estimate before work
2. Track actual during work
3. Compare at sprint end
4. Discuss in retro
5. Adjust technique
6. Repeat
Capacity Planning
Realistic Capacity
TRUE CAPACITY CALCULATION
βββββββββββββββββββββββββ
STARTING POINT:
βββ 5 developers
βββ 10 working days (2-week sprint)
βββ 8 hours/day
βββ Total: 400 hours (theoretical)
SUBTRACT OVERHEAD:
βββββββββββββββββββββββββββββββββββββ
Meetings per developer: -16h
βββ Daily standup: 5h (15min Γ 10d Γ 2)
βββ Sprint planning: 2h
βββ Sprint review: 1h
βββ Retrospective: 1h
βββ 1:1 meetings: 2h
βββ Other meetings: 5h
Per developer non-coding: -8h
βββ Email/Slack: 5h
βββ Context switching: 3h
Total overhead per person: 24h
For 5 developers: 120h
βββββββββββββββββββββββββββββββββββββ
Productive capacity: 400 - 120 = 280h
FURTHER ADJUST:
βββ PTO this sprint: -16h (1 person, 2 days)
βββ Holidays: 0
βββ Support rotation: -8h
βββ Adjusted: 256h
PLAN AT 80%:
256h Γ 0.8 = 205h plannable
= ~41h per developer
= ~5 days actual coding
MUCH LESS THAN 8h Γ 10 DAYS!
Buffer for Unknowns
BUILDING IN BUFFER
ββββββββββββββββββ
BUFFER TYPES:
βββββββββββββββββββββββββββββββββββββ
1. ESTIMATION BUFFER (20%)
βββ Estimates are optimistic
βββ Hidden complexity
βββ Apply to each estimate
2. SPRINT BUFFER (10-15%)
βββ Unexpected work
βββ Production issues
βββ Urgent requests
βββ Don't fill to 100%
3. RISK BUFFER (variable)
βββ New technology: +20%
βββ Unclear requirements: +30%
βββ External dependency: +20%
βββ New team member: +15%
APPLICATION:
βββββββββββββββββββββββββββββββββββββ
Capacity: 40 points
Committed work: 32 points (80%)
βββ Known work: 25 points
βββ Estimation buffer: 5 points (20%)
βββ Sprint buffer: 2 points
Remaining: 8 points (20%)
βββ For urgent unplanned work
βββ For carrying forward if needed
βββ Not committed, aspirational
Sprint Protection
Scope Management
PROTECTING SPRINT SCOPE
βββββββββββββββββββββββ
COMMITMENT = CONTRACT
βββββββββββββββββββββββββββββββββββββ
At sprint planning:
βββ Team commits to specific items
βββ Stakeholders accept commitment
βββ Changes require negotiation
βββ Not a one-way addition
CHANGE PROCESS:
βββββββββββββββββββββββββββββββββββββ
New request during sprint:
1. "Is it urgent? (Production down, etc.)"
βββ If yes: Add, something else drops
βββ If no: Goes to next sprint
2. "If urgent, what gets removed?"
βββ Equal or greater scope
βββ Requester decides priority
βββ No free additions
3. Document the swap
βββ Added: GS-789 (urgent bug)
βββ Removed: GS-234 (moved to next)
βββ Reason: Customer-facing issue
SAYING NO:
βββ "Sprint is committed. Next sprint?"
βββ "We can add this if X drops."
βββ "Let's discuss in planning."
βββ Protect the team
Carryover Management
HANDLING CARRYOVER
ββββββββββββββββββ
IDEAL: No carryover
REALITY: Sometimes happens
IF CARRYOVER OCCURS:
βββββββββββββββββββββββββββββββββββββ
1. ANALYZE IN RETRO
βββ Why wasn't it completed?
βββ Estimate wrong?
βββ Blocked?
βββ Scope crept?
βββ Understand root cause
2. DECIDE FATE
βββ Must complete: Carry forward
βββ Can wait: Reprioritize
βββ Obsolete: Close/archive
βββ Don't auto-carry everything
3. ADJUST NEXT SPRINT
βββ Carried work is first priority
βββ Reduce new commitment
βββ Account for partial work done
βββ Don't overload
TRACKING:
βββ Carryover rate per sprint
βββ Trend: Should decrease over time
βββ Target: < 10% of commitment
βββ Action if consistently high
GitScrum for Planning
Planning Features
GITSCRUM PLANNING TOOLS
βββββββββββββββββββββββ
VELOCITY DASHBOARD:
βββ Last 6 sprints velocity
βββ Trend visualization
βββ Recommended commitment
βββ Capacity calculator
SPRINT PLANNING VIEW:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Sprint 26 Planning β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β CAPACITY β
β Average velocity: 31 pts β
β Team availability: 90% (PTO adjustment) β
β Recommended: 28 pts β
β β
β COMMITTED: 26 pts (93% of recommended) β
β ββββββββββββββββββββββββββββββββββββββββββββββββ β
β [GS-300] Login redesign 8 pts β
β [GS-301] API performance 5 pts β
β [GS-302] Bug fixes 5 pts β
β [GS-303] Dashboard update 5 pts β
β [GS-304] Documentation 3 pts β
β β
β STATUS: β Within capacity β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ESTIMATION ACCURACY:
βββ Track estimate vs. actual
βββ Calibration factor
βββ Team-level trends
βββ Individual insights (optional)
Best Practices
For Sprint Planning
Anti-Patterns
PLANNING MISTAKES:
β Ignoring historical velocity
β 100% capacity planning
β Large vague stories
β No buffer for unknowns
β Adding without removing
β Not tracking accuracy
β Same mistakes each sprint
β Optimism over data