Velocity (software development)

Velocity is a measure of productivity sometimes used in Agile software development. Velocity tracking is the act of measuring said velocity. The velocity is calculated by counting the number of units of work completed in a certain interval, determined at the start of the project[1].

Contents

Principle

The main idea behind velocity is to provide a lightweight methodology of measuring the pace at which a team is working and to assist in estimating the time needed to produce additional value in a software[2]. Measuring velocity also helps in providing additional information about a team's performance over time.

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 hours or days or an abstract unit like story points or ideal days[3]. 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.

Usage

To calculate velocity, a team first has to determine how many units of work each tasks are worth and the length of each interval. During development, the team has to keep track of completed tasks and, at the end of the interval, count the number of units of work completed during the interval. The team then writes down the calculated velocity in a chart or on a graph.

The first week provides little value, but is essential to provide a basis for comparison[4]. Each week after that, the velocity tracking will provide better information as the team provides better estimates and becomes more used to the methodology.

References