The Design of Everyday Things
Everyday tasks are not difficult because of their inherent complexity - they are difficult only because they require learning arbitrary relationships and mappings, and because they sometimes require precision in their execution.
Design is something that I’ve always wanted to learn, but never received a formal introduction to. It’s something I’ve always emulated but always fail to create. With Design and UX of products becoming increasingly important as a differentiator for startups and a means to establish a memorable brand image or memory of a product, it’s become even more imperative for me to learn Design.
Unfortunately, the Computer Science department does not offer any courses in Human-Computer Interaction. Through a series of considerations, weighing the benefit of completing my graduation requirements this semester and having the option of graduating early, versus not having to suffer through yet another class that fails to interest me and using my extra class slot for something of my own choosing. I decided to go with the latter, due to many factors I will not get into here. Regardless, I definitely think I’ve made the right choice.
Per one of my friend’s suggestion, I decided to pursue an Independent Research Study in Human-Computer Interaction with a focus on Interface Design and Data Visualization under Professor Duvall.
To build the foundations in Design, Professor Duvall suggested that I read three books, The Design of Everyday Things, Universal Principles of Design, and Interaction Design, as an introduction to the vocabulary and language of Design. The Design of Everyday Things, the seminal work in Design by cognitive scientist and usability engineer Donald Norman from the 1980s, is a particularly enjoyable read. It formalizes design principles from careful observations of mundane everyday objects. Below are the 7 main principles discussed in the book to transform a difficult task into a simple one.
1. Use Both Knowledge in the World and Knowledge in the Head
For first time or infrequent users, knowledge required for a task should be available either explicitly in the world or derived from constraints in the environment. There should be a natural, easily interpreted relationship between the knowledge and the information it’s intended to convey.
For frequent users, Design should not impede action and allow users to be more efficient at a particular task, especially for people who have internalized the knowledge. It should be easy to go back and forth between using knowledge in the world and knowledge in the head and the two should coexist without interference.
2. Simplify the Structure of Tasks
Eliminate or restructure complexities, minimizing the planning and problem solving a task requires. Pay attention to the psychology of a user and the limits on memory and attention.
- Use reminders by providing knowledge in the world and reduce the mental load of the trivial parts of a task * Keep the tasks much the same, but provide mental aids Use mental aids for facts essential to everyday functioning, but cannot trust memory structures to provide * Use tech to make the invisible visible, improving feedback and ability to keep control Use graphical displays to inform the user of the system state and make important information visible and accessible and the irrelevant info hidden
- Automate, but keep tasks much the same * Parts of an automated task will disappear, there’s always a trade off. * Ideally, a user should be able to choose automation or full control * Don’t take away control * over automation can eliminate a person’s ability to function without it, and a major problem if the automation fails * Can be inflexible as the system may not do exactly what’s required because altering the automation is too difficult * Maintain layers of control and produce automation at each layer so we can switch and be flexible
- Change the nature of the task Technology can help transform deep and wide structures into shallow, narrow ones
Shoelances vs Vecro
3. Make Things Visible: Bridge the Gulfs of Execution and Evaluations
Easy to see what’s visible: what can be done and what their effects are.
Actions should match intentions
It’s important to make the correct things visible so the users for the correct interpretations and mental models through the system image
4. Get the Mappings Right
Natural Mappings (“response compatibility”): the the spatial relationships between the controls and the system components or objects they control should be as direct as possible, with the controls and the objects themselves or have an analogical relationship
The movements of the control should be similar or analogous to the expected operation of the system.
feedback must be timely and easy to understand
5. Explore the Power of Constraints, Both Natural and Artificial
Reduce the number of possible alternative actions at each step to a few or ideally just one
6. Design for Error
Assume errors will be made. Allow for recovery. Use forcing functions
Each user action is an attempt to a step in the right direction
An error is incompletely or improperly specified actions
7. When All Fails, Standardize
Standardize the problem and processes, so arbitrary mappings only have to be learned once
It maybe difficult to obtain an agreement, early enough to save trouble later on, and late enough to take into account of the existing technologies and procedures
Standardization is only essential when all necessary information cannot be placed in the world or when normal mapping cannot be exploited
Users must be trained for this