Principle of Least Astonishment

The Principle of Least Astonishment sounds very Monty Python. But it is a key concept in software and interface design.

Which of these is a button on a web page?

two buttons
Two Buttons

Most people would say B is a button. However, A also could be a button. We’re used to B as a button only because text on a colored rectangle on a page in a web browser signals a button, a way to submit information or view a page where we perform actions. If A is a button, most people will not realize how A works.

If you create a button on a web page and choose A as your button style, likely you will surprise or astonish people who use your page. If you use B as your button style, almost every person will understand.

The difference between button styles A and B is an example of the Principle of Least Astonishment. People who design and build software and computer interfaces should create their work in ways people expect. Their work should not astonish or surprise people. People fill out a form, for example, then expect to see text on a colored rectangle at the bottom which needs to be clicked to submit their data.

The Principle of Least Astonishment also helps settle debates over the best way to design software or an interface. When a conflict arises between the way two parts of an interface work, or programmers, designers, and others debate how a page is used, choosing what people expect from the page (and backing up your choices with testing) almost always leads to the best solution.

People also use software with clear words and tasks in their head about what they want to accomplish. The best interfaces use these words and tasks in the interface. Think of software doctors might use: a link that says Prescribe Medication might be better than a link that says Drugs if clicking the link leads to a page where doctors can order medications from a pharmacy.

Finally, the Principle of Least Astonishment does not require you to make the same interface or user experience design decisions other software has made. If you create a word processing software application, for example, you should realize most people are used to Microsoft Word and expect to create a new file by selecting the File menu then New Blank Document from the submenu. Following this design makes sense. However, you can ignore this design if you have a faster more obvious way for people to create new documents in your application.

Another way to describe this phenomenon is from a quote by Henry Spencer, a Canadian programmer:

The flip side of the Rule of Least Surprise is to avoid making things superficially similar but really a little bit different. This is extremely treacherous because the seeming familiarity raises false expectations. It’s often better to make things distinctly different than to make them almost the same.

The Principle of Least Astonishment is a guideline and a way to surface design problems and then think about solutions to the problems.

Learn More

The Principle of Least Astonishment

History of Interface Design on Unix: Applying the Rule of Least Surprise

Rule of Least Surprise: In interface design, always do the least surprising thing.

Controlling Your Environment Makes You Happy

What is the Principle of Least Astonishment?


  • Tim Slavin

    Tim is an award-winning writer and technologist who enjoys teaching tech to non-technical people. He has many years experience with web sites and applications in business, technical, and creative roles. He and his wife have two kids, now teenagers, who are mad about video games.

Also In The August 2014 Issue

Krissy Venosdale and Skype in the classroom

Here's an enthusiastic teacher using technology to help her students discover how the world is an awesome place to explore.

SketchUp for Beginners

It's not hard to create simple three-dimensional objects and buildings with SketchUp software. Here's a simple introduction with lots of links to learn more.

Computer Science Curriculum Resources

Resources to learn about national standards for computer science and how to implement them in the classroom.

Principle of Least Astonishment

The Principle of Least Astonishment sounds very Monty Python. But it is a key concept in software and interface design.

Music from Garbage

People do amazing things with technology, in this case, creating music from tossed out computer hard drives, circuit boards, and other electronic garbage.

Regular Expressions

All programming languages have a way to find Elvis, but it can be difficult to learn how.

3D Software Tools and Resources

3D software is a fun way to engage people interested in computing but not necessarily coding or computer science.

Programming Languages for Education

Many languages have been created for younger kids and to help teachers in a classroom setting.

If you want to build a ship, don’t drum up people together to collect wood and don’t assign them tasks and work, but rather teach them to long for the endless immensity of the sea.

August 2014 Learn More Links

Links from the bottom of all the August 2014 articles, collected in one place for you to print, share, or bookmark.

August 2014 News Wire

Interesting stories about computer science, software programming, and technology for August 2014.


This language, developed in the 1960s, exists solely to introduce children to basic programming concepts and teach programming.

The Traveling Salesman Problem

Not only a funny phrase, it is a math and computer science problem that helps solve real world problems.

Interested but not ready to subscribe? Sign-up for our free monthly email newsletter with curated site content and a new issue email announcement that we send every two months.

No, thanks!