Laws of Software Engineering · Principle
Principle
Hyrum's Law
If your software has enough users, every behaviour they can observe will become something they depend on, even if you never promised it.
How to use it. Write down what you actually promise. Deliberately vary the things you do not promise, such as the order of results, the exact wording of error messages, and the timing. Make the rules explicit before users invent their own.
How it gets misused. Used to refuse all change. The point is to plan for the problem.
Related
-
Principle Postel's Law Be strict about what you send. Be flexible about what you accept. *This advice is now contested.*
-
Principle Idempotency An operation should produce the same result whether you run it once or run it ten times.
Clusters
- The Interface Contracts cluster - What you promise, what you accept, what your users come to depend on.