It's become the mantra of some in agile development community recently to count stories and stop counting Story Points.
While Story Points are Ordinal numbers and have several flaws at their core, counting Stories alone, without some supporting statistics is also flawed.
Let's start with distinguishing between Cardinal and Ordinal numbers...
When we hear about adding Story Points, another caution is needed ...
- An Ordinal number ‒ a Story Points ‒ denote the position of an element in an ordered sequence
- Ordinality involves sets and order relations on those sets.
- Cardinal numbers ‒ natural numbers ‒ measure the size or Cardinality of sets. The possible collection of values describing an entity – the cost, the duration, the performance or efficiency measures.
- There is a cardinal number for every possible cardinality.
- A cardinal number is a family consisting of all sets that can be put into one-to-one correspondence with each other.
Why we can't do Arithmetic with Ordinal Values (Story Points) in Number Theory
For example
Your breath smells like a funny color
or
The number 9 is Slippery
Finally, before moving to the need for Median and Mode, Stories, Story Points, and Velocity are NOT Units of Performance outside a single Scrum Team, which has calibrated Story Points to their own usage and need.
- Story Points are Ordinal numbers ‒ relative measures of effort or complexity defined by the Scrum Team members for a specific Sprint, Feature, and perhaps a Release.
- Story Points are not scope for the project, they're not calibrated to Time and Money outside an individual Scrum Team.
- Counting Story Points is like counting Tasks in an Integrated Master Schedule.
- We have 40 tasks to do for this delivery which is 9 weeks long (3, 3 week Sprints).
- We’ve done 20 Tasks so far
- Are we 50% complete for the planned task work?
- Not likely unless each Task is the same effort and duration and the Task variance is not significant.
Counting Stories has the Same Problem
The number of Stories represents Ordinal numbers as well. So those measures are localized ordinal values as well:
- In this release, we have 12 Stories to implement the Feature.
- We’ve completed 6 of the 12 Stories.
- Are we 50% complete with the Feature?
- Not likely, unless each Story is of equal effort and duration and each story has identical irreducible and reducible uncertainty that impacts cost and duration.
Now the Next Problem
When we're counting stories we need to know the actual effort or duration the stories in the past took to complete. This measure - the Cardinal Value from that measure of the Story - we can calculate the Variance and Standard Deviation of that effort and duration. With these numbers - the Cardinal measure of effort, the variances between all the Stories in the past, we can use that information for the future
Only with the Mean, Median, and Mode of a past performance time series can we make decisions or forecasts about the future performance of similar work.
Here's an example of a past performance time series and the cone of uncertainty in the future from that past performance. In this case the index of a ratio of actual to planned over a period of weeks and the possible outcomes in the future for that same index. Where 1.0 is Actual estimate = Planned Estimate