Articles + Research

Calculating Velocity: A Free Open Source Tool!

Updated: Aug 14

Calculating the team velocity in agile is easy...in a perfect world. Unfortunately, we operate in an imperfect world. I created a velocity tool to help in those imperfect times.


What is Velocity?


Velocity is the total amount of effort (or story) points completed after an iteration (sprint). Simple right? You plan to complete 50 points, but complete 48 points; therefore, 48 points is your velocity for that iteration. If you track it that way over multiple sprints, you can start to gauge your team's true velocity. Having this number is a great starting point to plan your iterations.


Easy right?


What about those extra meetings outside of planning, reviews, grooming, etc. that are already planned into your iterations? What about time off? What about those pesky bugs that need to be addressed? Oh, and those rollover points (2 in our example above). That planned effort of 48 points is starting to be a lot less going into the next iteration.


I created a tool that accounts for a team member’s time in that iteration. One team member, or someone who contributes to the effort points being completed, working for one week puts in 40 hours; however, in reality, works about 30 hours a week or six hours a day. For a two-week iteration, five team members work 300 total hours. A few meetings here, a day off there, and your total hours available are going down, but most teams will not account for that time not working, thus creating a velocity that could look like a roller coaster from iteration to iteration.


Velocity Tool Overview


The tool is quite simple and open source (Online Tool: https://danm9.github.io/minahan.dev/ or Source Code: https://github.com/danm9/minahan.dev). Here is an example iteration and velocity:


Velocity: Recommendation is to use a running average, six would do great. If you are starting out, use your previous sprint as a starting point. I recommend tracking an average velocity and a sprint/iteration velocity. If your average velocity is 60, but your last sprint was 72, go with the average since that is above the norm.

Total Team Members: Use your team members, or development team, that is working on the product.

Sprint Length: Use your iteration length, recommend 1-4 week.

Total Days Out: The total days out is the total for the team.

Average Injections/Average Injection Effort: If your team does not have injections…great job! In reality, most teams do and that’s fine. Add your buffer based on previous sprint data. Also, if you track it, have your team members provide an effort so you can create a running average.

Additional Hours Subtracted: This is used for those extra meetings outside of Iteration Planning, Grooming, Reviews, and Retrospectives. If you have training during the sprint that you can not miss, or an extra grooming session that you want to account for during planning, or you have an appointment, but it’s not all day.

Rollover Points: This input is for those rollover points that need to be accounted for in the next sprint.


The output is what you "Plan For" and the total is the combination of Plan For + Injections + Rollover Points.


Is it perfect? No.

Does it work? Maybe.


Try it out with your team. It will not solve your problems if you are bad at efforting or estimating, but if you are consistent with how you effort stories or product backlog items, this tool can start guiding you in the right direction for your planning sessions.


If you have any feedback on the tool or recommendations, please comment below. It's open source, so let's make it the best it can be!

75 views
  • LinkedIn
  • Facebook
  • Twitter

©2020 by BU Agile Innovation Lab 

 

The Boston University Agile Innovation Lab is a resource for the agile project management community. 

Some Images Provided By Pixabay

BU MET.png