Being asked to give an estimation can feel like a bit of a lose-lose situation for the dev team. Over-promise and you’ll have the stress of rushing and potentially missing the deadline. Under-promise and you’re met with grumpy clients who want to know what the hold-up is.
Agile estimates should be accurate, but it’s important to remember they’re also just estimates. They don’t have to be set in stone. What they do need to be is as close to accurate as possible, without being unrealistic.
Story points are a way to make your estimates more accurate while removing the stress of being tied to a deadline. It’s a clever agile estimation technique that encourages the team to focus on difficulty rather than time. Here’s what you need to know.
Why is estimation important?
In agile software development, the product owner is responsible for prioritizing the backlog. To do this, they rely on estimations from the dev team. The better the estimation, the easier it is to order the backlog.
What are story points?
Traditionally, software teams gave their estimates in terms of hours, days, weeks, and months. Now, teams are quoting in terms of story points. These are points that indicate the difficulty of the work — but instead of going up sequentially, they use a Fibonacci sequence (or something very close to it). For example: 1, 2, 3, 5, 8, 13, 21, 34. A story with a rating of 2 requires twice as much effort as a task with a 1 designation. And a story assigned a rating of 5 requires five times more effort than a task given a 1.
Story points vs. hours
It may sound confusing, but it’s actually a constructive way to help teams think carefully about the effort that will go into the work.
When you estimate in hours, estimations become less accurate the longer the job takes. Guessing in hours also neglects differences in expertise. For example, if one person estimates and another does the work, the time needed may vary because their expertise may vary. An hour for one developer might not look the same as an hour for a different developer.
Another issue with predicting in hours is that people usually underestimate the obstacles they’ll face. They don’t factor in unforeseen emails, sick days, meetings, and so on. A one-day job could easily become a week if distractions or difficulties arise.
When using story hours, the team takes more factors into account, which allows for more accurate estimates. This includes:
- The amount of work to do
- How complex the work is
- Any risk or uncertainty
Why should you use story points?
Estimating without giving a specific time has several benefits:
- Not having a precise time commitment may sound counter-productive, but instead, it allows the team to embrace uncertainty. This removes the stress of having to rush towards a deadline.
- Further story point estimates can be made based on those that have gone before, which improves planning estimates.
- Once you agree on the effort of each story point value, you can assign points quickly.
- Story points reward teams for solving problems based on difficulty rather than time spent on a task. This keeps everyone focused on value, not hours.
Planning poker is the best (and most fun) way to estimate
Planning poker is an exercise designed to get the whole team estimating together. When each person’s estimate is taken into account, the product manager can work out the average and use that as the official story point number. Here’s how it works.
First, each team member takes an item from the product backlog. They’ll mentally work out how difficult they think it is. Then they’ll choose a card with the number that represents their estimate.
Next, each person holds up their card for the rest to see. If there are differences, the team spends a short amount of time getting the rationales behind each choice and agrees on something in the middle. If the ranges are widely varying, everyone can share their thoughts, then do the exercise one more time. Someone might have some particularly illuminating information that could alter the choices.
5 ways to do story points right
1. Involve the whole team
Everyone has their own insight, so the more you add to the mix, the more accurate your estimates will be. Involving everyone also boosts team morale. Relevant people have a say in what the project should look like, which is way better than a few people deciding, then reporting back to the rest of the team. This could lead to invalid results, resentment, and additional meetings to adjust estimates.
2. Work out a max for your story points
Say your upper limit is 21 — if a task is assigned a story point value bigger than that, then it’s a good idea to split that task into smaller ones and create new estimates for those. The jobs will be smaller and easier to estimate because there are fewer variables to take into account.
3. Spend more time on estimates at the start
Estimates should be as accurate as possible for items higher up in the backlog. For items buried a little deeper, rough guesses are fine. Requirements are likely to shift as the project progresses, so it’s best not to waste too much time on something that may change.
4. Fine-tune your estimates
Assigning a task a number based on its difficulty is tricky when you’ve nothing to compare it to. But, as you do more and more iterations, the team will get a better feel for what certain numbers feel like. To help you work this out, review past user stories that were all assigned a certain number, then chat with the rest of the team about whether or not they all required roughly the same level of work. If so, then well done — you’re great estimators! If not, no worries — you can use this insight to plan better from now on.
5. Use project management tools
Cloud-based project management tools make it super easy for the whole team to check in and see backlog progress. Look out for a platform that lets you track story points and adjust estimates as the project progresses. And remember to set up automatic notifications. If anything changes — whether a new item is added to the backlog or a story point estimate adjustment — the whole team will find out in real-time. When everyone’s working on a tight schedule, the more you can encourage team collaboration, the smoother your project will be.