GitScrum / Docs
All Best Practices

Velocity Tracking and Improvement | Planning Guide

Measure and improve team velocity for predictable planning. GitScrum tracks sprint trends, commitment vs completed, and sustainable improvement patterns.

7 min read

Velocity measures how much work a team completes per sprint. It's a planning tool, not a performance metric. Understanding velocity helps teams commit to achievable work and stakeholders set realistic expectations. Improving velocity means removing friction, not working harder.

Understanding Velocity

What Velocity Is

VELOCITY FUNDAMENTALS
═════════════════════

DEFINITION:
─────────────────────────────────────
Velocity = Story Points completed per sprint

Example:
β”œβ”€β”€ Sprint 1: 34 points
β”œβ”€β”€ Sprint 2: 28 points
β”œβ”€β”€ Sprint 3: 32 points
β”œβ”€β”€ Sprint 4: 30 points
└── Average velocity: 31 points

WHAT VELOCITY IS:
─────────────────────────────────────
βœ“ Planning tool ("Can we commit to this?")
βœ“ Capacity indicator ("How much can we do?")
βœ“ Trend tracker ("Are we improving?")
βœ“ Team-specific measure
βœ“ Relative measure

WHAT VELOCITY IS NOT:
─────────────────────────────────────
βœ— Performance metric
βœ— Productivity measure
βœ— Comparable between teams
βœ— Absolute measure
βœ— Target to maximize
βœ— Individual metric

VELOCITY RANGE:
─────────────────────────────────────
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Team Alpha Velocity                                   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                         β”‚
β”‚  45 ─                                                  β”‚
β”‚     β”‚                        β—† High: 38                β”‚
β”‚  35 ─          β—†      ◆──────────── Average: 31       β”‚
β”‚     β”‚      β—†       β—†      β—†                           β”‚
β”‚  25 ─  β—†      β—†                     β—† Low: 24         β”‚
β”‚     β”‚                                                   β”‚
β”‚  15 ─                                                  β”‚
β”‚     └──────────────────────────────────────────────────│
β”‚       S1  S2  S3  S4  S5  S6  S7  S8  S9  S10         β”‚
β”‚                                                         β”‚
β”‚  Average: 31 pts  |  Range: 24-38  |  Variance: Β±22%  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Use RANGE for planning, not just average.
Expect varianceβ€”it's normal.

Using Velocity

VELOCITY FOR PLANNING
═════════════════════

SPRINT COMMITMENT:
─────────────────────────────────────
Step 1: Know your velocity
β”œβ”€β”€ Last 3 sprints: 32, 28, 34
β”œβ”€β”€ Average: 31 points
β”œβ”€β”€ Range: 28-34
└── Commit: 28-31 points (conservative)

Step 2: Account for factors
β”œβ”€β”€ Holiday week? Reduce 20%
β”œβ”€β”€ Team member out? Reduce proportionally
β”œβ”€β”€ New team members? Reduce for onboarding
└── Adjusted: 25 points

Step 3: Pull from backlog
β”œβ”€β”€ Pull highest priority items
β”œβ”€β”€ Until you hit capacity
β”œβ”€β”€ Leave buffer for surprises
└── Don't exceed adjusted velocity

LONG-RANGE PLANNING:
─────────────────────────────────────
Release planning example:
β”œβ”€β”€ Remaining backlog: 180 points
β”œβ”€β”€ Average velocity: 30 points
β”œβ”€β”€ Sprints needed: 180 Γ· 30 = 6 sprints
β”œβ”€β”€ Buffer (10%): +1 sprint
β”œβ”€β”€ Estimate: 7 sprints (14 weeks)
└── Communicate as range, not promise

Present as:
"Based on current velocity, we estimate
6-8 sprints. We'll update as we learn more."

Tracking Velocity

Measurement

VELOCITY TRACKING
═════════════════

WHAT COUNTS:
─────────────────────────────────────
Count as complete:
β”œβ”€β”€ Meets Definition of Done
β”œβ”€β”€ Potentially shippable
β”œβ”€β”€ Accepted by PO
└── Full story points

Don't count:
β”œβ”€β”€ Partially done (0 points, not fraction)
β”œβ”€β”€ "Almost done"
β”œβ”€β”€ Tested but not deployed (if deploy = done)
β”œβ”€β”€ Carried over to next sprint
└── Scope added mid-sprint

TRACKING IN GITSCRUM:
─────────────────────────────────────
Sprint β†’ Close Sprint β†’ Velocity recorded

Dashboard shows:
β”œβ”€β”€ Velocity per sprint
β”œβ”€β”€ Trend over time
β”œβ”€β”€ Average velocity
β”œβ”€β”€ Variance
└── Commitment vs. completed

VELOCITY TREND:
─────────────────────────────────────
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Velocity Trend (12 sprints)                           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                         β”‚
β”‚  40 ─                               β—†  β—†               β”‚
β”‚     β”‚                          β—† β—†                     β”‚
β”‚  30 ─           β—†  β—†  β—†  β—†  β—†                         β”‚
β”‚     β”‚      β—†  β—†                                        β”‚
β”‚  20 ─  β—†  β—†                                           β”‚
β”‚     β”‚                                                   β”‚
β”‚  10 ─                                                  β”‚
β”‚     └──────────────────────────────────────────────────│
β”‚       Formation β†’  Stabilizing β†’  Improving β†’          β”‚
β”‚                                                         β”‚
β”‚  β†— Trend: Improving (+2 pts/sprint)                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Early sprints: Low (learning)
Middle: Stabilizing
Later: May improve as team matures

Improving Velocity

Legitimate Improvements

HOW TO IMPROVE VELOCITY
═══════════════════════

SUSTAINABLE IMPROVEMENT:
─────────────────────────────────────
Velocity improves through:

1. REMOVE BLOCKERS
   β”œβ”€β”€ Faster code review turnaround
   β”œβ”€β”€ Quicker stakeholder decisions
   β”œβ”€β”€ Better tooling
   β”œβ”€β”€ Clearer requirements
   └── Visible in retros

2. REDUCE WASTE
   β”œβ”€β”€ Fewer unnecessary meetings
   β”œβ”€β”€ Less context switching
   β”œβ”€β”€ Reduced rework
   β”œβ”€β”€ Smaller batch sizes
   └── Better definition of ready

3. IMPROVE PROCESS
   β”œβ”€β”€ Better testing practices
   β”œβ”€β”€ CI/CD improvements
   β”œβ”€β”€ More effective ceremonies
   β”œβ”€β”€ Clearer Definition of Done
   └── Collaborative refinement

4. REDUCE TECHNICAL DEBT
   β”œβ”€β”€ Easier codebase = faster work
   β”œβ”€β”€ Fewer bugs = less rework
   β”œβ”€β”€ Better architecture = faster features
   └── Investment pays off over time

5. TEAM GROWTH
   β”œβ”€β”€ More experience
   β”œβ”€β”€ Better collaboration
   β”œβ”€β”€ Skills development
   β”œβ”€β”€ Domain knowledge
   └── Natural over time

NOT SUSTAINABLE:
─────────────────────────────────────
βœ— Working overtime
βœ— Cutting quality
βœ— Skipping tests
βœ— Reducing estimates to "get more done"
βœ— Pressure to hit targets

Finding Improvement Opportunities

VELOCITY IMPROVEMENT ANALYSIS
═════════════════════════════

USE RETROSPECTIVES:
─────────────────────────────────────
Ask:
"What slowed us down this sprint?"
"Where did we wait?"
"What would we do differently?"

Common answers that improve velocity:
β”œβ”€β”€ "Waiting for code review"
β”‚   β†’ Implement review SLA
β”‚
β”œβ”€β”€ "Requirements were unclear"
β”‚   β†’ Improve refinement
β”‚
β”œβ”€β”€ "Deployment took forever"
β”‚   β†’ Invest in CI/CD
β”‚
β”œβ”€β”€ "Meetings fragmented my day"
β”‚   β†’ Meeting-free blocks
β”‚
└── "Bugs in legacy code"
    β†’ Address technical debt

USE METRICS:
─────────────────────────────────────
Cycle time by stage:
β”œβ”€β”€ Development: 2 days (expected)
β”œβ”€β”€ Code Review: 3 days (too long!)
β”œβ”€β”€ Testing: 1 day (expected)
β”œβ”€β”€ Deploy: 2 days (too long!)
└── Total: 8 days

Target improvements where wait is longest.

WIP ANALYSIS:
─────────────────────────────────────
High WIP = Low throughput
β”œβ”€β”€ Too much in progress
β”œβ”€β”€ Context switching overhead
β”œβ”€β”€ Nothing finishing
└── Reduce WIP limits

Velocity Antipatterns

What to Avoid

VELOCITY ANTIPATTERNS
═════════════════════

USING VELOCITY AS TARGET:
─────────────────────────────────────
"Your velocity needs to be 40 by next quarter."

Result:
β”œβ”€β”€ Inflated estimates
β”œβ”€β”€ Cut quality
β”œβ”€β”€ Gaming metrics
β”œβ”€β”€ Trust destroyed
β”œβ”€β”€ Real velocity hidden
└── Worse outcomes

COMPARING TEAM VELOCITIES:
─────────────────────────────────────
"Team A does 50 points, why can't you?"

Problem:
β”œβ”€β”€ Different estimation scales
β”œβ”€β”€ Different work types
β”œβ”€β”€ Different team sizes
β”œβ”€β”€ Points are relative, not absolute
└── Comparison is meaningless

FOCUS INSTEAD ON:
β”œβ”€β”€ Each team's trend (improving?)
β”œβ”€β”€ Predictability (consistent?)
β”œβ”€β”€ Outcomes (value delivered?)
└── Team health (sustainable?)

PARTIAL CREDIT:
─────────────────────────────────────
"Story 80% done, count 80% of points."

Problem:
β”œβ”€β”€ 80% done often means 50% work left
β”œβ”€β”€ Inflates velocity artificially
β”œβ”€β”€ Encourages partial completion
β”œβ”€β”€ Hiding incomplete work
└── Unpredictable

Rule: Done or not done.
Not done = 0 points this sprint.

GitScrum Velocity

Velocity Features

GITSCRUM VELOCITY TOOLS
═══════════════════════

VELOCITY CHART:
─────────────────────────────────────
Reports β†’ Velocity

Shows:
β”œβ”€β”€ Committed vs. completed per sprint
β”œβ”€β”€ Running average
β”œβ”€β”€ Trend line
β”œβ”€β”€ Variance indicator
└── Export for reporting

SPRINT PLANNING:
─────────────────────────────────────
While adding to sprint:
β”œβ”€β”€ Shows running points total
β”œβ”€β”€ Compares to average velocity
β”œβ”€β”€ Warning if exceeding capacity
β”œβ”€β”€ Suggests realistic commitment
└── Historical context

RELEASE PLANNING:
─────────────────────────────────────
Roadmap β†’ Release

Based on velocity:
β”œβ”€β”€ Projected completion date
β”œβ”€β”€ Confidence range
β”œβ”€β”€ What fits in release
β”œβ”€β”€ Trade-off visibility
└── Stakeholder planning

VELOCITY SETTINGS:
─────────────────────────────────────
Configure:
β”œβ”€β”€ Sprints for average (3-5 typical)
β”œβ”€β”€ Show/hide variance
β”œβ”€β”€ Include specific sprints
β”œβ”€β”€ Export data
└── Dashboard widgets

Best Practices

For Velocity

  • Consistency over speed β€” Predictable velocity helps planning
  • For planning only β€” Not performance measurement
  • Team-specific β€” Never compare between teams
  • Sustainable pace β€” Overtime kills velocity long-term
  • Improve through removing friction β€” Not working harder
  • Anti-Patterns

    VELOCITY MISTAKES:
    βœ— Velocity as performance metric
    βœ— Comparing team velocities
    βœ— "Increase velocity 20%"
    βœ— Partial point counting
    βœ— Overtime to hit target
    βœ— Cutting quality for speed
    βœ— Inflating estimates
    βœ— Ignoring variance
    

    Related Solutions