Programming Seeking Understanding
The blog of Mark Cheeseman

Review of Donald Norman, Design of Everyday Things

Donald Norman, The Design of Everyday Things.

This is a book about opening doors. It is a book about setting the temperature of your fridge. It is about using your company phone. It is about turning lights on, and it is about turning taps on. Sounds like a real page turner, doesn’t it?

Have you ever been annoyed when pushing on a door to discover it doesn’t work, only to pull on it to discover it still does not work, before repeating the process on the other side of the door? Ever had trouble figuring out the temperature controls in a combined fridge/freezer? Do you find it hard to remember the various obscure key combinations to operate the company phone? Ever wasted time trying to figure out which of the six light switches in a row is the one you want to turn on? Ever had trouble with some obscure kind of tap, either trying to turn it on, or determine which way is hot or cold? Ever struggled to figure out how to interact with some piece of software? If so, then The Design of Everyday Things is likely to offer you at least some consolation, with the message that the problem is not (usually) you, but most likely the lack of thought given to the design.

Donald Norman’s The Design of Everyday Things (formally published as The Psychology of Everyday Things) is something of a classic, dealing with human interactions with everyday items in life. It includes a wide range of examples, from the humble door and tap, through to somewhat more complex devices such as corporate telephones.

When it comes to actual examples, the book certainly shows its age (originally published in 1988), with the computer coming in for quite a bad rap. But of course, much has changed since then and the good news is that at least some of today’s user interfaces begin to approach Norman’s glorious vision for a future computer (p. 185f, ‘The Invisible Computer of the Future’).

In an odd sort of way, the various examples given in the book are potentially its biggest, if not exactly weakness, temptation perhaps? For the examples are so entertaining in their own right that they risk drawing all attention away from the governing design principles Norman is seeking to present. It is the importance of these principles that means the dated nature of a few of the more technologically oriented examples are of little consequence to the ongoing significance of this book. Key ideas such as afforance, conceptual model, visibility, mapping, feedback, constraints, human memory, are the underlying principles drawn out through the examples, good and bad, to advocate what Norman calls ‘user centered design’.

Ultimately, Design of Everyday Things is worth reading just for the examples. It is far more when one thinks through the examples to the principles espoused in user centered design. While not directly about software development, it is well and truly a worth-while read for anyone designing user interfaces. Moreover, the principles apply just as well to anyone programming an interface to be consumed by another person, be it a user interface or a programming interface. And these days, that is practically every programmer.