Stop Obsessing Over Your Team Velocity
Cover photo by Alvaro Reyes on Unsplash
Velocity is a vanity metric that often leads to bad engineering outcomes. I once joined a team that tracked points like they were gold bars. We spent three hours every two weeks debating if a task was a three or a five. It was exhausting.
Why the math feels wrong
We tracked our velocity like this:
const getVelocity = (sprints) => { const totalPoints = sprints.reduce((acc, s) => acc + s.points, 0); return totalPoints / sprints.length;};One sprint, we delivered 40 points. The next, we hit 20. Management immediately asked why we were half as productive. The reality? We spent that second sprint untangling a legacy database schema (which didn’t fit neatly into any point bucket). Our velocity dropped, but our system health improved massively. Points don’t account for deep work or cleanup (a point I sometimes forget myself when I’m under pressure).
The developer objection
“But we need a way to predict when features will ship.” That is fair, and estimation is a real problem. However, comparing velocity across teams is a losing game. It incentivizes teams to inflate their estimates to look more productive. You end up with fake data that hides actual bottlenecks. I’m honestly not sure if there’s a perfect way to estimate software, but focusing on the total count of completed tickets is rarely the answer.
A better way to look at progress
Instead of counting points, look at the flow of work. Ask these questions instead:
- How long does a pull request sit waiting for a review?
- Are we blocking each other for days because of internal dependencies?
- How many times did we have to roll back a deploy?
Code quality suffers when you chase arbitrary numbers. If you force a team to hit a target, they will cut corners. They will skip tests. They will ignore technical debt. (I have seen this happen more times than I care to admit.)
If you find your team obsessing over velocity, try a month without it. Focus on finishing a few high-impact items well instead of shuffling a dozen low-effort tasks to inflate the chart. Does the team feel more confident in their output without the spreadsheet tracking their every move?