DEV Community

Ben Segni
Ben Segni

Posted on

Why Story Point Estimates Go Wrong Before Planning Poker Even Starts

Why Story Point Estimates Go Wrong Before Planning Poker Even Starts

You've probably been in this refinement session.

A ticket appears on screen. Someone reads the title, there's a brief discussion, and the team starts estimating.

One developer says three points. Another says eight. Someone else is convinced it's a thirteen.

Twenty minutes later, everyone's still debating the number.

But here's the uncomfortable question: did everyone actually understand the same piece of work?

In my experience, many estimation problems begin long before anyone chooses a story point value.

The problem isn't always the estimate

Imagine a GitHub issue titled:

Allow users to manage their notification preferences.

Seems straightforward.

One developer assumes it means adding three checkboxes to an existing settings page.

Another assumes it requires a new API endpoint, database changes and validation.

A third is thinking about backwards compatibility, default preferences and whether existing users need migrating.

They could reasonably arrive at three, eight and thirteen points.

And none of them is necessarily wrong.

They're estimating different interpretations of the same requirement.

Planning Poker might expose that disagreement, but it cannot magically supply the missing information.

An estimate is only as useful as the shared understanding behind it.

Story points don't fix unclear requirements

Story points are generally used to express relative effort, complexity and uncertainty rather than a precise number of hours.

But teams sometimes treat them as though they're a measurement instrument.

Three points becomes a small task. Five becomes medium. Eight becomes difficult.

Eventually, somebody asks why an eight-point issue took three days when the last eight-point issue took six.

That's when things get messy.

The problem is that two pieces of work can receive the same estimate for entirely different reasons.

One might be technically complicated but well understood.

Another might be straightforward to implement, but surrounded by unanswered questions.

Both could reasonably receive eight points.

What matters is understanding why.

If that reasoning never enters the discussion, the final estimate hides the very information the team needs.

Context gets lost between tools

Most development teams don't keep every relevant detail in one place.

The requirements might be in GitHub.

The design could be in Figma.

An important architectural decision might be buried in a document.

And the one person who understands an existing integration might be on annual leave.

During estimation, developers end up switching between tabs, searching for comments and trying to reconstruct decisions made weeks earlier.

Sometimes they simply estimate based on what they can see.

This creates a subtle problem: everyone may be looking at the same ticket, but not everyone has the same context.

A developer familiar with the existing implementation may see a small change.

Someone unfamiliar with it may anticipate considerable risk.

The useful conversation isn't necessarily about whose estimate is correct.

It's about what each person knows that the others don't.

Planning Poker works best when it reveals assumptions

Planning Poker has a valuable mechanism: participants choose estimates independently before revealing them together.

This reduces the opportunity for the first estimate to influence everyone else's thinking.

But the reveal isn't the finish line.

It's where the useful discussion begins.

Suppose the team reveals:

Developer Estimate
Developer A 3
Developer B 5
Developer C 13
Developer D 5

The instinct might be to ask Developer C why they've estimated thirteen.

That's reasonable, but the three-point estimate deserves attention too.

Perhaps Developer A knows an existing component can be reused.

Perhaps Developer C has spotted a security requirement nobody else considered.

Both perspectives could change the implementation approach.

The purpose of the discussion shouldn't be to persuade the outliers to choose five.

It should be to discover why the estimates differ.

Once the assumptions are understood, the team can estimate again with better information.

Five things to establish before estimating

I've found it useful to treat estimation as the final part of understanding a requirement, rather than the first.

Before asking for story points, establish a few basics.

1. What outcome are we trying to achieve?

A ticket should describe the intended behaviour, not merely prescribe an implementation.

"Add three checkboxes" tells developers what to build.

"Allow users to control which notifications they receive" explains the outcome.

That distinction leaves room for better technical decisions.

2. What's included and excluded?

Does the notification preferences change affect emails, in-app notifications or both?

Does it apply to existing users?

Are default settings changing?

Clear boundaries prevent developers from inventing their own scope.

3. What dependencies exist?

Does the work require another team, an API change, a database migration or a third-party service?

Dependencies can introduce uncertainty even when the implementation itself is simple.

4. What are the acceptance criteria?

The team should understand what successful delivery looks like.

For example:

  • Users can update their notification preferences.
  • Changes persist after refreshing the page.
  • Existing preferences remain unchanged unless explicitly updated.
  • Failed requests display useful feedback.

These criteria give everyone a common reference point.

5. What remains unknown?

Not every question needs answering before estimation.

But unresolved questions should be visible.

Sometimes the right outcome of refinement is a short technical investigation rather than an increasingly speculative estimate.

That's still progress.

Don't turn estimation into a negotiation

One particularly unhelpful pattern is treating estimates as targets.

Someone estimates thirteen points.

The team discusses it.

A manager asks whether it could be eight.

After enough discussion, eight somehow becomes the agreed number.

But unless the scope, implementation or uncertainty has changed, the work hasn't become smaller.

Only the number has.

A useful estimation session should produce shared understanding and expose risks. It shouldn't manufacture confidence.

And sometimes the team should simply acknowledge that a requirement isn't ready to estimate.

Better context leads to better conversations

This is one of the reasons I built Pointwise, a collaborative Planning Poker application integrated with GitHub.

The idea is straightforward: keep the GitHub issue visible while contributors estimate independently, reveal their scores together and discuss differences.

There's also an optional GitHub Copilot review to help examine requirements from different perspectives.

AI can help identify questions worth asking, but it shouldn't replace the team's technical judgement.

The important part remains the conversation between the people responsible for delivering the work.

See Pointwise in action

Here's a short walkthrough showing how Pointwise brings GitHub issues, independent estimates, simultaneous reveals and optional Copilot reviews into one workflow.

Watch the Pointwise walkthrough on YouTube

Final thoughts

Good estimates don't start with choosing a number.

They start with understanding the problem.

If a team disagrees on story points, that disagreement might be telling you something valuable about missing context, hidden dependencies or competing assumptions.

Don't rush to eliminate the difference.

Explore it.

Because sometimes the most useful outcome of Planning Poker isn't the estimate you agree on.

It's the problem you discover before writing a single line of code.


How does your team handle requirements that aren't ready to estimate? Do you investigate them first, or estimate with uncertainty included?

Top comments (0)