Better Sprint Planning Through the Volatility Index (VI)

Chris Tanner
4 min readApr 21, 2021
Pictured: Your team’s Sprint capacity over time

Introduction

If you’re like many Agile teams that work on abstract or greenfield projects filled with unknowns, landmines, rotating team members, or business-side counterparts that seemingly have the goalposts strapped to their back as they try to set a world record in the 500m (just kidding, they’re doing their best), “Sprint Planning” can be trigger words.

Having worked on teams ailed with these issues, it became near-impossible to accurately point user stories and plan our Sprints with any sort of accuracy. Not only did this state of flux deal a blow to team morale over time, but it created the issue of not allowing us to calculate deadlines with any certainty.

We needed a better way, and thus the Volatility Index was born.

The Volatility Index (VI) is a supplemental metric I began experimenting with and developing two years ago that can be leveraged to better plan, understand, and compensate for the inherent variability in a multitude of Agile processes. In essence, the VI is a measurement of “the unknown within” or “the uncertainty of” — and can relate to individual user stories, overall sprint performance, or the delta in contribution of individual team members over time.

In essence, the VI is a measurement of “the unknown within” or “the uncertainty of” — and can relate to individual user stories, overall sprint performance, or the delta in contribution of individual team members over time.

Implementation

For User Stories / Tickets

In practice, the VI is measured on either a numerical or contextual basis (1–5, low/med/high, etc). The assignment of the index can then be used to supplement existing metrics (priority, ticket size, etc) in order to better determine the “readiness” of the ticket.

For example, a ticket with a high VI may need additional discovery, and may be prioritized lower in the backlog compared to tickets of similar priority / scope / relevance that have a lower VI (i.e. are more “ready” or “understood”).

The VI can also be used to help make better capacity planning decisions. For example, a 2-point ticket with high VI may be treated as a 3-point ticket in terms of capacity planning, as the VI suggests that there are many unknowns around scope and/or deliverability. The VI can therefore be used to “pad” sprint capacities.

It should be noted that, in these use cases, the VI for a particular ticket can change over the course of the sprint. Depending on a team’s use-case, it may be beneficial to track deltas in overall volatility to be able to say, “How fast did we ‘close the gaps’ in knowledge / scope around our tickets?” With that said, a “static” approach to VI assignment may work better for some teams.

For Overall Sprint Performance

In order to utilize the Volatility Index to measure overall sprint performance, we compare committed points versus completed points per sprint. By following the formula below, we can determine the volatility of our planning efforts:

PD = |C - Aᵢ₊₁| + |Cᵢ₊₁ - Aᵢ₊₂| + |Cᵢ₊₂ - Aᵢ₊₃| + …

Where Performance Delta PD is the sum of the absolute values of the differences between the committed points C and actual points A.

We can then either use the absolute value, or convert to percentage to use as our scale in determining the VI.

For the following example, we’ll use a simple scale to determine volatility where “LOW” represents a differential between 0–3, “MEDIUM” 4–7, and “HIGH” represents 8+.

Measuring Sprint performance using a Performance Delta.

For Individual Performance

In a similar vein to measuring overall sprint performance, the VI can be used as a supplemental metric to manage individual performance over time. In this use case, each individual is assigned a VI that changes over time. An individual’s VI is determined by the number of contributing points they complete during each sprint.

Example:

Measuring individual performance using a Performance Delta.

In this example, Bob’s contribution over time is highly variable from sprint to sprint, with a Performance Delta of 6 points. Performance Delta can be calculated using the following formula where Performance Delta PD is equal to the absolute value of the difference of point value contributions C between subsequent sprints:

PD = |C - Cᵢ₊₁| + |Cᵢ₊₁ - Cᵢ₊₂| + |Cᵢ₊₂ - Cᵢ₊₃| + …

Bob = |2-5| + |5-2| = 6 (High Volatility)

Similarly, Sally’s consistent contribution equates to a Low Volatility rating:

Sally = |3-3| + |3-3| = 0 (Low Volatility)

Finally, Jane ends up with a VI of 3:

Jane = |3-2| + |2-4| = 3 (Medium Volatility)

Obviously, you will need to define the number of sprints you are summing and keep this constant, as this will in turn inform the range of what is determined “High”, “Medium”, and “Low” volatility, but this is intentionally left vague as to be adaptable to more teams / Agile structures.

Using this method, we can inform our capacity planning and assignments. The goal here is to be able to accurately and reliably predict the contributions of individuals, and therefore measure future capacity, while also knowing the limits of individual team members when assigning tasks.

It may also be useful in correcting velocity issues or managing an individual’s performance over time. It’s important to keep in mind that a high VI is not necessarily a negative performance indicator, as VI will be high when a team member’s contribution is steadily increasing. This is purely an information metric, and should be taken into consideration with existing performance indicators. The goal here is simply to maintain consistency when at all possible.

Conclusion

As with all things Agile, not all teams have the ability (or need) to integrate every methodology or framework. This method has proven most useful to teams who regularly deal with ambiguity in their work to better inform their planning process.

If you have any questions around the Volatility Index or implementation, please feel free to reach out.

--

--

Chris Tanner

Serial entrepreneur and music tech enthusiast. Formerly a Staff Engineer at Wayfair and Engineering Leader for growing startups.