64

Interaction

Principle of Least Astonishment

A component should behave the way its users already expect.

The article

If

Users arrive with a model assembled from every similar thing they have used. A behaviour that is defensible but surprising costs more than a behaviour that is slightly worse but predicted, because the surprise is paid again by every user, every time, forever.

Then

When two designs are close, take the one that matches the convention your users already know — the flag name, the exit code, the sort order. Spend deliberate surprise only where you can afford to announce it.

Unless

Astonishment Is Relativedesigning only for today's expectations freezes bad conventions in place; sometimes the right move is to surprise everyone once, loudly, with a migration path

Source

Long-standing folklore in language and interface design; stated explicitly in Michael F. Cowlishaw, The Design of the REXX Language (IBM Systems Journal, 1984).

Go to the source

See also