# Goodhart's Law

> When a measure becomes a target, pressure to improve the number can break its connection to the outcome it once represented.

- HTML version: https://robbiepalmer.me/ideas/goodharts-law
- Source: https://en.wikipedia.org/wiki/Goodhart%27s_law

Goodhart's Law warns that a useful measure can stop being useful once rewards, status, or policy
depend on hitting it. People optimise what the system asks for. Sometimes that improves the real
outcome. Sometimes it produces more tests with weaker assertions, more deployments with less value,
or cleaner dashboards that hide the work.

The answer is not to abandon measurement. I prefer measures that stay close to an outcome, pull in
opposing directions, and remain open to revision. A score should start a conversation about the
system, not end one.

## How I use it

* Treat thresholds as guardrails. Inspect the work before claiming quality.
* Review the work that moved the number, especially after incentives change.
* Pair speed with stability and output with an outcome.
* Retire a metric when gaming it becomes easier than improving the thing it represents.

## Related ideas

- [DORA Metrics](https://robbiepalmer.me/ideas/dora-metrics.md): A research-backed set of software delivery measures that keeps throughput and instability in view together.
- [Jevons' Paradox](https://robbiepalmer.me/ideas/jevons-paradox.md): Efficiency can lower the effective cost of a resource enough that total use rises instead of falls.

## Where it appears

- Project: [Agentic Code Review](https://robbiepalmer.me/projects/agentic-code-review.md)
- Blog post: [Crossing the Chasm with AI Platform Teams](https://robbiepalmer.me/blog/2026-08-18-crossing-the-chasm-with-ai-platform-teams.md)
- ADR: [ADR 049: Zizmor & actionlint (GitHub Actions Security)](https://robbiepalmer.me/projects/personal-site/adrs/049-zizmor.md)
- ADR: [ADR 052: Knip (Dead Code & Dependency Hygiene)](https://robbiepalmer.me/projects/personal-site/adrs/052-knip.md)
- ADR: [ADR 053: OpenSSF Scorecard (Repo Security Posture)](https://robbiepalmer.me/projects/personal-site/adrs/053-openssf-scorecard.md)
- ADR: [ADR 054: Gitleaks (Secret Scanning)](https://robbiepalmer.me/projects/personal-site/adrs/054-gitleaks.md)
- ADR: [ADR 055: typos (Spell Checking)](https://robbiepalmer.me/projects/personal-site/adrs/055-typos.md)
- ADR: [ADR 045: SonarQube](https://robbiepalmer.me/projects/recipe-site/adrs/045-sonarqube.md)
- ADR: [ADR 065: Spectral (OpenAPI Linting & API Governance)](https://robbiepalmer.me/projects/recipe-site/adrs/065-spectral.md)

---

Markdown index of this site: https://robbiepalmer.me/llms.txt
