When I picked up this book I thought it was going to be a book about product design. That was true, but this book is also much more. Next to being extremely entertaining and informative, it provides a unified framework for thinking about usability in products.
Given a user and product we can always describe two fundamental user-product discrepancies:
- Gulf of execution: The gap in what the user wants to do (goals) and how easy it is for the user to figure out how to do it (feedfoward)
- Gulf of evaluation: The gap in what the user did and how easy it is for the user to figure out what happened and to course correct (feedback)
A simplified version of the model is illustrated here:
Key design principles
Because we, as humans, are fallible, human error is inevitable. Thus, the best designs take this into account. These are the key design principles from the book for dealing with (human) error, I quote (emphasis mine):
- “Put the knowledge required to operate the technology in the world. Don’t require that all the knowledge must be in the head. Allow for efficient operation when people have learned all the requirements, when they are experts who can perform without the knowledge in the world, but make it possible for non-experts to use the knowledge in the world. This will also help experts who need to perform a rare, infrequently performed operation or return to the technology after a prolonged absence.”
- “Use the power of natural and artificial constraints: physical, logical, semantic, and cultural. Exploit the power of forcing functions and natural mappings.”
- “Bridge the two gulfs, the Gulf of Execution and the Gulf of Evaluation. Make things visible, both for execution and evaluation. On the execution side, provide feedforward information: make the options readily available. On the evaluation side, provide feedback: make the results of each action apparent. Make it possible to determine the system’s status readily, easily, accurately, and in a form consistent with the person’s goals, plans, and expectations.”
For me, this summarizes to the following two statements:
- Keep in mind the two gulfs (execution and evaluation)
- Make everything visible: knowledge on how to operate the system, but also feedback and feedforward
Remember The best design takes human error into account.