Velocity
In short
Velocity is the amount of work an Agile team completes in one sprint, usually the total story points of finished items, used to forecast future sprints.
What is velocity in Agile?
Velocity measures how much work a team finishes in a sprint. It is usually calculated by adding up the story points of every item that met the Definition of Done by the end of the sprint. If a team completes stories worth 5, 8, 3, and 5 points, its velocity for that sprint is 21, and items that are only partly finished count as zero.
Teams track velocity over several sprints and use an average of the last three or so as a forecast. In sprint planning it helps the team judge how much work to take on, and in release planning, dividing the remaining backlog points by the average velocity gives a rough number of sprints: 120 points at about 20 points per sprint is roughly six sprints. A range, such as 16 to 24 points, is more honest than a single number, because velocity naturally changes when people join or leave, holidays come, or the sprint length changes.
Velocity is like a car's average speed on a road trip: it helps you estimate when you will arrive, but it depends on the car and the road, and pressing harder on the speedometer display doesn't make the trip shorter. Many teams show it on a velocity chart, with one bar per sprint for the points planned and the points actually completed.
Velocity is a planning tool, not a productivity score. Because story points are relative and specific to each team, comparing velocity between teams is meaningless, and pushing a team to raise it usually just inflates the estimates, an example of Goodhart's law: when a measure becomes a target, it stops being a good measure. Velocity is also different from story points themselves, which are the unit of estimation, and from throughput in Kanban, which counts finished items per week instead of points.
Key takeaways
- Velocity is the total estimate of work completed in one sprint.
- Only items that meet the Definition of Done count.
- An average of recent sprints is used to forecast future work.
- Velocity is specific to one team and should not be compared across teams.
- Treating velocity as a target leads to inflated estimates.
Example
# Story points completed (meeting the Definition of Done) in recent sprints
completed = {"sprint_11": 18, "sprint_12": 23, "sprint_13": 20, "sprint_14": 21}
last_three = list(completed.values())[-3:]
velocity = sum(last_three) / len(last_three) # rolling average: 21.3
remaining_backlog_points = 128
sprints_left = remaining_backlog_points / velocity # about 6 sprints
print(f"Velocity: {velocity:.1f} points per sprint")
print(f"Range: {min(last_three)}-{max(last_three)} points, about {sprints_left:.0f} sprints left")Readers ask
How is velocity calculated?
Add up the estimates, usually story points, of all items the team fully completed during the sprint. Unfinished items are not counted, and the average over several sprints is more useful than any single value.
Should managers use velocity to measure productivity?
No. Velocity depends on how each team estimates, so it can't be compared across teams, and using it as a target encourages inflated estimates. It is meant to help the team plan.
What is the difference between velocity and capacity?
Velocity is how much work the team actually completed in past sprints. Capacity is how much time the team has available in the coming sprint, which may be lower because of holidays or other commitments.
See also
- Story PointsTeams & Process, p. 28Story points are a unit Agile teams use to estimate the relative size of work items, combining complexity, amount of work, and uncertainty rather than hours.
- Burndown ChartTeams & Process, p. 3A burndown chart is a graph that shows how much work remains in a sprint or release over time, so a team can see at a glance whether it is on track to finish.
- SprintTeams & Process, p. 26A sprint is a fixed-length period of one month or less, often two weeks, in which a Scrum team works toward one goal and produces a usable product increment.
- ScrumTeams & Process, p. 21Scrum is an Agile framework in which a small team delivers a product in fixed-length cycles called sprints, using defined roles, events, and artifacts.
- Definition of DoneTeams & Process, p. 7The Definition of Done is a shared checklist of quality standards that every piece of work must meet before a team can consider it complete.
- KanbanTeams & Process, p. 10Kanban is an Agile method that visualizes work on a board of columns and limits how many items can be in progress at once to keep work flowing smoothly.
Spotted a mistake or something missing on this page?Suggest an edit