The Independent Magazine for
Software Development Professionals
Two Ways to Keep Up
1. Newsletter
Our newsletter policy:
No list sharing of any kind.
No "special offers" from "partners."
No "webinars." No "Special Reports."
No junk.
2. RSS Feed
Are you missing out on RSS?
Click to learn more.



Add to Your Reader:
Search Now:
VBScript Programmer's Reference
Discover the full power of VBScript. Windows Script Host, ASP, ADO, Microsoft Script Control, error handling and debugging, regular expressions, classes, FileSystemObject, Dictionary, script encoding, script components, and more.
All content copyright 2000-2006 by the individual specified authors (and where not specified, copyright by Daniel Read). Reprint or redistribute only with written permission from the author and/or developer.*.
A Classic in the Field, Updated & Expanded
Foreword by Andrew Hunt
Nearly 60 Essays by a Software Pioneer!
“One of software's most versatile and creative writers.”
20% Off the Cover Price in the US!
More Ordering Options
Book Review

The Design of Everyday Things

By Donald Norman (Review by Daniel Read)

Currency/Doubleday, 1990 (originally published 1988), 257 pages (ISBN 0385267746)
Posted April 1, 2002

While this is not specifically a computer-oriented book, it is nonetheless a must-read for anyone who designs and develops computer software. I have learned more about design, especially user interface design, from this book than any other book that I've read--and like I said, the book is not even about computers. Instead, this book is about just what the title states: "everyday things" and how they are designed. The author discusses washing machines, telephones, doors, automobiles, calculators, light switches, watches, and yes, even computers. Beyond discussing the utility and aesthetics of the designs themselves, the author digs into how human beings feel and react when faced with flawed designs.

That may sound boring, but I find The Design of Everyday Things enlightening, fascinating, and a lot of fun. In my first reading of this book, it was easy to get caught up in Norman's design critiques, saying to myself "Ha! What an idiotic design! What were they thinking?" Upon further reading and reflection, though, it became clear to me that many of the design flaws are easy traps to fall into, and that I've no doubt fallen into similar traps when designing user interfaces for software. It's easy to be an armchair designer.

Indeed, in the Preface, the author says, "...even the best-trained and best-motivated designers can go wrong when they listen to their instincts instead of testing their ideas on actual users. Designers know too much about their product to be objective judges: the features they have come to love and prefer may not be understood or preferred by the future customers." Later he adds, "Rule of thumb: if you think something is clever and sophisticated, beware--it is probably self-indulgence."

That said, some of the critiqued designs are so ridiculous that I had a hard time feeling any empathy with the designers of such monstrosities. We can't forget, though, that software developers are designers too. Every day as we develop software we are designing, no less than the designer of a phone or light switch. Even when we're working from someone else's design, we make myriad small design decisions that the original design could not have accounted for. I call these "construction-time design decisions." These decision effect other people, be they end users or other developers, in real ways.

Design critiques are not the only thing in The Design of Everyday Things. Mixed in with the critiques is a more theoretical narrative that provides a framework for thinking about design and human thought and behavior. To his credit, the author manages to avoid making this material too academic or bogging it down with esoteric details. While I always remember Norman's critiques of various objects as I use them in everyday life, the real lasting impact of this book for me lies in the concepts he introduces in this "theoretical" material, especially the key concepts of affordances, constraints, mappings, and feedback. While these concepts apply to the design of all kinds of objects in the physical world, they apply equally, or even more so, to the virtual world of the user interface.

If you are interested in learning more about design and becoming a better software developer or web designer, I recommend putting this book near the top of your list.

Related Information

Daniel Read is editor and publisher of the developer.* web magazine. He lives in Atlanta, GA, where he works as a software architect and programmer. He is currently at work on about a million different things.