Velocity (software development)
Rate of software development progress
From Wikipedia, the free encyclopedia
Velocity is a term used to describe the rate at which software development progresses. For development teams that rely upon Issue Tracker software (e.g., Jira), it is often measured with Story Points[1]. However, since "the rate at which code evolves" is central to the success or failure of any software project, several different methods have been proposed to measure velocity. Many of these do not carry the time & coordination burden necessary to estimate Story Points[2].
When writing about velocity, agile practitioners emphasize the peril of relying on velocity as the sole means to evaluate developer performance[3]. They often cite Goodhart's Law[4]: that any measure which becomes a target ceases to be a good measure. However, because research continues to suggest that teams with higher velocity experience better outcomes[5], interest in the methods of velocity instrumentation persist.
In particular, the growing use of AI coding assistants has driven interest in velocity as a means to understand the impact of AI on the rate of software delivery. Data from 2026 suggests that the correlation between "greater AI use" and "higher velocity" is continuing to increase[6].
Principle
A central purpose of velocity is to help teams estimate how much work they can complete in a given time period. Since an average Agile Team's Sprint lasts around 2 weeks[7], interpreting "past velocity" is central to forecasting a "reasonable workload."
By analyzing past velocity of developers (whether in Story Points or other units), an Agile team can appropriate its Story Points per sprint to minimize slack or excess of issues assigned.
Whether measured in units of Story Points, Commits, or Issues Resolved, Velocity is a relative measure. In other words, the raw numbers carry little objective value; it is their trend that matters.[8]
Terminology
The following terminology is used in velocity tracking.
- Unit of work
- The unit chosen by the team to measure velocity. This can either be a real unit like engineer-hours, engineer-days or Product Backlog Items (PBI), or story points.[9] Each task in the software development process should then be valued in terms of the chosen unit.
- Interval
- The interval is the duration of each iteration in the software development process for which the velocity is measured. The length of an interval is determined by the team. Most often, the interval is a week, but it can be as long as a month.
Criticism
One problem with velocity is that it conflates work done with planning accuracy. In other words, a team can inflate velocity by estimating tasks more conservatively. If a team says that a task will take four hours or is worth 4 points instead of taking two hours or being worth two points, their velocity will look better (sometimes called point inflation).[10][11]
A second problem with velocity is that it does not take quality, alignment with user goals or priority into account. Velocity can be increased by neglecting good design, refactoring, coding standards and technical debt. Simply completing features as quickly as possible increases velocity regardless of quality. Similarly, velocity includes work done regardless of the benefits of that work. For example, building a feature no one wants or needs still counts as "work done” and completing a work unit which moves away from a user goal such as ease of use is movement in the opposite of the direction desired.[citation needed]
A third problem with velocity is that it is often misused as a measure of efficiency or team performance. Velocity is a metric of work done, not efficiency. Velocity can be increased by working overtime or adding team members, neither of which necessarily increase efficiency or performance.[citation needed]