What is the principle of least surprise?

These days I've stumbled upon something called The principle of least surprise (astonishment) and it caught my attention.

These days I’ve stumbled upon something called the Principle of least surprise and it caught my attention. I guess you can already derive some meaning from the name of the Principle of itself – but let’s see what is the principle of least surprise (also known as the Principle of least astonishment)

What is the Principle of least surprise?

If you go to almighty Wikipedia: Principle of least surprise you will find pretty reasonable definition stating that in user interface design, programming language design, and ergonomics, the principle of the least surprise (or astonishment) states that, when two elements of an interface conflict, or are ambiguous, the behavior should be that which will least surprise the human user or programmer at the time the conflict arises.

Tough the definition by itself is not a problematic; I can still notice that something is clearly missing. Definition only deals with conflicts. Even the example given on Wikipedia page goes like this:

A user interface may have the behavior that pressing Control-Q causes the program to quit. The same user interface may have a facility for recording macros, a sequence of keystrokes to be played back later, intended to be able to control all aspects of the program. The user may want to record a keystroke sequence that includes Control-Q as part (most likely the last part) of the macro. The principle says that pressing Control-Q while recording a macro should not quit the program (which would surprise the user), but rather should record the keystroke.

And again, we’re dealing with conflicts. I see that as a one part of bigger story. PLA talks not only about conflicts, but rather about all unexpected (re)actions.

Talking from user experience perspective, the principle of least surprise should serve us as a good reminder of what TO DO, and what to AVOID. Users interacting with our applications, services or something else should not be surprised with the way application or service is working.

If you put some text and underline it, most of users will think it is hyperlink that is in question and will try to click on it. Then nothing will happen and they will be astonished (surprised? angry?). Therefore, the ole rule is never to underline the text which isn’t hyperlink. You see what I mean…

OK, so what is bottom line?

We are all dealing with users (or we are users as well) with certain expectations. The principle of least surprise is actually very simple – do your best to meet those expectations, avoid surprising your users. Applications, web pages – these days – its jungle and wild, wild world out there, things can get easily misunderstood and users can easily get frustrated. Frustrated user is not happy user. User experience is all about being passionate for users? and not to let them being frustrated.

Again, it’s simple (and not always easy) to follow – users have their expectations, meet them!

And is it possible to astonish users, in that cool, pro and positive way? And to meet their expectations? Is that a conflict by itself? Maybe the answer is just in following their needs and expectations.

Astonished? Surprised? You tell me.

Share this article