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 userI'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?Good designs provide:
How do we manage tens of thousands of objects, many of which we encounter only once?
- 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
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...A couple of takeaways for me:
Every student takes courses on the computational aspect of computers. But there are very few courses on the problems faced by the user...
Design is really an act of communication, which means having a deep understanding of the person with whom the designer is communicatingAnyone 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
When simple things need pictures, labels or instructions, the design has failed