Monday, February 14, 2011

The Design of Everyday Things

When I started reading The Design of Everyday Things by Donald A. Norman I recalled when I encountered my first "Norman Door." It had the same handles on both sides but only opened one way. I scratched my head and pondered how best to operate the door. And then felt really dumb when I chose the wrong way.

According to the author,
Far too many items in the world are designed, constructed and foisted upon us with no understanding - or even care - for how we will use them. Calling something a "Norman door" is recognition of the lack of attention paid by the maker to the user
I've been involved in numerous software projects that suffered from Norman doors, so I read this book to get a general understanding of what is a good design. The book delivered, highlighting both good and bad designs. And, now I no longer feel dumb when I fail at using a bad design.

The book aims to answer a couple of questions:
When we first see an object we have never seen before how do we know how to use it?

How do we manage tens of thousands of objects, many of which we encounter only once?
Good designs provide:
  • Feedback so you know when something has or is happening
  • Constraints so it is impossible or not easy to make errors or mistakes
  • Affordances that show appropriate actions and hide inappropriate ones
  • Conceptual Models providing clues to how something works
  • Natural Mappings that take advantage of physical analogies and cultural standards
I really enjoyed the chapter titled "Knowledge in the Head and in the World". Some important points for me:
In everyday situations, behavior is determined by the combination of internal knowledge and external information and constraints.

Whenever information needed to do a task is readily available in the world, the need for us to learn it diminishes

There are two types of knowledge: Knowledge of (facts, rules) and knowledge how, which is difficult to teach

Memory storage and retrieval are easier when the material makes sense and it fits into what is already known

The difficulty of dealing with novel situations is directly related to the number of possibilities

A couple of points that are especially applicable to software development:
Creeping featurism is a disease, fatal if not treated promptly. There are some cures, but, as usual,the best approach is to practice preventive medicine. The problem is that the disease comes so naturally, so innocently. Analyze a task and you see how it can be made easier. Why, adding a feature seems so virtuous...

Every student takes courses on the computational aspect of computers. But there are very few courses on the problems faced by the user...
A couple of takeaways for me:
Design is really an act of communication, which means having a deep understanding of the person with whom the designer is communicating

When simple things need pictures, labels or instructions, the design has failed
Anyone who creates something for human use or consumption, which describes those of us in software development, would benefit from the ideas and explanations in The Design of Everyday Things

No comments: