What is the value of using story points in the Scrum development process, given that they are an abstract measure?
Story points allow for estimation by using relative rather than absolute values. It's a lot easier to make these types of estimates, especially in cases with many unknowns. As teams learn more, they refine their estimates for more accuracy. Teams measure how many story points they can complete in each iteration -- this measure is the team's velocity.
A traditional approach to project management might include a requirements specification outlining the requirements for the website. Developers are asked to estimate how long it would take to code the website, enabling the project manager to devise a schedule and determine a delivery date.
Story points are most useful for long-term planning exercises when there are a lot of unknowns.
With Agile project management in general -- and the Scrum process, in particular -- stories are written representing each of the various requirements. Rather than asking team members how long each story will take, project managers ask them to assign story point values for each requirement. More complicated stories are assigned a higher point value. The story points are a gauge of complexity rather than an absolute time value. The team's velocity is determined by how many story points they complete during each iteration.
At first, the team might have variations in velocity, but as it continues to self-correct, team velocity soon becomes more consistent. Historical data helps to recalibrate the velocity over time, allowing for improved predictability.
In general, the iterative nature of Agile development means that estimates become more accurate over time. Story points are most useful for long-term planning exercises with many unknowns. It's helpful for the team to use a scientific wild-ass guess rather than getting bogged down with trying to determine exact timelines when specifics aren't yet known.
This was first published in April 2013