Many scrum teams use velocity to predict and plan how much scope can be delivered over the upcoming sprints or predict the number of sprints needed to deliver a fixed amount of scope. In this post I will demonstrate how to use a Statistical Process Control (SPC) chart technique can gain a better control over team velocity.
How to Calculate and Use Velocity?
In scrum methodology velocity is the amount of work done during a sprint. If a team delivers within a specific sprint a four (4) user stories with a sum of story points of 23, the velocity is 23. In the next sprint the same team delivers 27 story points, then the average velocity is 25, or (23 story points + 27 story point) divided by 2 sprints = 25. The chart on the left shows the velocity of each sprint (blue bars) and the average velocity (black line) over nine (8) sprints. From the chart data we can assume that the team can deliver on the next sprint a subset of user stories with a sum of 31 to 32 story points, or if remain scope is equal to 120 story points the team will probably needs up to 4 sprints to deliver the reaming scope (120 story points divided by 32 story points)
Average Velocity Is Not Enough
Looking at the above data chart raise some essential questions that might impact on the way we use velocity.
- What cause the team to improve their average velocity from 20 story points up to 32 story points over eight sprints?
- What confidence the team has that the average velocity will continue to raise up or will drop down back to level of 20 or 23 story points?
- What are the limits we can use with good confidence to define the amount of scope we can commit for a sprint?
The missing part on the velocity chart that might answer these questions is having control over the velocity variations! Velocity variations are those factors that may influence team velocity, and there are some, similar to a car trip:
- The amount of impediments the team is facing in a sprint (roadblock)
- The level of motivation team have (car fuel)
- The level of knowledge and experience (driver experience)
- The development environment (car condition)
- Transparency (visibility)
- Sprint objectives (drive direction)
- Processes (traffic rules)
- Product roadmap (destination)
So actually what we want is to control the velocity variations over the velocity average, to accomplish that we can use technique called Statistical Process Control (SPC) Chart
What is SPC chart?
Statistical Process Control (SPC) chart is a technique used to determine the stability and predictability of a process, in our case team velocity. SPC charts represent both the average and the process deviation to specify the upper and lower control limits. The illustration below shows a process with a normal curve for a distribution with an average of 69, an average less 3 standard deviations value of 63.4 (known as the Lower Control Limit LCL), and an average plus 3 standard deviations value of 74.6 (known as Upper Control Limit UCL). These laws of probability are the foundation of the control charts.
Now, consider that the distribution is turned sideways, and the lines denoting the average and ± 3 standard deviations are extended. This construction forms the basis of the Control chart. Time series data plotted on this chart can be compared to the lines, which now become control limits for the process. Comparing the plot points to the control limits allows a simple probability assessment.
Measurements, less than 63.4, greater than 74.6 or trends (i.e. 3 point in a ow above average) are extremely unlikely, such point on the charts indicates that there is a Special Cause – a source of variation beyond the normal chance variation of the process, that worth to investigate and prevent or eliminate in the future.
Using SPC Chart to Control Velocity Variations
The industry offers us with a several known SPC charts, depending upon the type of data collected (counting events vs. measurements on continuous scale) as well as the subgroup size where data was collected. For our case of Velocity we will use “C chart” type, as it appropriate for number of story points (counting) measured for subgroup of one sprint.
Let’s use the example data to calculate and draw the chart,
- Central Line = 32 (average of all velocity measurements)
- Lower Control Limit: = lcl=32-3*√32=15 story points, if LCL value is less than zero, set it to zero as there is no velocity with negative values !
- Upper Control Limit: lcl=32+3*√32=49 story points
When examining the Velocity c Chart, we can observes some interesting things that were not quite clear while using the traditional velocity chart
- All measurement points are IN control limits, which means that delivering scope with an average of 32 story points per sprint is a stable and predictable process. However, in case a single velocity point is plotted outside the control limits (a special cause), such event requires further investigation by the team during retrospective meeting
- The velocity during sprints 3, 4 and 5 was constantly growing (a special cause, same case for decreasing trend), an event that team should investigate during retrospective meeting in order to identify what were the root causes for such improvement and determine whether they can repeat or sustain this velocity in the future
- Based on the values of UCL and UCL the team can commit to deliver in a single sprint a scope with a range between 15 story points to 49 story point.
NOTE: if the team want to take less risky approach on their range of commitment, they can use LCL and UCL with plus/minus 2 std. deviations.
So, what are the key benefits for using c chart for velocity over the traditional velocity chart?
- Drawing SPC chart for velocity is as simple as drawing the traditional velocity chart
- The SPC chart for velocity helps the team to identify events that needs special attention to deep dive and understand their root causes during their retrospective meetings
- Team and project stakeholders have better confidence on how much scope can be committed
- The lower variations the better sustainable development pace team can reach