Everything we do in life takes some amount of effort, and some amount of time.
This fact is reflected in the way we assign a point value to the stories in our projects. Your morning routine, for instance, is a set of stories that complete the goal of getting to work on time. By now you have that routine down pat, presumably. Let’s break it down, though, for this example:
To get to work I need to complete these stories within the time box:
- Snooze a bit longer
- Pick out clothes
- Shower and Groom
- Drive to Work
- Park and Walk
Each of these story titles, in Scrum, would also have an explanation of what criteria must be met in order to be considered “done”. Take”Dress” for example: I must be able to tolerate winter cold, have matching socks, be covered top and bottom, etc.
Each story requires some amount of time and some amount of effort. Some things are easy, but take a long time (like driving to work), while other things require more effort but are quick to do (like parking and walking). We can assign a value to each task that reflects its relative effort — this value is expressed in “story points”.
Here is the previous list, with story points:
- Snooze a bit longer: 1pt
- Pick out clothes: 3pts
- Shower and Groom: 5pts
- Dress: 2pts
- Eat a cup of yogurt: 2pts
- Drive to work at rush hour on freeway: 8 pts
- Park and walk: 3pts
Assign points based on relative effort. In other words, do not count the minutes or the calories needed to do each story. Instead, consider the stories in relation to each other.
We know intuitively that pushing the snooze button is super quick and that driving to work is super long by comparison. So, the points reflect an order of magnitude. One way to reflect orders of magnitude is a numeric pattern known as the Fibonacci sequence: 1,2,3,5,8,13, etc. — where we take the sum of the two values to the left, to get the new value (0+1=1, 1+1=2, 1+2=3, 2+3=5). This is a very popular way of doing it, but there are all kinds of schemes that have the same effect.
If we add up all the points above, it will take 24 points of effort to get to work. My “get to work” Sprint has a 24 point value. We know the team (in this case, my car and I) have a capacity of 28 points, we know we can try to complete another story, like “stop and get gas” for my upcoming weekend trip. The “get gas” story is meant for the “go surfing this weekend” sprint, but if we have the time now, we might as well do it.
It could be that the “drive to work” sprint is accomplished more easily than predicted. In that case it’s good to have extra stories ready to maintain our momentum and accomplish more. So we prepare 12 points of extra stories, just in case:
- Drop off package: 3pts
- Pick up snacks for weekend: 5pts
- Put in windshield washer fluid: 3pts
- Call Mom: 1pt
Assigning a point value to each story in your project will help you estimate more accurately and accomplish more.