Systems that punish honesty
When reporting a problem costs more than hiding it, people stop reporting problems. The system did that, not the people.

A team I worked with had a dashboard nobody trusted. Not because the numbers were wrong, but because the numbers were right and everyone had learned what happened to whoever surfaced them.
The mechanism was simple enough to draw on a napkin. Deploy failures were tracked per engineer. The tracking was framed as visibility, never as evaluation, and I believe the person who built it meant that sincerely. But the number appeared in a weekly summary that a director read, and once a number is read by someone who decides promotions, its framing stops mattering.
What people did about it
Nobody lied. That is the part worth sitting with. Every individual response was reasonable, and the aggregate was a disaster.
Engineers started batching changes so one deploy carried a week of work, because one failed deploy looked better than five. They tested less in staging and more in production behind flags, because a flag flip that goes wrong is not a deploy failure. And when something did break, the first conversation was about whether it counted.
We spent more time deciding whether an incident was an incident than we spent fixing incidents.
An engineer on that team, in a retro that finally named it
Every one of those adaptations made the metric look better and the system worse. Deploys got larger, which made failures harder to diagnose. Staging atrophied. And the incident record, the single most valuable artifact for understanding a production system, became a negotiated document.
The general shape
This is not a story about a bad dashboard. It is an instance of a pattern that shows up anywhere measurement meets consequence:
- Something real gets measured, for good reasons.
- The measurement becomes visible to someone with power over careers.
- People optimise the measurement, because they are not stupid.
- The measurement decouples from the thing it was measuring.
- The thing itself gets worse, invisibly, because the measure says otherwise.
The trap in step five is that the system now actively resists correction. The dashboard is green. Anyone claiming there is a problem is contradicting the data, and in most organisations, contradicting the data requires more political capital than staying quiet.
What actually helped
The fix was not a better metric. Teams burn quarters searching for the metric that cannot be gamed, and it does not exist, because any metric simple enough to track is simple enough to game.
What helped was breaking the link in step two. Deploy failures kept being tracked and stopped being attributed. The number went to the team, never to an individual, and the weekly summary reported the team’s trend line instead of a leaderboard.
Two things happened within a month. Reported failures went up, sharply, because people stopped negotiating definitions. And deploy size came down, because batching no longer bought anyone protection.
The system had not gotten worse. It had gotten legible. Those look identical on a dashboard and are opposites in reality, which is the whole problem with dashboards.
Where this leaves you
If you run a team, the useful audit is not of your metrics but of your consequences. Find every place where surfacing bad news costs the person who surfaces it something, and remove the cost. Not the measurement, the cost.
You will get more bad news. That is the point. The bad news was always there; you were just paying people not to mention it.


