We've all seen the dashboard: lines of code committed, pull requests merged, tickets closed. It feels productive. It looks like progress. But somewhere along the way, we confused motion with momentum — and our teams are paying the price.
The Illusion of Velocity
Velocity metrics are seductive because they're measurable. You can graph them, compare them, set targets around them. But the things that actually make teams effective — psychological safety, code quality, knowledge sharing — don't fit neatly into a spreadsheet.
When you optimize for what's easy to count, you get more of what's easy to count. More commits. More PRs. More tickets moved to "done." But you also get smaller commits, rushed reviews, and tickets sliced into meaningless fragments to hit targets. The dashboard improves while the actual delivery gets worse.
When Metrics Backfire
I've watched teams game velocity metrics without meaning to:
- Developers split one logical change into five commits to hit commit-count targets
- PRs get approved without review because "we need to close more tickets this sprint"
- Technical debt accumulates because refactoring doesn't create visible metrics
- Knowledge hoarding increases because being the only person who understands a system creates perceived value
None of this is malicious. It's just humans adapting to the incentives you've created. The metric becomes the goal, and the real goal — shipping good software — becomes secondary.
What Actually Matters
Instead of counting commits, measure outcomes:
- Mean time to recovery: How fast can you fix production issues?
- Change failure rate: What percentage of deployments cause problems?
- Deployment frequency: How often can you safely ship changes?
- Lead time for changes: How long from commit to production?
These are the DORA metrics, and they measure what actually matters: your team's ability to deliver value safely and reliably. They're harder to game because they reflect real outcomes, not intermediate activities.
The Human Cost
Metrics that feel aggressive don't just produce bad behavior — they burn people out. When developers feel like their worth is measured in commits, they optimize for short-term visibility over long-term quality. They stop mentoring because it doesn't show up on the dashboard. They avoid challenging projects because the metrics don't capture the complexity.
The best developers I know don't optimize for commit counts. They optimize for impact. They spend days investigating a problem before writing a single line of code. They refactor ruthlessly because they know technical debt compounds. They mentor teammates even when it slows down their own PR throughput.
Your metrics should reward this behavior, not punish it.
A Better Approach
If you're running a team, start with a hard question: do your metrics measure busyness or effectiveness? Then:
- Remove activity metrics that create perverse incentives. No more commit-count targets.
- Add outcome metrics that reflect real delivery. DORA metrics are a good start.
- Make space for invisible work — code review, mentoring, documentation — in your retrospectives and recognition.
- Talk to your team about what actually helps them deliver, then measure that instead.
The goal isn't to stop measuring. The goal is to measure the right things — things that improve when your team is genuinely effective, not just when they're busy.
Velocity isn't about how fast you're moving. It's about whether you're moving in the right direction.
Top comments (0)