Dr. Wallace's Favorite Mental Models

Hyrum's Law

Once enough people depend on a system, the written contract stops being the real contract. Every quirk anyone can observe — intended or not — quietly becomes something somebody relies on.

The 30-second version

Hyrum's Law, named for Google software engineer Hyrum Wright and popularized in the book Software Engineering at Google (2020), states it plainly: "With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody." It isn't about bad consumers breaking the rules. It's a statement about scale. A documented spec might promise only that a function "returns a list of items" — but if that list has always come back in alphabetical order, some fraction of a large enough user base will quietly write code that assumes alphabetical order, whether or not anyone ever promised it. Change the ordering later for a legitimate performance reason, and you break them anyway. The lesson isn't that those users were wrong to rely on it. It's that at sufficient scale, reliance on undocumented behavior becomes statistically certain, so the real interface of any widely used system is everything it visibly does, not just what its documentation says it does.

Mental Model Compass

Where Hyrum's Law sits next to three other models already in this collection about structure, incentives, and inherited decisions. Click a dot to see why it sits where it does.

A compass plotting four mental models about structure and hidden reliance Horizontal axis: whether the model is mainly about a single decision or choice (left) or about how a whole system evolves over time (right). Vertical axis: whether the model is mostly a trap noticed after the fact (bottom) or an active design principle you apply on purpose (top). Hyrum's Law sits in the upper-right: whole-system evolution, and something you can design for proactively. Chesterton's Fence sits upper-left: a single decision, also something you actively apply before acting. Goodhart's Law sits lower-left: a single choice of metric, mostly a trap realized afterward. Conway's Law sits lower-right: whole-system evolution, also mostly noticed as a trap after a reorg. About how a whole system evolves → About a single decision or choice ← A trap noticed after the fact ↓ · A design principle to apply ↑ Hyrum's Law Chesterton's Fence Goodhart's Law Conway's Law

Click or focus a dot to read why it sits where it does.

Build the idea, one step at a time

What it looks like in different fields

This is the canonical case the law was coined for. A cloud provider makes what looks like a purely internal change — reordering fields in a JSON response, or tightening a timestamp's precision — and breaks a customer's integration that happened to parse the response positionally or rounded the old precision in a particular way. Google's internal engineering practice takes this seriously enough to design against it directly: the Protobuf serialization format deliberately leaves field order unspecified and unstable release to release, precisely so that no consumer can quietly build a dependency on an ordering the format never promised.