Skip to main content
← All posts
5 min read

Why Your Sprint Planning Is Theater (And What to Do Instead)

Story points don't predict delivery. Velocity charts don't measure velocity. Here's how to plan engineering work without the agile cosplay.

Share

A two-hour sprint planning meeting. Fourteen tickets. Story points assigned by gut feel. The team commits to 47 points. They deliver 31. The next sprint they commit to 35. They deliver 29. The velocity chart shows a smooth line. Leadership is satisfied.

None of this is real.

What the rituals are actually for

Sprint planning, daily standups, velocity charts, retrospectives — these were designed to solve specific problems:

  • Sprint planning: force a conversation about what's getting built
  • Daily standup: unblock people who are blocked
  • Velocity: understand if you're improving over time
  • Retro: improve the process

In most teams, these rituals don't do those things. They do something else:

  • Sprint planning: create the appearance of plans, generate JIRA tickets to point at later
  • Daily standup: status updates to the manager (the actual blockers don't get raised here)
  • Velocity: number theater for stakeholders
  • Retro: complaints session that doesn't change anything

The rituals are still happening. The function isn't.

Story points are not predictions

Here's the awkward truth: story points correlate with engineer-hours about as well as a coin flip.

A 5-point ticket can take 30 minutes (the engineer already knew the answer) or two weeks (turned out to involve a deeper migration). A 1-point ticket can take a day (looked easy, hidden complexity).

What story points actually measure: the engineer's confidence at the moment of estimation, before any of the actual work has happened.

That's not nothing. It's a useful signal that "this looks risky, we should investigate." But it's not a delivery prediction. Treating velocity as predictive of next sprint's output is treating sentiment as truth.

What good planning looks like

Good engineering planning has three parts:

1. The next thing to ship is obvious. Not "in this sprint we'll do these 14 tickets." More like "we're shipping the new auth flow this week, the rest is supporting work." A clear primary goal.

2. Risk is identified, not estimated. Skip points. Ask: "what could go wrong?" If someone says "the data migration might take longer than expected," that's the conversation. Not "is this 5 points or 8?"

3. There's slack. Real teams don't fill 40 hours per engineer with planned work. There's interrupt overhead, oncall, code review, mentoring, fixing flaky tests. If you plan for 100% capacity, you'll deliver 60%.

A planning meeting that does these three things takes 30 minutes. The two-hour pointing exercise is the part that wasn't doing anything.

Replace standups with async

Daily standups solve a problem from co-located teams: walk through the room, surface blockers. In a remote/hybrid world, the same meeting is a status report performed for the manager.

What works better: an async update in Slack each morning.

*Yesterday:* shipped the rate limiter
*Today:* working on the migration script
*Blockers:* need access to staging DB, asked @alex

Read in 5 min. Skip the meeting. The blocker is captured in writing where someone can act on it.

If you genuinely need synchronous unblocking, do it once a week, not every day. Or do it ad-hoc — "hey @alex, are you free for 10 min?"

Replace velocity with cycle time

Velocity (story points per sprint) is misleading because the input is fake. Use cycle time instead.

Cycle time: how long from "first commit on a feature" to "shipped to production."

This is real. It comes from git, not from JIRA estimates. You can compute it. You can graph it. It tells you whether your team is getting faster.

A team going from 8 days median cycle time to 3 days is genuinely faster. A team going from 32 to 47 story points per sprint may have changed nothing except their estimation calibration.

When the rituals do work

Standups work for very junior teams who genuinely benefit from forced sync. The senior engineer learns something useful from hearing what the junior engineer is stuck on.

Sprint planning works when the work is genuinely uncertain — research, discovery, infra migrations — and the planning meeting is actually a problem-solving session.

Retro works when there's a culture of follow-through. If retro action items are in a doc that nobody reads, it's theater. If they're in a backlog that gets worked, it's real.

The rituals aren't bad in themselves. They're bad when they're performed without their function.

What to measure

  • Cycle time (commit → production), median and p95
  • PR turnaround time (open → merge)
  • Deploy frequency (per day, per service)
  • Change failure rate (% of deploys that need a hotfix or rollback)

These are the DORA metrics. They're real. They come from git and CI. No one has to estimate anything.

If your team's DORA metrics are improving, you're getting faster. If they're not, no amount of velocity-chart-up-and-to-the-right tells the truth.

The hardest part

The rituals exist because someone above you wants to see them. Velocity charts go in board decks. Sprint planning calendars are how PMs feel in control.

Replacing them requires an honest conversation: "we're spending 6 hours a week on planning theater that doesn't predict delivery. Here's what we'll do instead." That conversation goes badly if leadership has bought into the agile vocabulary.

The fix is to deliver well first, then have the conversation. A team that ships consistently has political capital. A team that misses commits doesn't get to question the rituals.

The takeaway

Most agile rituals are vestigial. They survive because they look like productivity. Replace them with smaller versions that do the original job: planning that focuses on risk, async standups, real metrics from git. Your team gets back 5 hours a week and starts shipping faster.

Work with me

I consult with engineering teams on AI adoption, cloud architecture, and engineering effectiveness. If this post surfaced a challenge you're facing, let's talk.

Get in touch →

Explore more on these topics:

Subscribe to new posts

Get an email when I publish something new. No spam, unsubscribe any time.