The Design of Everyday Things can be summarized trivially by concatenating my previous blog posts, so I am choosing to use this entry to discuss my thoughts on the book and what I’ve taken away from it.
This book made me think about design in a completely new way. I’ve always known that a product’s success or failure hinged heavily on design, but I’d never before considered the aspect of designing a product or system analytically. Design makes an impact not in what you notice, but in what you don’t notice. It is a very subtle art that evidently eluded me prior to reading this book. I’ve learned that a product’s design should aim to be as intuitive as possible by utilizing constraints and natural mappings. Both of these forms of communicating function to the user operate on a subconscious level to guide the user without them becoming aware. Nobody explicitly thinks about the driver’s seat being located on the left or a floppy disk not fitting in an optical drive, these things are obvious to us because humans rely on previous experience and physical constraints to reason about the world. We are naturally hardwired to take these types of things into account, and therefore, they don’t impede our thought processes or interrupt our flow.
This book also opened my eyes to the processes involved in learning a new system and the various types of pitfalls that we encounter frequently across a wide variety of devices but attribute to human error. People depend on their perceptions to interpret events, which often leads to the misattribution of causality, leading people to blame themselves or software for instance, when the real issue is a hardware problem. The book analyses decision-making using the Action Cycle, Stages of Evaluation, and Stages of Execution, all of which are combined into the Seven Stages of Action. These models help to identify two primary sources of error that result from poor design: the Gulfs of Execution and Evaluation. The Gulf of Execution is the gap between user intentions and actions allowable by the system and the Gulf of Evaluation is the gap between a user’s interpretation of the system and how well the intentions have been met. Errors occur more frequently when these gulf are large, primarily due to a lack of visibility and feedback. Visibility is a design principle aimed at improving a user’s ability to identify available actions and feedback is important because it informs the user of the state of the system and the effects of their actions.
I definitely feel that reading this book has made me a better programmer by informing me of the aspects of design outside the scope of software. Knowing how a user thinks about systems and formulates decisions is a valuable asset when designing for usability. Additional topics that were discussed in varying length that I found particularly interesting were forcing functions, the reversal of design principles for increasing task difficulty, and the use of information in the world to remind and cue user behavior.