Skip to content

Velocity: Measuring and Planning an Agile Project

December 10, 2007 by Jeremy Weiskotten


Bridgekeeper: “What is the velocity of an unladen swallow?”
King Arthur: “An African or European swallow?”
Bridgekeeper: “Huh? I don’t know that…”

- Monty Python and the Holy Grail

One of the most important metrics of an Agile team is its velocity. (No, you don't have to give the receptionist a stopwatch and do laps around your office.) In project management terms, velocity is the amount of work that a team can complete in a specified period of time.

The "amount of work" is the total number of story points if the team estimates by size, or the total number of "ideal hours” spent on tasks. All acceptance criteria must be met in order for a story to be considered “complete”. The "specified period of time" is usually an iteration between one and four weeks long.

Velocity is simply work divided by time — story points per iteration or ideal hours per iteration.

Velocity gives you an idea of how much work can realistically be completed in an iteration, and by estimating the size of your story backlog, you can determine with relative accuracy when you will meet your project’s milestones, including final release. Without determining the team’s velocity and estimating the backlog based on real experience, project and iteration planning is harder to do and less accurate.

It’s easy to get started.

If you’re just getting started with Agile, stories, story points, velocity, etc., you probably have no idea what your velocity is or should be. Every team is different, and every team estimates differently, so there’s no formula. However, once you’ve completed your first iteration you can compute the velocity for that iteration in just a couple of minutes to establish a baseline.

A team should recalculate its velocity at the end of each iteration and compare it with past results. Depending on the answer, you might have to face some interesting questions:

Is the team getting faster or slower? If so, why is the velocity changing, and should we expect the change to be temporary or permanent?

Velocity is naturally affected by resource fluctuations: team members get sick, take vacation, or get shipped off for training. If a productive team member retires or moves on to another opportunity, the team’s velocity will almost certainly suffer, and if you choose to fill that person’s seat, some team members might be called upon to review resumes and screen and interview candidates. New hires usually cause a temporary drain on resources – until they get up to speed your overall velocity may go down for an iteration or two because experienced team members will spend time teaching the new fish about the domain, development environment, team/company standards and values, and existing code.

A big increase in velocity can look good on paper, but it may not be a good sign. It might indicate that some estimates were too high (use revised estimates that are closer to the “actual” experienced) or just that your math was wrong (it happens). It might also indicate that at least some of the team is burning the midnight oil – maintaining a sustainable pace and encouraging a good work/life balance are important in avoiding burnout.

What was the margin of error of our estimates, and is it getting larger or smaller? A smaller margin of error indicates better estimates and a more accurate overall project plan. A larger margin of error reduces the certainty that you will hit milestones down the road on schedule. Don’t be afraid to revise estimates during an iteration as you learn more, and remember to keep estimates in the backlog current as well. Reflecting this new knowledge back to the project schedule allows you to raise concerns as early as possible.

Is our velocity good enough to satisfy business requirements? Deadlines are a reality in almost every environment. If we can’t sacrifice features, how can your team do more work in the same amount of time without sacrificing quality? Are we spending too much time on up-front design, in meetings that can be avoided, or waiting for dependencies to fall into place? Do we need to hire more people, or just an expert in a particular area?

Conclusion

Knowing and understanding your team's velocity allows you to make commitments with confidence. It's easy to calculate, so do it often and track the performance of your team over time as a sanity check with your schedule.

About the Author:

Comments

Well said

December 10, 2007 by Tote (not verified), 5 years 23 weeks ago
Comment id: 1400

Hi,

Very useful post, thanks for sharing!

Short and to the point :)

February 3, 2008 by Dave (not verified), 5 years 15 weeks ago
Comment id: 1447

Short and to the point :)

how much detail in velocity measurement?

September 1, 2008 by Jim Knoke (not verified), 4 years 37 weeks ago
Comment id: 1825

In order to get the most accurate velocity measurement, should a scrum master or team leader keep track of all hours NOT spent on a story? For example: sick time, vacation time, time spent helping other teams, time spent at HR meetings, time spent on tasks that were judged important but which did not map back to the stories for the iteration.....

If we should keep track of this "non-story" time, in how much detail?

Or do we just assume that after a few iterations, all this stuff averages out for the whole team, with different distractions hitting different individuals in such a way that it will al level out?

Velocity = story points per sprint

September 1, 2008 by Artem, 4 years 37 weeks ago
Comment id: 1827

Jim, in Scrum velocity is just a number of story points (or ideal days) per sprint. It has little to do with the real time and amount of hours spent on meetings and sick lives. Naturally these things are related and the team might like examining them if their velocity is very unstable, however, velocity itself is a Product Owner facing artifact.

Product Owner needs to know the team velocity in order to make the release related decisions. For example, if there are 100 story points of work in the product backlog and the team velocity is usually around 15-20, PO can expect that 5-7 sprints are needed in order to complete his requests and can make the business decisions based on that information. For instance, if the mobile phone industry trade show is 3 sprints ahead, he can reprioritize the stories so that iPhone facing features were developed first instead of last as was originally planned.

Given that Agile software

March 2, 2012 by NOnn (not verified), 1 year 11 weeks ago
Comment id: 21151

Given that Agile software development is constantly allowing for users to test and comment on the system. before it is handed over at the end of a traditional waterfall project. how is the user considered left out?
The useability isn't at the end of the day. up to the developers. If the customer is not happy with it. they will being it up at the end of the iteration and this can be resolved.
Maybe I am missing the point of the post? sosh forfait sans engagement forfait illimite sms illimite forfait mobile internet forfait bloque rio bouygues rio orange rio sfr rio bouygues numero rio virgin calcul imc portabilite du numero

Thank you for this episode

May 22, 2012 by JennyH830 (not verified), 51 weeks 6 days ago
Comment id: 22322

Thank you for this episode and the last one as well. I feel that those two two episodes explain important contributions to the search of identity and meaning in our field. The software craftsmanship manifesto in particular is a valuable contribution to the discourse about ethical behaviour of IT professionals. I believe that it is relevant even to those software professionals that don't believe that craftsmanship is the right metaphor to capture the essence of our profession. rio b and you

If you’re just getting

January 11, 2013 by Anonymous (not verified), 18 weeks 4 days ago
Comment id: 25355

If you’re just getting started with Agile, stories, story points, velocity, etc., you probably have no idea what your velocity is or should be. Every team is different, and every team estimates differently, so there’s no formula. However, once you’ve completed your first iteration you can compute the velocity for that iteration in just a couple of minutes to establish a baseline.

katalog stron
salon sukien ślubnych warszawa
katalog stron
suknie ślubne
http://www.e-zwd.pl
http://www.e-zawady.pl

Velocity gives you an idea of

March 4, 2013 by Anonymous (not verified), 11 weeks 1 day ago
Comment id: 26571

Velocity gives you an idea of how much work can realistically be completed in an iteration, and by estimating the size of your story backlog, you can determine with relative accuracy when you will meet your project’s milestones, including final release. Without determining the team’s velocity and estimating the backlog based on real experience, project and iteration planning is harder to do and less accurate.
e-papierosy
e-papierosy
e-papierosy
e-papierosy
e-papierosy
e-papierosy
e-papierosy
e-papierosy

Velocity Confusion

May 3, 2013 by Dave Limbaugh (not verified), 2 weeks 4 days ago
Comment id: 27364

As stated, velocity is meant to be a measure used to estimate completion of a project or a release. But it is also often treated as a measure of the team's capacity/throughput/ability. For example, a team does three sprints with an average of 200 points. Then in sprint 4 their velocity drops to 150 points. Gee! The burndown chart looks bad. Management asks: What happened? Is this a problem? Did the team get less productive? Maybe, but it could be that half of the team was at a conference. So their velocity to complete work on the *project* did drop (hopefully this was planned for in advance!) but that does not mean their ability to code/test/debug/etc changed.

Showing velocity changes and how they affect the projected project completion may not tell the complete story.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <b> <i> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <br> <blockquote>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".

More information about formatting options

By submitting this form, you accept the Mollom privacy policy.

Best of AgileSoftwareDevelopment.com