Estimating Story Points is like Guessing Jellybeans in a Jar

How to estimate jellybeans in a jar

Estimating time and story points are critical aspects of managing projects and planning sprints. How else are you going to determine how much work you can take on in a sprint if you don’t have any idea how much effort it might take to perform certain things and satisfy certain user stories?

When it comes to budgeting, project management, planning, and forecasting, we will often be faced with the challenge of estimating how long things are going to take, how many people will be required, and what will be the level of effort to do various things.

Sometimes, it seems that estimating story points is like guessing the number of jellybeans in a jar.  Fortunately, there are methods that we can use to develop reasonable estimates.  One of the most effective methods, in my opinion, is a group discussion with a slightly diverse audience.

As an experiment, I sent a Slack message to several people in my team.  The question was simple and straight forward, “wild-assed guess, how long would it take to upgrade PHP 5.6 to PHP 7.0 on a Drupal site.”  No other explanation, context, or background.  Within seconds, people started to respond to my Slack message.  This is the tally:

  • Daniel guessed 1-2 hours
  • Lucas guessed 1-8 hours
  • Felipe guessed 4-8 hours
  • Cristian guessed 8-16 hours
  • Shefali guessed 8-16 hours
  • Andres guessed 16 hours
  • Flynn guessed 16 hours
  • Jose guessed 15-30 hours
  • Luis guessed 16-24 hours
  • Blake guessed 20 hours

Here is the interesting thing…

Initially, many of them guessed low.  They started off with zero to one hours.  Then, they wrote back saying that there might be conditions that could add a couple hours.  Then, they wrote back again saying that other issues might require some hours.  Bottom line is that the more they thought about it, the more hours they added to their estimate.  This would be my general observation:

  • Highly specialized and technical experts estimated fewer hours
  • More generalized project managers estimated higher hours
  • Technical experts focused exclusively on the task at hand
  • Project managers considered communication, documentation, remediation
  • People less familiar with the type of work, erred on the side of more hours

Now, if we had performed this exercise in an open forum, say a GoToMeeting, group Slack channel, or conference call, I’m sure that as people thought out loud, raised issues, suggested methods or solutions, and brainstormed scenarios the group consensus would have resulted in above average hours in their estimate, say 12-16 hours, and they would have had a more comprehensive plan that balanced risk and prudence.

Crowdsourcing estimates among a slightly diverse group of people with different perspectives, ideas, and experience will most likely yield a reasonably accurate estimate.

So, when you are planning your nest sprint or release, when you are planning your next budget, when you are trying to figure out how many points to assign to a story, I recommend you assemble a team of 3-5 people to discuss it out loud and develop a loose consensus for your estimates.

I will check back in and let you know exactly how long it took to do this upgrade.  Winner gets to take home the jar of jellybeans.