The Design of Everyday Things by Don Norman is a succinct and clear explanation of design principles. Here are some raw notes on what effective product design looks like.
There are six principles of design Norman illustrates:
- Discoverability — How easy is it for a person to understand what actions are possible? Discoverability is about increasing the visibility of an element so users know that it exists, what their options are, and what to do. For example, a signup page should maximize visibility on sign-up elements and reduce any extraneous elements that don’t help the user accomplish the purpose of that page: signing up.
- Affordance — The properties of an object that allow its function. A hinged door allows for pushing and, perhaps, pulling. A steering wheel allows for turning.
- Signifiers — Signals, cues, labels that indicate what affordances an object has. While affordance enables a function, Norman goes further, stating that perceived affordance is equally important. “Desired actions cannot be carried out if the object does not afford it, and afforded actions might not be carried out if the user does not perceive they are possible.” An object must allow a user to do Function A and there must be enough cues to signal that the object is capable of doing so. For example, the label “Push” on a door tells the user that the door has that affordance.
- Constraints — Having guardrails to encourage the right behavior. Constraints help reduce ambiguity by restricting the number of actions someone can take. For example, restricting a phone number input to only numbers might simplify the workflow.
- Mapping — Having a clear relationship between controls and the effect they have. Does moving a slider to the left decrease the value on the form? How natural does this control-to-effect relationship feel? If I move the steering wheel clockwise, does my vehicle turn right?
- Feedback — Similar to giving cues to encourage users to take a particular action, feedback gives signals about the action that has taken place and its effect. It’s important to not let the user guess about the action they’ve taken and its consequence. For example, loading indicators or spinners after form submissions help the user understand that they’ve successfully submitted the form and the product is processing it.