jargon

Comparison

Chesterton's fencevsHyrum's law

Chesterton's fence

you deleted the odd-looking retry, and a week later found out which flaky vendor it was for.

Do not remove something until you know why it was put there. It is not an argument for keeping everything — it is an argument that 'I cannot see why this exists' is a statement about your knowledge rather than about the thing. In practice it costs ten minutes of git blame, and the cases where those ten minutes save an incident are exactly the cases nobody could have predicted.

Full entry →

Hyrum's law

you changed the order of a JSON response and a customer's integration broke, and nowhere did you promise an order.

With enough users, every observable behaviour of your system will be depended on by somebody, regardless of what you documented. Response ordering, timing, error message wording, the number of decimal places — all of it becomes contract by use. It is the reason internal-only rarely stays internal-only and the reason a deprecation plan is a negotiation about actual usage rather than about what the specification said.

Full entry →

Related comparisons