
Velocity is used for measuring the rate at which scrum development teams consistently deliver business value in other words quantity of work a team can accomplish within a sprint. In simple terms, velocity is the sum of the story points that a team can deliver in an iteration. It can be measured in terms of the Story Points, days, ideal days, or hours a team can deliver per sprint of a given length, and with a predefined Definition of Done (DoD). Velocity helps a Team to forecast how many Sprints they need to develop new features. Following its ups and downs also allows a Team to analyze the progress they make as a result of any recently implemented improvements. Generally, the most recent 3 iterations are considered to calculate the average velocity of a team. But let us consider the case of the first iteration, where the project team comes together for the very first time. The choice of velocity in such a case could be done in one of the following 3 ways: Based on historical data, By running a few iterations, Deduce based on expert judgment or hypothesis.
Average sprint velocity
It is usually taken over the last three iterations and can help R&D leadership understand how much a team can get done, and plan their workload for future sprints. This is called the “Yesterday’s Weather” pattern.
First iteration’s velocity
For an agile team’s first iteration, a general guideline is to plan initial velocity at one-third of the available time. If you’re estimating ideal programmer time then this account for meetings, email, design, documentation, rework, collaboration, research, etc. If using actual time, include enough of a buffer to account for standard project overhead and estimation inaccuracy. Also, remember that velocity will quickly emerge during the first iteration. If underestimated, velocity in the first iteration will rise as new features are included; and if overestimated, velocity will decrease as features are removed. For the second iteration, the Scrum team should then use the first iteration as a guideline.
Velocity Measurement
The team planned to tackle 41 story points in their first sprint. They completed 28 story points and rolled 13 story points over to the next sprint. So their velocity is 28. Only tasks marked as ‘Done’ count, even if there’s only a tiny bit of work left to do in the task.
The steps involved in Velocity-based Sprint Planning are as follows:
- Calculate the team’s average velocity (from the last 3 Sprints)
- Select the items from the product backlog equal to the average velocity
- Verify whether the tasks associated with the selected user stories are appropriate for the particular sprint
- Estimate the tasks and check if the total work is consistent with past sprints
Benefits of Velocity-based Planning
Velocity-based planning is considered due for the following 4 main reasons.
- Accounts uncertainty in planning – Since the size of a user story is a mixture of effort and uncertainty this method takes uncertainty into account while planning.
- Effective release planning – The detailed sizes of the stories can lead to a more value-added release planning with the identified dependencies/assumptions and their impact on the release flow.
- Accounts overhead within the user story – velocity-driven commitment encourages through the completion of the story in all aspects. When the team inspects to increase the velocity, they will point out the waste that is affecting the velocity most and the stakeholders can work on it.
- Enforces a culture of honoring the commitment – After a few sprints of achieving the commitment, the team gets used to it and the culture causes the team to actively reduce waste or inspect their own development processes triggering the continuous improvement.
Burndown Chart
The Burndown Chart (sometimes called a scrum velocity chart) is a visualization of sprint velocity. It shows the time remaining to complete the planned user stories for each day of the sprint. The slope of the burndown chart makes it possible to predict the outcome of the sprint—extend the chart until the X-axis to see when the stories will be complete—ahead of time, on time, or later than planned.
Thereare three basic burn-down strategies:
- Burn-down points by the completed Sprint Backlog items. The items must be small enough to be completed within one-two day. Otherwise, bigger items would result in more stair-stepping and a less clear burn-down line.
- Burn down points by the completed end tasks. This implies that Planning Poker is used to estimate the end tasks in points. This approach takes more time during planning but doesn’t require small backlog items to have a clear picture for Velocity.
- Burn-down hours by the completed end tasks. This implies that the end tasks are estimated in ideal hours during Sprint Planning. This is similar to the previous point.
Benefits of Velocity Charts
- Track overall project status – The velocity chart computes a number of project trends such as accepted stories by type, volatility metrics, and iteration velocity. This makes the velocity chart ideal for monitoring the overall project status.
- Track volatility – Volatility is a measure of predictability. Frequent velocity valleys and peaks may show you an unpredictable project, while iteration-by-iteration velocity implies a predictable one.
- Know velocity trends – Accepted story points may be less for a specific iteration when there is a large number of Zero-point stories, chores, or bugs. This chart makes these chores/bugs visible clearly by exhibiting iteration velocity dips along with an increase in accepted bugs.
- Improving Sprint Velocity—a Few Caveats
- One of the goals of R&D leadership is to increase agile or Scrum team velocity over time; to achieve more with the same resources. While this is an important goal, it can’t be followed blindly:
- Velocity does not equal business value—a team might roughly deliver the same quantity of working features for years. Their velocity is the same, but due to their improved professionalism, teamwork, and experience, they can deliver more value and higher quality within the same story points.
- Velocity can come at the expense of quality—teams that are pushed to deliver more, faster might have no choice but to cut corners and reduce practices like unit testing, code reviews, UI and usability testing.
- Velocity is a fluid concept—in agile, velocity is determined by subjective story point estimates and depends on the Definition of Done. Teams measured only by velocity will have a strong incentive to estimate more points or lower DoD criteria.
Improving Velocity
- Increase Quality – An investment in quality always pays off in improved productivity down the line. E.g. code reviews, test automation, and bug fixes. Continuously focus on refactoring code, so as to remove all traces of technical debt. Any code that is not used has to be removed. A simple and flexible design and code are always easy to estimate and be worked upon.
- Stop Wasting Time on Unnecessary Tests – Here are three examples of tests that are probably a waste of time: Test overlap, Testing unused features & Testing code that hasn’t changed
- Optimize Sprint/PI Planning Meetings – The agile methodology advocates not planning too far in advance, or in too much detail, so stick to just-in-time planning. So in PI planning plan a few sprints in advance with detailed task breakdowns for the immediate sprints. This added visibility helps to see dependencies, identify challenges, and consider approaches and technical solutions in advance. Ensure team members are fully focused and they can keep distractions at bay.
- Sprint Retroactive and Process Review – It’s important not to turn the retrospective into a “venting session/” Problems discussed during the session must be taken seriously and leaders must spend the necessary time to resolve them.
- Add External Resources or Training – For one-time or repetitive activities either add external resources or train existing resources. E.g. infrastructure support, test automation frameworks
- Engage customer – Engage with the customer and solicit his presence so as to clarify requirements, bounce ideas, or seek feedback often.
Capacity in Sprint Planning
Capacityis the total number of hours the team is available, not how much quantity of work getting done. The highest priority user story istakenand broken down into tasks. Each task is estimated in the number of hours and accommodated in the capacity. If any capacity is left, the next high-priority user story is taken, and the process continues until there is no more capacity left.
There is an efficient way to account for changes in Capacity and get a refined Velocity forecast. The steps are as follows:
- Calculate the maximum Capacity of your Team in man-hours, assuming that you have ten working days in a two-week Sprint and all the team members are available.
- Calculate the adjusted Capacity, considering all the Capacity loss you will have in the upcoming Sprint.
- Get the ratio of the adjusted Capacity to the maximum capacity.
- Apply this ratio to your current average Velocity.
Here is an example:
- Imagine we have 9 team members, who work within 2-week Sprints 40 hours a week. The maximum Team’s Capacity is: 9 * 2 * 40 = 720 hours.
- Now imagine, that 1 software engineer and 1 business analyst are going to have their 2-week vacations during the next Sprint and all the team will be away on holiday. So, the adjusted Capacity is: 720 − (2 * 40 * 2 + 9 * 8) = 720 − 232 = 488 hours.
- The ratio is: 488 / 720 = 0.68
- If the average Velocity for the previous three Sprints was 160 points. Then the refined forecast for the upcoming Sprint is 160 * 0.68 = 109 points.
Benefits of Capacity based Planning
Capacity-based planning is considered due for the following 3 main reasons.
- The capacity of the teams may vary from one sprint to another, depending on holidays, leaves, or other commitments. So, every sprint is not an average sprint.
- The story points and the velocity are the two important measures over multiple sprints for estimating the release dates. But story points are found to be coarse-grained for planning the details of a two-week sprint. If you consider the hours, they are fine-grained enough and much useful for estimating concrete tasks.
- Lastly, in the Sprint Planning, the user stories allow the development team and the Product Owner to consider each story in detail to develop a shared understanding of the end product.
Drawbacks of Capacity-based planning
Capacity-based planning has a few drawbacks
- Assumes estimates are accurate – Committing the sprint size based on available capacity assumes that all task estimates are accurate.
- Assumes all tasks can be done in parallel – The expectation is that all the team can work in parallel during the sprint which is practically difficult to achieve unless each task is independent.
- Considers everyone as equal – The capabilities of the team members vary; hence the time to achieve the task as well based on the respective owner.
- Makes User story sizing irrelevant – If the team does not use the sizes of the user story to load a sprint, then the entire exercise of sizing them becomes irrelevant to the team.
Non-functional Activities
EveryDevelopment Team always has “non-value” items in their Sprint Backlogs such as:
- Technical enablers – It does not give anything tangible to the business right now, but they unblock future development.
- Exploration spikes – These spikes are not the features that can be demonstrated during the Sprint Review. However, they give a Team vital knowledge of how to do the right things in the right way.
- Refactoring and other technical debt – These deals with already delivered functional parts are much less interesting than the new features. However, only high code quality makes frequent delivery possible.
If you don’t invest in these then products will get blocked or stuck at some point of time. To ensure a healthy balance between these non-value and value items, allocate effort or alternatively explicitly agree that Velocity is calculated based on functional items only & make the Velocity calculation as transparent as possible.
Bug-fixing Activities
Bug-fixing can be viewed as part of the technical debt discussed above, many treat it as an integral part of the development process. The more defects discovered in a Sprint, the less new functionality the Team is able to deliver. In order to this risk, it is better to have a clearly defined place for bug-fixing in Velocity.
- Include estimations for bug-fixing into every Product Backlog item during Sprint Planning. In case of more complex items, where there are greater development risks, allocate more points for bug-fixing.
- Allocate some fixed number of Velocity points for bug-fixing for all the Product Backlog items in a Sprint (like for the technical spikes or the technical debt).
- Don’t allocate anything for bug-fixing, so Velocity will be just lower and its oscillations will be less clear. In other words, you do the required bug-fixing every Sprint without reflecting anywhere on the effort spent. This impacts the Team’s Velocity as the Velocity “automatically adjusts”.
Scrum Blog: Click Here Scrum Guide: Click Here
FAQs
What is difference between sprint velocity and capacity? ›
Velocity is a measurement of the average amount of story points delivered across a given time period. Capacity is an estimate of the total amount of engineering time available for a given sprint. Both of these metrics are based on the concept of relative estimation.
Is velocity used in sprint planning? ›During Sprint planning, a team's velocity is used to determine the number of product backlog items to tackle. Based on this, both the amount of work and a delivery date can be estimated. At the end of the sprint, the actual velocity will be used in the calculator for the next one.
How do you calculate velocity and capacity in Agile? ›The ratio is: Adjusted Capacity: Maximum Capacity which is 640/720= 0.88. If the average velocity of the previous three Sprints was 160 points then the redefined story points for the upcoming Sprint is 160*0.88= 142 points.
What is velocity in Agile sprint? ›Velocity is a measure of the amount of work a Team can tackle during a single Sprint and is the key metric in Scrum. Velocity is calculated at the end of the Sprint by totaling the Points for all fully completed User Stories. Estimated time for this course: 5 minutes.
What is capacity and velocity in Scrum? ›Capacity is based on the team's expected or projected future availability. Velocity is based on actual points completed, which is typically an average of all previous sprints. Velocity is used to plan how many product backlog items the team should bring into the next sprint.
What is capacity in sprint planning? ›The sprint capacity planning meeting involves the product owner, the Scrum master, and any appropriate development team members. The meeting should last no more than 30 minutes; in some cases, capacity planning can occur without an in-person meeting.
How do you calculate velocity from capacity? ›Agile Velocity and Capacity Planning Relationship - YouTube
Why do we use velocity in Scrum? ›In Scrum, velocity help you to understand how long it will take your team to complete the product backlog. However, it typically takes few sprints for the team figure out a more stable velocity. To estimate more accurate velocity for your team, we can gain the experience based on the past track-record of the team.
How do you calculate sprint velocity in Scrum? ›Types of Velocity in Scrum
Actual velocity is calculated by dividing the total Story Points completed by the team by the number of Sprints. For instance, if the Scrum Team has finished a total of 80 points over 4 Sprints then the actual velocity of the team would be 20 points per Sprint.
For you to commit to a sprint goal, you need to know current team capacity. Team capacity is calculated as per people availability in that sprint. Let's take an example. Say team is of 5 people, then total capacity assuming 8 hour day, 2 weeks sprint(10 days) is = 5*8*10 = 400 hours.
How is capacity calculated in Agile? ›
Get the availability and time off for each person. For each person, subtract time off from Net Work Hours, and multiply the result by his availability to get his individual capacity. Add up the individual capacities to get the Team capacity in person hours, and divide by eight to get the capacity in person-days.
What is velocity in Agile with example? ›It involves dividing the total story points completed by the number of sprints in which they were completed. For example, if the team has completed a total of 70 points over a span of two sprints, the team's velocity would be 35 points per sprint (70 points/2 sprints).
What is ideal sprint velocity? ›What is Sprint Velocity? Velocity in agile development measures the quantity of work a team can accomplish in a sprint. It can be measured in story points, hours or ideal days. Ideally, the higher a team's velocity, the more software functionality they are delivering, and the more value is created for customers.
What is capacity in Scrum? ›Capacity represents the amount of work that can be completed within a given time frame and is based on the number of hours a person or team has available to complete that work.
What is burndown velocity? ›The Burndown will also show a list of any in-completed Issues, meaning, any Issue that is closed outside the end date of the Sprint. Velocity is how the team is able to measure the amount of work they have completed in a typical time frame, or over a longer timeframe.
How do you calculate capacity? ›Capacity = working hours specified in the Workload Plan - non-working days (in other words, how much of total work can a resource do in a period. If Kate works eight hours a day, her standard workday capacity is eight hours. If Monday is a national holiday and she has a day off, her Monday capacity is 0h).
What is load and velocity in Agile? ›Velocity, capacity, load. Velocity is the amount of work completed in previous sprints. It's a measure of past performance for the team. Typically, you look at the last three to five sprints, and take the average of their velocity. This helps to offset any spikes in a particular sprint.
What is a capacity planning example? ›Take a bakery, for example. Understanding how many pies can be made and baked in a given day using existing equipment and staff (capacity) allows the bakery to plan for how many pies they can sell and what they need for resources (staff, apples, etc.).
How do you use velocity and capacity to get reliable forecasts? ›Use the instantaneous Velocity to celebrate breakthroughs and adjust the course during a Sprint. Use the average Velocity for planning purposes and evaluation of improvements. Play with the number of Sprints to get more accurate predictions. Remember all Teams have a different Velocity.
How do you convert story points to capacity? ›Capacity in story points (F) would be as under: F = (E / hours required to complete 1 ideal story point) where hours for 1 ideal story point can be found by brain storming within scrum or other Agile framework team e.g. XP or based on past sprint data.
How is sprint capacity calculated? ›
For you to commit to a sprint goal, you need to know current team capacity. Team capacity is calculated as per people availability in that sprint. Let's take an example. Say team is of 5 people, then total capacity assuming 8 hour day, 2 weeks sprint(10 days) is = 5*8*10 = 400 hours.
How do you calculate velocity from capacity? ›Agile Velocity and Capacity Planning Relationship - YouTube
How do you calculate team capacity and velocity? ›Number of story points delivered/demo in a Sprint is called velocity. For example, if team planned 30 story point(Business value) worth of user stories in a sprint and able to deliver as planned then team's velocity is 30. What is Team's capacity? Total number of available hours for a sprint is called Team's Capacity.
How do you calculate sprint velocity? ›Teams calculate velocity at the end of each Sprint. Simply take the number of story points for each completed user story during your Sprint and add them up. Your velocity metric will be the absolute number of story points your team completed.
How is capacity measured in Agile? ›Get the availability and time off for each person. For each person, subtract time off from Net Work Hours, and multiply the result by his availability to get his individual capacity. Add up the individual capacities to get the Team capacity in person hours, and divide by eight to get the capacity in person-days.
What is capacity in Scrum? ›Capacity represents the amount of work that can be completed within a given time frame and is based on the number of hours a person or team has available to complete that work.
How do you use velocity and capacity to get reliable forecasts? ›Use the instantaneous Velocity to celebrate breakthroughs and adjust the course during a Sprint. Use the average Velocity for planning purposes and evaluation of improvements. Play with the number of Sprints to get more accurate predictions. Remember all Teams have a different Velocity.
What is velocity in Agile with example? ›It involves dividing the total story points completed by the number of sprints in which they were completed. For example, if the team has completed a total of 70 points over a span of two sprints, the team's velocity would be 35 points per sprint (70 points/2 sprints).
What is load and velocity in Agile? ›Velocity, capacity, load. Velocity is the amount of work completed in previous sprints. It's a measure of past performance for the team. Typically, you look at the last three to five sprints, and take the average of their velocity. This helps to offset any spikes in a particular sprint.
How do you increase velocity in Scrum? ›- Use cross-training and ensure knowledge transfer is consistent.
- Avoid context switching. ...
- Be aware of resource management and maintaining a constant development team.
- Use a rolling average of the last 3-4 sprints to plan the next sprint.
What is capacity planning in Agile? ›
Capacity planning is to estimate the Scrum team's capacity for the work which can be accomplished in the next sprint. It provides a clear picture of how much work the team can do without stressing out or reducing quality and efficiency. Generally, there are two ways of sprint planning.
How do you calculate capacity planning? ›Capacity is calculated as (number of machines or workers) × (number of shifts) × (utilization) × (efficiency).
What is the velocity of a team? ›According to Scrum, Inc., team velocity is a “measure of the amount of work a team can tackle during a single sprint and is the key metric in Scrum”. When you complete a sprint, you'll total the points for all fully completed user stories and over time find the average number of points you complete per sprint.
WHO calculates velocity in Scrum? ›Velocity is a measure of the amount of work a Team can tackle during a single Sprint and is the key metric in Scrum. Velocity is calculated at the end of the Sprint by summing up the Points for all fully completed User Stories.
How is velocity in Agile calculated? ›How do I calculate the velocity for my agile team? Divide the number of backlog items or user story points that's been delivered during the course of several sprints by the total number of days in those sprints.
How is velocity determined in Scrum? ›Types of Velocity in Scrum
Actual velocity is calculated by dividing the total Story Points completed by the team by the number of Sprints. For instance, if the Scrum Team has finished a total of 80 points over 4 Sprints then the actual velocity of the team would be 20 points per Sprint.