The Design of Everyday Things by Donald A. Norman


The Design of Everyday Things by Donald A. Norman describes usability from a psychological perspective. An overall excellent read, Norman goes into explaining how people normally develop mental models to conceptualize how things should work, in order to operate the things they interact with.


After reading Don’t Make Me Think! (Revisited) by Steve Krug, I knew that The Design of Everyday Things would be the next biggest read if I wanted to get an even better handle on user experience and design; after all, it is one of the top hits on Amazon from searching “Usability”, and it is referenced in Don’t Make Me Think!. I strove to read this book to understand how to incorporate usability principles into my work as a software developer, especially when considering user interfaces (websites, apps, etc.)


The book is organized into distinctive chapters. Here, I choose to list my takeaways as organized according to the chapters of the book.

  1. The Psychopathology of Everyday Things: This chapter provides a taste of the entire book. It introduces several concepts:
    1. The importance of usability, largely by talking about unusable doors
    2. Affordances of things: fundamental properties that describe how an object can be used (e.g., a door can be pushed, pulled, or slid)
    3. Conceptual mental models that people use to determine an item’s usage
    4. Some quick guidelines regarding principles of design for understandability/usability:
      1. Providing a good conceptual model, so that users immediately grasp how to use a product
      2. Making things visible, so that users know what is possible to do with a product
      3. Providing a clear mapping between a product’s affordances and their effects
      4. Providing user feedback so that users can verify the results of their actions
    5. Two quickly noted challenges:
      1. The multiple constraints of the designer, and
      2. The “paradox of technology”
  2. The Psychology of Everyday Actions
    1. Falsely blaming yourself: We frequently blame ourselves for the errors we make from using everyday objects.
    2. Misconceptions about everyday life: We have misconceptions of an object’s usage, because we tend to create conceptual models that sometimes may be sensible but faulty (e.g., “Aristotle’s naive physics”). We also often blame the wrong cause, since we strongly attribute time sequences with cause-and-effect (even during coincidental phenomena), and pervasive learned/taught helplessness only makes our self-blaming tendencies even more prevalent.
    3. The seven stages of action: A model for how actions are executed and evaluated is introduced, comprised of essentially 7 steps:
      1. Forming the goal
      2. Forming the intention
      3. Specifying an action
      4. Executing an action
      5. Perceiving the state of the world
      6. Interpreting the state of the world
      7. Evaluating the outcome
    4. The gulfs of execution and evaluation: At each step, a number of things could go wrong, leading to an unintended outcome or wrong action.
  3. Knowledge in the Head and in the World. This is a must-read chapter if you are designing for understandability. Norman introduces the notion that users understand how to use an object/feature by partly using “imprecise” knowledge from:
    1. Knowledge from the “world” (labels, colors, physical locations of things, etc.)
    2. Constraints: both natural (physical constraints like pushing/pulling) and cultural (accepted standards such as right hand orientation or rules of the road)
  4. Knowing What to Do. This chapter further describes how constraints can be utilized, delving deeper into different types of constraints. The most memorable example is the Lego motorcycle, of which its assembly can be discerned by just looking at its pieces:

    An example Lego motorcycle
    Everyday knowledge can help us resolve the following kinds of questions: Where should the head lights go? Should the wheels be aligned front and back, or side by side? Should the driver face forward or behind the vehicle?
  5. To Err is Human. This chapter discusses different kinds of errors people can make, then describes considerations when designing tasks.
    • Decision trees can range between shallow/deep (one decision step vs. many decision steps, e.g. a recipe can be a deep tree) and narrow/wide (one choice/step vs. many choices/step, e.g. picking 100 flavors of ice cream can represent a wide tree). Deep/wide trees can be found in strategy games.
    • Forcing functions are a kind of physical constraint that makes it impossible or more difficult to do the wrong thing; e.g., a key must be placed in the ignition switch to start a car.
  6. The Design Challenge. This chapter acknowledges the difficulties of design, and stresses that a product’s development is an evolutionary process.
  7. User-Centered Design. This chapter summarizes how to simplify difficult tasks. Consider the following principles:
    1. Use both knowledge in the world and in the head
    2. Simplify the structure of tasks
    3. Make things visible to bridge the gaps between execution and evaluation
    4. Get the mappings right
    5. Exploit both natural and cultural constraints
    6. Design to allow room for error
    7. When all else fails, standardize


I found Norman’s book to be exceptionally detailed in explaining the human psychology in using objects in the everyday world (with a few nods at software). The book is likely to be an exceptional must read for psychology enthusiasts with a desire to know more about usability. While I am no psychology enthusiast, I still enjoyed exposing myself to these concepts. The book is delightful to read, chock full of examples, and in many pages, entertains with a lightly humorous tone.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s