Laws of Software Engineering · Principle

Principle

Principle of Least Astonishment

Software should behave the way someone familiar with it would expect.

How to use it. When reviewers say "wait, what?", the design is wrong. The reviewer is the measuring instrument.

How it gets misused. Confused with "do what is familiar". Sometimes the right design is unfamiliar. Then your job is to make it learnable.

Related

Clusters