Story Points aren't Normal Numbers

Story Points aren't Normal Numbers

If you're creating a spreadsheet to calculate the productivity of your team in the coming weeks, based on their story point velocities, I need you to hit a few keys for me. Ctrl+A and Del. Your data is faulty.

"But the team have done 20 points, 25 points and 23 points. I'll take an average and that'll be their productivity!"

No. Story points look like numbers, but they don't behave like them. They're representative - symbolic. There are some things you can do with them and others that you can't. Normal numbers are on an interval scale, meaning the differences between them are valuable. Five is four bigger than one, for example.

Story points, on the other hand, are ordinal. One can happily say that 5 story points are greater than 1 story point, but five is not five times the size of one, nor is it four bigger. Their relationship doesn't exist in this system.

"Well, what do they do then?"

Imagine estimating the work involved in building a wall. If you've built walls a million times in the past, you're going to have a good idea. You give it one story point. Simple.

Sometime later, however, you're then tasked with creating two more things - a fireplace and a rotating wall (perhaps you're working for a Bond villain). You've not done that many fireplaces and you've never done a rotating wall. What do you do?

"You take a relative estimate!"

That's right, but it's not the estimate that really matters. The value that Story points give you is the conversation. When we all end up with different numbers, it forces us to justify our guess. We bring out our best arguments and debate the number. This is their sole purpose - to be debated, not to be calculated. The victor of the discussion gets to attribute their number to the task, for the sole reason of reminding the team of the debate they had.

You guess based on your knowledge of a wall. It is paramount that we pause and note that word - guess. We didn't calculate, deduce or infer. We guessed.

We attribute the fireplace with five story points, deciding it's harder than a wall. The wise will take this message for what it is. It's harder to build a fireplace than a wall. End of story. Others, however, might take it a step further - they may make the bold assertion that it is 5 times harder to make a fireplace than it is to construct a wall.

"Five is five times as big as one though!"

With normal numbers, sure. Remember. They're not numbers. They're symbols. They look like numbers, but they sure don't behave like numbers. A fireplace does not take five times as long as a wall. Likewise, it does not follow that we could erect five walls in lieu of a fireplace. It means, by some educated guesswork, we've decided that a fireplace is a bit more work than a wall.

"How much is 'a bit'!?"

Who knows. They're symbols of perceived complexity, not numbers. All we get to say, when playing the game of story pointing, is that five is bigger than one. Beyond that, we're ascribing properties to a system that has no concept of them. A wall minus a fireplace is not a rotating wall. Remember, this is an ordinal scale. The difference is meaningless.

"What can we do with them then?"

It's a little alarm that tells you to check that everything is okay. It is not a foolproof metric, but it's just a hint. A smell. Don't be fooled by their numerical appearance - story points are as subjective as beauty, love and the frankly baffling enjoyment of U2.

Treating it as an objective truth will only invite the illusion of a predictability - a mirage in the desert to quench a thirst for understanding. The second you try to use it, to drink from the fictional lake, it will evaporate before your very eyes and you'll be left confused, thirsty and in a desert...

I fear I've stretched that metaphor as far as it will go.


Usman Riaz

Software Engineer at BBC

5 年

Very well-written post Chris.

回复

要查看或添加评论,请登录

Chris Cooney的更多文章

  • Coding in the Negative Space

    Coding in the Negative Space

    In typical software engineering, it has become the de facto approach to build some code, and accompany it with an…

    2 条评论
  • A Simple Rule for Clean(er) Code

    A Simple Rule for Clean(er) Code

    I was tempted by the glittering allure of a clickbait title - "SENIOR CODING IN ONE STEP" or something to that effect…

  • Why software engineers are underpaid

    Why software engineers are underpaid

    I have mentored over a hundred engineers in the past few years. Some short term, some longer term, and I've seen all of…

    8 条评论
  • How to Communicate your Identity as a Company

    How to Communicate your Identity as a Company

    When is the last time you read a set of company values and knew what that company was about? I don’t mean…

  • Stop saying "The Business"

    Stop saying "The Business"

    Day in, day out, I hear of an ominous, shadowy figure making decisions that endlessly alter the course of my…

    24 条评论
  • Collaboration through Automation

    Collaboration through Automation

    "We'll never get that through InfoSec" "The UX team are going to have a mare when they see this" The ideal way to…

  • Acknowledging Privilege

    Acknowledging Privilege

    "My family threw me out of the house when I explained that I was trans." "I feel uncomfortable in the gym; sometimes I…

  • Motivation won't save you..

    Motivation won't save you..

    New years day is a funny old time. Our social media is saturated with heart felt pledges of transformation.

    4 条评论
  • Lesson Learned: Developers and Free Time

    Lesson Learned: Developers and Free Time

    "This is ridiculous", I gasped. Steps heavy with purpose and voice thick with satisfying exasperation.

    2 条评论
  • Challenging your Developers

    Challenging your Developers

    8 days ago, two very talented developers (more so than I, I freely admit) and little old me, were given a challenge by…

    2 条评论

社区洞察

其他会员也浏览了