The Principle of Least Astonishment

From the world of systems design and usability comes the principal of least astonishment – or I’ve also heard it called the principle of least surprise.

When two elements of an interface conflict or are ambiguous, the behaviour should be that which will least surprise the human user or programmer at the time the conflict arises, because the least surprising behavior will usually be the correct one.

A littlie more detailed from another site:

The Principle of Least Astonishment states that the result of performing some operation should be obvious, consistent, and predictable, based upon the name of the operation and other clues.

I like this. And it makes me want to use the snarky retort: “This is my surprised face.”
It reminds me a bit of Occam’s Razor:

“The simplest explanation is the best one”
“The simplest answer is usually the correct answer.”
or as Einstein put it
“As simple as possible, but no simpler”
(gross simplifications, here’s the whole thought)

4 thoughts on “The Principle of Least Astonishment

  1. Richard Riehle

    I have an article in the September 2005 issue of Software Engineering Notes titled, Engineering on the Surprise Continuum. It is based on the idea that there are differing levels of surprise that can be tolerated, depending on the profession, the product, or the purpose of the engineering effort.
    Richard Riehle


Leave a Reply to Why Java Is A Different Beast | iface thoughts Cancel reply

Your email address will not be published. Required fields are marked *