Story points should never be used to represent hours, but simply relative size of effort to complete a story. Over time, the team will tend to complete a consistent range of story points each sprint. Trying to tie story points to duration breaks the model and leads to inaccurate forecasting. Points should not be used to compare teams, nor should they be used to compare bugs.
In Agile projects, each work packet is called a Story. Each story has a point value assigned to it.
I prefer to use the Fibonacci scale for story points.
1, 2, 3, 5, 8, 13
Each number is the sum of the previous two numbers (3 = 2 +1; 8 = 5 + 3; etc).
But what do these points mean? We will get to that in a minute, but first let’s examine how difficult it is to estimate sizes.
Glass of Water
How many ounces of water is in the glass? If you’re like most people, that is not an easy thing to guess.
On the other hand, if I compare it to the glass below, I might say is has roughly twice as much water, and I would be mostly correct.
This is the concept of story points.
1 is the baseline amount of work.
2 is twice as much effort
3 is three times as much, and so on.
Either 8 or 13 are “too big to do”—otherwise known as EPICs—and are slated to being broken up into smaller stories later.
The reason this is done is because it is easier for humans to judge a relative size than an absolute size.
Smallest amount of work
The effort of the smallest amount of work is considered a “1”. For web projects, this is often the effort required to change some element’s CSS style (color, font, size, etc).
Every other story is compared to this task.
Count the points
During the course of the sprint, the team completes the stories. And the end of the sprint, all completed story points are summed and that is the number of points completed for that sprint. After 3-4 sprints are completed, the average number of completed points for the prior three sprints is a good indicator of the number of points the team will complete in the next sprint.
|Sprint 1||Sprint 2||Sprint 3||Average|
|14||18||14||15 (rounded down)|
As you can see, points cannot be hours because the number of points varies, based upon many factors:
- Team members’ skills
- Team leader’s leadership
- Distractions/work environment
- Complexity of work
- Tools/equipment quality
Points are not fungible
Points are not fungible, that is, they are tied to the team. One can’t judge one team’s performance against another’s by counting points, because of the factors that cause variability in points. One team might complete 15 points in a sprint, while another might complete 40. The first team is not worse than the second team; points mean different things for the two teams.
Bugs don’t Point
You can’t point bugs. Well, you can, but you’re making a huge (huuuuuge) mistake. When pointing stories, one needs to explicitly lay out the tasks required to complete the work. Then, that work is compared to the Smallest Amount of Work and given a point.
Bug HAVE NO defined tasks required to complete the work because no one knows what is causing the bug. What are the exact steps required to fix it? There aren’t any; one simply works the problem until it is fixed.
For example, let’s take the “bug” of me losing my car keys. How late will I be? If I estimate the tasks to find my keys, it will be something like:
I will look:
- In my backpack
- On the table
- In my pants
- On the kitchen counter
- On the bathroom counter
- On the nightstand next to my bed
- Under the nightstand next to my bed
Given all that, when will I find my keys? After #1? After #8? Later?