A Diagnostic Tool
If you recognize three or more of these patterns in your organization, it's time for a measurement reset.
The Metrics Landscape Is Toxic
Every engineering organization has experienced metric-induced dysfunction. A team optimizes for velocity and ships bugs. A company measures lines of code and gets bloated codebases. A manager tracks hours and gets exhausted developers pretending to work.
These aren't edge cases. They're the natural outcome of badly designed measurement systems.
This post catalogs the seven most toxic patterns we've observed across hundreds of engineering teams. Each one starts with good intentions—leaders trying to create accountability, visibility, or improvement. Each one ends in dysfunction.
Consider this a field guide. Learn to recognize the patterns. Understand why they fail. Know the antidotes.
Sin #1: Vanity Metrics
The Pattern: Measuring numbers that go up but don't correlate with business outcomes.
Examples:
- Commits per day
- Lines of code written
- Story points completed
- PRs merged
- Hours logged
Why It Happens:
Vanity metrics are easy to measure. They come straight from your tools—GitHub, Jira, your time tracking system. They make satisfying graphs that go up and to the right. They feel concrete and objective.
Leaders under pressure to "show something" grab these metrics because they're available, not because they're meaningful.
The Damage:
Vanity metrics create perverse incentives. When you measure commits per day, you get developers splitting changes into tiny commits. When you measure lines of code, you get verbose, bloated codebases. When you measure story points, you get point inflation.
Worse, vanity metrics create an illusion of visibility. Leaders think they understand what's happening because the numbers look good. They don't realize the numbers are disconnected from actual value delivery.
The Antidote:
For every metric, ask: "If this number doubles, does business value double?" If the answer is no—or even uncertain—it's a vanity metric.
Replace vanity metrics with outcome metrics: lead time to customer, defect escape rate, time to recover from incidents. These are harder to measure but actually matter.
Sin #2: Surveillance Creep
The Pattern: Starting with team-level metrics and gradually expanding to individual-level surveillance.
The Progression:
- Start: "We just want team velocity for planning."
- Six months: "Can we see velocity by person to identify bottlenecks?"
- One year: "Can we track individual commit activity?"
- Eighteen months: "Can we monitor time spent in IDE?"
Why It Happens:
It's a slippery slope. Each increment seems reasonable in isolation. "We're not surveilling—we're just adding visibility." But visibility accumulates into surveillance.
Often driven by a few bad actors: a leader who doesn't trust their team, or an incident that creates pressure to "monitor more closely."
The Damage:
Surveillance destroys psychological safety. When developers know they're being watched, they optimize for looking productive rather than being productive. They avoid the hard problems that require deep thinking (which looks like inactivity). They game every metric.
Surveillance also drives away top talent. The best engineers—who have options—leave for teams that trust them. You're left with developers who tolerate surveillance, which isn't a great filter.
Research consistently shows that monitored workers are less productive, less creative, and less loyal than trusted workers1.
The Antidote:
Draw a bright line at team-level metrics. Individual activity data should be visible only to the individual themselves — a line that holds better as architecture than as policy. If you can't trust someone's work without surveilling them, you have a trust problem—not a visibility problem.
The Trust Test
Ask yourself: would I be comfortable if the exact metrics I'm tracking about individuals were publicized? If the answer is no, you're surveilling, not measuring.
Sin #3: Goodhart Gaming
The Pattern: Optimizing the metric rather than the outcome it was meant to represent.
Named After: British economist Charles Goodhart, who observed: "When a measure becomes a target, it ceases to be a good measure."
Examples:
| Metric | Intended Outcome | Gaming Behavior |
|---|---|---|
| Story points | Predictable delivery | Point inflation, easier stories |
| Test coverage | Code quality | Trivial tests that don't catch bugs |
| PR count | Shipping velocity | Splitting work into tiny PRs |
| Cycle time | Fast delivery | Pushing code without review |
| Bug count | Quality | Classifying bugs as "features" |
Why It Happens:
Humans are optimization machines. When you tie rewards (explicit or implicit) to a number, people will find ways to make that number look good. This isn't malicious—it's rational behavior in the incentive system you've created.
The Damage:
Gaming disconnects metrics from reality. The number improves while the underlying situation stays the same—or gets worse. Meanwhile, leaders make decisions based on the improving number, blind to the gaming underneath.
Eventually, the disconnect becomes obvious (customers complain, incidents spike, talent leaves), but by then significant damage is done.
The Antidote:
Use multiple metrics that tension against each other. Velocity alone can be gamed by shipping garbage. Velocity + quality means shipping garbage hurts your score. This is why we measure six dimensions, not one.
Also: never tie compensation or performance evaluation directly to metrics. The moment you do, gaming intensifies.
Sin #4: Context Blindness
The Pattern: Comparing teams without accounting for codebase age, complexity, or technical debt.
Examples:
- "Team A delivers 20% more story points than Team B—what's wrong with Team B?"
- "Our cycle time is 40% slower than the industry benchmark—we need to improve."
- "This developer has half the commits of their peers—are they underperforming?"
Why It Happens:
Comparison is intuitive. Humans naturally benchmark against peers. Leaders want to identify "high performers" and "underperformers." Vendors sell "industry benchmarks" that make comparison easy.
The Damage:
Context matters more than comparison. Team B's codebase is 10 years old with massive technical debt—of course they deliver fewer points. Your cycle time is longer because you have rigorous security reviews—which your benchmark doesn't require. That developer has fewer commits because they're mentoring three juniors.
Context-blind comparison creates unfair pressure, destroys morale, and leads to bad decisions. Teams in hard situations get punished for things outside their control.
The Antidote:
Compare each team to its own history, not to other teams. The question isn't "Why is Team B slower than Team A?" It's "Is Team B getting faster than last quarter?"
If you must compare across teams, normalize for context: codebase age, team experience, technical debt load, domain complexity. Better yet, just don't compare. It rarely leads to good outcomes.
Sin #5: Snapshot Addiction
The Pattern: Obsessing over this sprint's numbers rather than multi-sprint trends.
Symptoms:
- "Velocity dropped 15% this sprint—what went wrong?"
- "Bug count spiked—we need an action item."
- "Cycle time is up—let's add more standups."
Why It Happens:
Snapshots are visible and alarming. A red number demands attention. Trends require patience and historical context. In high-pressure environments, snapshots win.
The Damage:
Variance is normal. Any two-week period will have natural fluctuation: holidays, sick days, hard problems, easy problems. Reacting to every snapshot fluctuation creates whiplash—constant process changes that never stick long enough to evaluate.
Worse, snapshot addiction makes teams afraid to do necessary work that hurts short-term numbers: paying down tech debt, refactoring complex systems, mentoring juniors. All of these temporarily reduce "productivity" metrics.
The Antidote:
Train yourself to ask: "Is this a trend or a blip?" Look at the last 6 sprints, not just this one. Set up anomaly detection that only alerts on statistically significant deviations—not every wiggle.
Better yet: only make process changes based on multi-sprint trends. If a number is bad for three sprints in a row, investigate. If it's bad for one sprint, wait.
The Variance Trap
A team with consistent 80% sprint completion is healthier than a team swinging between 60% and 100%. Yet snapshot addiction would celebrate the 100% sprint and ignore the underlying instability.
Sin #6: Leaderboard Toxicity
The Pattern: Ranking individuals in ways that destroy collaboration and psychological safety.
Examples:
- "Here are the top 5 contributors this month."
- "Individual velocity scores for the quarter."
- "Code review completion leaderboard."
Why It Happens:
Leaders think competition motivates. Leaderboards are visible and simple. Top performers feel recognized.
The Damage:
Leaderboards destroy collaboration. If my ranking depends on my individual output, why would I spend time helping you? Why would I mentor juniors? Why would I do the unglamorous infrastructure work that doesn't show up on the board?
Leaderboards also create anxiety. Even top performers feel pressure to maintain their position. Middle performers feel exposed and demoralized. Bottom performers either disengage or leave.
The psychological safety research is clear: teams where individuals feel judged underperform teams where individuals feel safe2.
The Antidote:
Never publish individual rankings. Period. If you want to recognize top performers, do it privately and focus on behaviors, not metrics.
Team-level recognition is fine. "This team improved their cycle time by 30% this quarter" celebrates without creating toxic competition.
Sin #7: Tool Tunnel Vision
The Pattern: Measuring AI tool usage instead of outcomes.
Examples:
- "We're tracking AI adoption rate—60% of developers used Copilot this month."
- "AI-generated code percentage: 35% and growing."
- "Time saved by AI: estimated 400 hours."
Why It Happens:
Organizations invest in AI tools and want to prove ROI. Tracking usage is easy—the tool provides it. Proving actual productivity improvement is hard.
The Damage:
Tool usage doesn't correlate with outcomes. Studies show AI-assisted developers sometimes produce more bugs, slower delivery, and code that requires more review3. High adoption rate + worse outcomes = money wasted.
Worse, tracking AI usage creates pressure to use AI when it's not helpful. Developers force AI into workflows where it adds friction, just to show up on the adoption dashboard.
And fundamentally: the moment you track how developers get their work done, you're measuring activity, not outcomes. You're back to surveillance.
The Antidote:
Be AI-neutral. Don't track tool usage—track outcomes. If a developer achieves great outcomes with AI, great. If they achieve great outcomes without AI, also great. If they have poor outcomes despite high AI usage, that's the actual signal.
The question isn't "Are people using AI?" It's "Are people effective?"
How Do You Know If Your Metrics Are Toxic?
Run a quick diagnostic. For each of your current engineering metrics, ask five questions: does it correlate with business value, can it be gamed, does it rank individuals, do you react to snapshots or trends, and does it account for context?
| Question | Good Answer | Bad Answer |
|---|---|---|
| Does it correlate with business value? | "Yes, we've validated the relationship" | "We assume it does" |
| Can it be gamed? | "Gaming hurts other metrics" | "Gaming is easy and rewarding" |
| Is it used for individual comparison? | "Never—only team-level" | "Yes, we rank individuals" |
| Do you act on snapshots or trends? | "Only multi-sprint trends" | "Every sprint fluctuation" |
| Does it account for context? | "Teams compared to themselves" | "Teams compared to each other" |
If you answered "bad" to three or more: your metrics are likely causing more harm than good.
The Path Forward
Fixing toxic metrics requires courage. You'll need to:
- Retire comfortable metrics that feel objective but measure the wrong things.
- Resist pressure from stakeholders who want "simple numbers."
- Accept ambiguity in areas where precise measurement isn't possible.
- Invest in better measurement that requires more thought but yields better signal.
The payoff is an engineering organization that actually improves—not one that gets better at gaming dashboards.
We've built Simyl Flow around metrics that avoid these seven sins. Outcome-driven, multi-dimensional, trend-based, context-aware, privacy-preserving, and AI-neutral by design.
Measure developer effectiveness, not just productivity
Six dimensions of effectiveness. Trends over time. Insights that help your team see what's working.
Sources
Footnotes
Continue reading
- The 6 Dimensions of Developer Effectiveness: A Framework for Measuring What Actually MattersWhy we chose these specific dimensions, what each one reveals about real engineering performance, and how measuring outcomes transforms teams. · 10 min read
- Your Method Already Has Retrospectives. It Calls Them Lessons Reports.You were told Simyl Flow is for agile teams. It's for teams with dates and tickets. If you run phases and milestones, your method already contains every ceremony in the product — you just run them by hand, into documents nobody reopens. · 9 min read
- Measuring What AI Actually Does to Your TeamThe AI productivity narrative doesn't match the data. Here's how to understand AI's real impact on your specific team—without surveillance. · 10 min read