Principle of Least Astonishment

From Jonathan Gardner's Tech Wiki
Jump to: navigation, search

Overview

The Principle of Least Astonishment is a design principle. It basically states, "Make your design so simple that it doesn't surprise anyone."

While people think that boring designs are, well, boring, what they don't realize is there is a huge cost savings to boring designs. Things are where people expect them to be, and they don't have to remember all the little surprises.

Sometimes it's good to understand a principle by looking at counter-examples. Let's suppose a designer came up with a new design for a knife. It looks like a knife should look, except that you have to say a magic word for the blade to become sharp. That is a surprising design feature that people don't expect.

In programming, less astonishment means less work reading documentation and less likelihood of introducing a bug.