Velocity is a term used in agile software development to illustrate the “rate of progress” for a team or a set of teams (i.e. a project/program).
The simplest way to define velocity is: the number or user stories a team/project can do in one sprint (“do” here means that it really is done and potentially ready to ship).
Without the use of velocity you would not be able to draw your teams’s burndown, as velocity is the slope of the burndown curve, i.e. how fast are you burning down the stories (or story points or hours) that you committed to for the ongoing sprint.
At a project/progam level, velocity is the rate at which the whole project is burning the User Stories (or requirements) from the backlog.
Also, without knowing your team/project’s velocity you can not make longer term planning (over 1 sprint) or even release planning. Hence the importance of knowing your velocity!
In the first 1 or 2 sprints that you run, you will have to estimate your team/project’s velocity as you don’t have enough data to project your past performance into the future. However, after 3-4 sprints you should start using an average of your past velocity to plan the future and update the release plan.
Note that velocity is a range, not an exact number. For example, if you have developed 2, 5 and 4 stories respectively in your past 3 sprints, then you know that your velocity is 2-5, not 3 or 4. This range will allow you to communicate your best case scenario and your worst case scenario to your stakeholders instead of committing to one single number that is most likely wrong. Always use velocity as a range when communicating outside your team.
In short, velocity is how fast you are developing your software.
My thinking on velocity and Agile Estimation has evolved
If you want to know what I have learned since I wrote this article, check out my #NoEstimates white paper and the following articles:
- Simple estimation techniques work! Use the data you already have
- Story Points considered harmful, or why the future of estimation is really in our past
- A better way to predict project release date
- Focus on what matters, a #NoEstimates advocacy post
- The #NoEstimates how to