top of page

How do You Measure Development Velocity?

  • Writer: Charlie A Cliff
    Charlie A Cliff
  • May 11, 2020
  • 4 min read

Howdy, Upstarts!


In some of my previous articles, I have explained some core concepts for managing agile software development teams: User Stories and Story Points. These are important concepts that get bandied about quite a bit every time someone brings up SCRUM Development or KANBAN. My previous articles explained the concepts of User Stories and Story Points, as well as why they are both important for any engineering organization, particularly for startups. In this series of articles, I want to address an important metric that you can calculate, using the concepts of User Stories and Story Points: Development Velocity.


The previous article in this series focused on providing an in-depth explanation of Development Velocity; in this article, I will discuss how to measure Development Velocity; and in the final article in this series, I will provide some best practices on how to optimize Development Velocity.


How do we Measure Development Velocity?


In my previous article, I said that Development Velocity is how fast your software developers can make progress on your technology product.


The key point to remember is that Development Velocity focuses on measuring progress, not work!


Because Development Velocity only cares about progress, it measures the amount of time developing new features, the amount of time fixing bugs, and the amount of time spent maintaining old features, all in one handy KPI.


So just like you learned in school, you can calculate Development Velocity by dividing the amount of progress made by your software development team by the time your team needed to accomplish that progress.


To put it simply, you calculate Development Velocity by dividing progress by time.


Why do We Use the Word Velocity?


Words matter. And that it is important to remember that we choose technical terms for a reason.


We use the word Velocity to describe this KPI instead fo Speed for a specific reason, and the reason we use the word Velocity is intimately tied with the way that we measure it. Velocity is a technical term from physics, and in Physics, it is important to understand that velocity and speed are two very different things.


Speed is only how fast you move.


To calculate speed, you take the amount of distance that you travel and divide by time. For example, let’s say that you are delivering a pepperoni pizza to a house that is 20 miles away. To get there, you hop onto your yellow scooter and drive the 20 miles to the delivery address. You have a pretty new scooter and there is very little traffic so you can get there in 30 minutes (if you take longer than 30 minutes, then the customers get the pizza for free!). Because you traveled 20 miles in 30 minutes, that means that your speed is 40 Miles Per Hour. Simple, right?


But Speed is not the same thing as Velocity!


Velocity is how fast you move away from your starting point, or how fast your position changes.


To measure your Velocity, instead of using the total distance that you travel we use the total distance you are away from your starting point, or your progress.

Simple! No?


Let’s use the same example as we did above, where your speed was 40 Miles Per Hour. But now let’s say that when you arrive at the delivery address, the person at the door points out that they ordered a vegetarian pizza and not a pepperoni pizza! That means that you will need to go back to the restaurant and get the correct pizza. Since you are such a good pizza delivery person, you hop back onto your scooter and you drive back to the restaurant, pick up the correct pizza, and come back to the house. That means that the total distance you traveled was 60 Miles (20 Miles to the house, plus 20 Miles back to the restaurant, plus 20 miles back to the house), and it took you 90 minutes to travel the whole distance. This means that your speed is still 40 Miles Per Hour; however, the total distance that you are away from the starting point, or how much progress that you have made, is only 20 miles (because you started at the restaurant and you moved to the house). So that means that your Velocity is only around 13 Miles Per Hour.


Because you made a mistake, your Velocity is much lower than your speed!


So Velocity is a term that builds in a penalty for mistakes and inefficiencies. Because the pizza delivery driver made a mistake, they had to make a returns trip, and their Velocity was much lower than their Speed; and in the same way, Development Velocity builds in a penalty for bugs and overly complicated code.


This is why a good SCRUM Master will talk about Velocity instead of Speed!


Reward your Successes and Penalize your Failures


At the end of the day, every engineering organization needs to be able to measure their productivity to estimate timelines and budgets. Development Velocity is a perfect measurement of this; because, in the same way as Velocity in the sense of Physics, Development Velocity measures how quickly your software development teams can make progress and accomplish their goals.


Agile Development Teams have a natural way to measure Development Velocity: by measuring how quickly their teams can deliver Story Points.


Development Velocity also inherently punished low-quality code and inefficient processes because it penalizes teams for spending time debugging their code and re-working their code.


To optimize the performance of your software development teams, your startup should absolutely be measuring your Development Velocity!


Engineering Leaders should invest in ways to increase their teams’ Development Velocity. Several strategies can be used to maximize this KPI. In the next article of this series, I will provide some Best Practices that you can implement in your own engineering organization to improve your Development Velocity.

Comments


up·start
/ˈəpˌstärt/


one who has risen suddenly

bottom of page