Velocity is a capacity planning tool that is often used in Agile software development. To calculate velocity, a team first needs to evaluate each working item in units (e.g. user stories, tasks), and define the length of the iteration. During development, teams need to keep track of their progress. At the end of the iteration, they should count how many units of work were completed.
In Targetprocess, the time periods are defined as Iterations (Sprints) and Team Iterations. The estimated work items are User Stories and Bugs. Every Iteration and Team Iteration has a numeric field called Velocity.
How Velocity is calculated and set
Values to the field can be populated manually and semi-automatically.
Manual input is performed by Project managers and Scrum masters usually. Click the Iteration ID# to open the details popup and edit the Velocity field.
Semi-automatic population is usually initiated by these users as well - when they press Finish button within the sprint or iteration. The Targetprocess does the rest. It calculates a value and saves it into the Velocity field of the next iteration.
Velocity is calculated as total effort of all completed user stories in previous iteration. For example, in Iteration #1 you have ten user stories with total effort of 50 points. By the end of the iteration, eight of them are completed, with total effort of 46 points, and two of them are still in progress, with total effort of 4 points. Targetprocess saves 46 points as the Velocity for next Iteration #2.
In our public backlog we have Ideas related to future plans about improvements of Velocity calculation. We still gather feedback and votes from our users for them. For instance the following capabilities are not supported yet, but requested quite frequently:
- When Sprint is finished, fill in Velocity as moving average into next Sprint
- Auto-finish sprint and fill in velocity of the next sprint when all work in the sprint is done
- Set total Sprint/Release Velocity (Capacity limit) according to total team members availability and capacity in User Allocations. Allocations of users for sprints and releases
- Calculate total effort and capacity in Iterations and Releases separately by role, using User Allocations data
- Team iterations: support for different planning units in the same account
- Iteration / Team Iteration velocity: allow to set both points and hours limits
- Estimate Stories in points and Bugs / Defects in hours in the same process
How we recommend to use Velocity
Velocity can help you with Capacity planning and Reporting.
Plan Capacity using Velocity
For current and future iterations, Velocity can be used as general target goal for the whole scope of work. You can estimate how much work the team will be able to complete in the next Iteration using historical data as a basis for comparison. Velocity reached in the previous sprint or iteration can be set as the capacity limit for the next one. This will help you make a fair prediction about the true release date.
Average velocity is a useful long-term predictor rather than a predictor of what a team may complete in exactly the next iteration. The more stable your team and development process are, the longer period of time same people work together in the same conditions, the better is prediction probability.
Velocity is not the only tool that can be used for capacity planning in Targetprocess. Our features for Capacity Calculation and People Capacity might also serve your needs. These features use personal allocation data to calculate capacity for iterations, team iterations, and releases. In the meantime, the concept of Velocity in Targetprocess stands completely independent of allocations (at the moment).
Track and measure your efficiency and estimation accuracy using Reports based on Velocity
You can measure how much effort was dedicated to work by the team over past iterations and evaluate your estimation accuracy. It is possible to compare manually set Velocity (initial estimation), estimated Effort and actually spent time for every Iteration and Team Iteration.
It is recommended that you use Iterations of equal duration for efficient velocity calculation.
Using Velocity as Capacity on views
The board views called Iteration Plan and Team Iteration Plan can help you to plan Iterations and assign work to them. You can view Iteration Velocity right on the board (in the column header) and control Iteration scope. This helps you to fully utilize planned capacity. There's no need to have an exact Velocity match; it is more about team commitment. For example, let’s say you have an 80 point velocity, but the team commits to ship 100 points in the next Iteration. If this is the team’s decision, the Scrum Master should not interfere, but accept it and help them achieve this goal.
Capacity counters are not displayed in Team Iteration lane headers when Team is selected as other lane on the same board view.
Reports on Velocity
It is possible to create a Visual Report that shows how many points or hours of Effort your team completes per unit of time (e.g. per week, month, Sprint or Iteration). The report may include user stories only or bugs as well. Visual reports can group and summarize effort per high-level scope of work (Feature, Epic, Sprint or Iteration, Release, Project), per person, per Role. Visual reports show data in form of charts and can be exported to tabular CSV files.
More information: Report for total completed Effort / Velocity
Templates for Velocity reports
The following predefined templates for Visual Reports by Effort are available:
- Iterations Velocity Trend: How Iterations velocity changes over time
- Team Iterations Velocity Trend: How Team Iterations velocity changes over time
Tracking and reporting estimation accuracy
Estimation Accuracy reports help to compare total estimated effort and total time spent. It is an important metric for each agile team. It improves estimates and overall project planning.
It is possible to compare manually set Velocity, estimated Effort and actually spent time for every Iteration and Team Iteration. Build a tabular custom report with summarized effort of all assigned work items using Summary Columns.
More details: Estimation Accuracy Reports