Creating efficient timelines is a must for time critical projects. Not only does it help the development team define their day-to-day tasks but also helps them chart out task priorities for each sprint or iteration. In Agile, timelines are calculated by considering velocity.
What is velocity in agile? It is a metric or calibration tool that helps teams measure the work that is done in an iteration. Calculating velocity helps the team arrive at timelines and define how soon the project can be delivered. In this blog, we attempt to look at velocity in Agile and its associated benefits and pitfalls.
At the end of each iteration, the team adds up effort estimates associated with user stories that were completed during that iteration. This total is called velocity—Agile Alliance
Let us look at some of the terms mentioned in this definition.
By computing the velocity, teams can estimate how long it will take to complete the project. Velocity is calculated by using the estimates on the remaining user stories and with the assumption that velocity will remain the same over the coming iterations.
Though velocity may not be a 100% accurate, it provides a rough estimate that is precise. Velocity makes it easier to work in the Agile iterative model as you can estimate how much work is to be done to complete the project, how long it will take for your team to move through the backlog and assign tasks effectively.
Agile has never been prescriptive and its concepts have never been rigid and defined. Agile concepts and fundamentals have evolved over time, and practices that have proven to be successful have become Agile standards.
The concept of velocity too was a late addition to the Agile toolkit. In the year 2000, velocity was used in Extreme Programming, replacing ‘load factor’. From 2002 onwards, velocity became a main stay in Scrum teams that started incorporating the practice of measuring velocity.
Velocity can be measured at several levels:
Measuring or calculating velocity in Agile is simple. Velocity at the sprint level can be calculated by measuring the total amount of backlog items that were delivered during a sprint.
Velocity can also be calculated by considering story points. Story points make up user stories and are a unit of measurement that represent the amount of effort required to complete a task. Typically, each organization has its own method of assigning values to story points.
The velocity for a particular sprint would be calculated by multiplying the number of user stories completed in the sprint with the story point assigned to each user story. For example: If you have completed 4 user stories and have assigned 3 story points to each story then the total velocity for the sprint would be 4*3=12.
Individual sprint velocities can be averaged to find out the average sprint velocity.
Agile is all about iterative development, providing quick solutions and getting the products to market fast. In order to do this, Agile teams must know how much work they can do in a sprint and how long they will take to complete the project or deliver to the customer. Velocity helps them decide this and work effectively.
Average velocity is calculated once the project has progressed through three or four sprints. The average velocity is calculated by averaging the story points accumulated in each sprint. Based on this average velocity calculated, teams can base the amount of work that still needs to be done.
If we consider the above example of average sprint velocity, then we can assume that the team can accomplish work at the rate of 12 story points in each sprint. So, if you still have 120 story points left to be completed in your project, then you can go with the assumption that you will need an additional 10 sprints to complete the project.
Although it is accurate it is prone to fluctuations based on changing requirement, team size and project complexity.
Agile presents several tools for visually representing data points. These are an easy indicator of the project progress and if they are cloud-based can be accessed by all those involved in the project.
Agile velocity charts are basically graphs, with story points displayed on the Y or vertical axis and completed sprints displayed on the X or horizontal axis. These are a great way to make your project velocity accessible to all. Cloud based charts can be accessed by teams as well as stakeholders.
A velocity chart is a great way to track the status of the project, to see if the project is progressing in a steady and predictable manner and to identify patterns in the team’s sprint velocity. If there are many uneven dips and elevations in your graphs, then you can assume that your project is unpredictable as velocity is not constant.
While velocity is a great tool for measuring team progress, one must remember that it is an empirical measure, which means that it can be used for estimation but not as a final standard against which team progress is measured. Velocity is often based on story points and story points are subjective to the team. Teams can have their own story point values for user stories and hence define their own velocity and scope of work. This makes velocity a changing variable and it should not be used as a yardstick to measure team progress.
Velocity is better estimated by well-functioning, mature Scrum teams. New or transitioning teams and teams that are starting out on new projects will take some time to become a well-oiled machine and get their velocity accurate.
Scrum/Agile works on the principle of breaking down large projects into small chunks and having a deliverable at the end of each chunk. A Scrum project is typically broken down into epics, sprints, user stories and tasks. If epics are not sufficiently broken down then it will directly impact the velocity, and teams may see a sharp drop in velocity from sprint to sprint. This makes the velocity less predictable.
A sprint is not just about delivering or output. There are a lot of things that happen in between including exchanging emails, stand up meetings, etc. If this is not added into the sprint time, then the velocity may falter.
Velocity is an important metric used by Scrum Masters and Product Owners to track their team’s progress and ensure a successful project. Agile’s fast response, fast delivery, incremental and iterative framework ensures quick releases, quality products and customer satisfaction. Velocity helps to determine project timelines and allows Product Owners to give accurate estimates without falling into the trap of overcommitting.