Design is how it works. Foundations for a one-person product studio.
This guide gives you the ground the rest of the course stands on: what product design actually is, the models that explain why people succeed or fail with software, the principles the masters keep returning to, and a process small enough for one person to run every week. You will finish with a shared vocabulary, a way of looking at any screen, and a first audit of your own product.
Explain what product design is and how it differs from UI, UX, graphic and interaction design, product management and engineering (understand)
Describe any product in terms of Garrett's five planes and say which plane a problem really lives on (analyse)
Use Norman's vocabulary (signifier, mapping, constraint, feedback, conceptual model, gulf, slip, mistake) to diagnose why a screen fails (analyse)
Translate each of Rams' ten principles into a concrete software decision (apply)
Pick the right framework (Nielsen, Shneiderman, Tognazzini, Cooper, Raskin, Victor) for the question in front of you (evaluate)
Run a one-person design process, choosing the lowest fidelity that answers your current question (create)
Look at software like a designer, keep a swipe file, give yourself useful critique, and train your taste on purpose (create)
Warm-up: how to use this course
You will learn more from ten minutes of practice on your own product than from an hour of reading, so this course is built around doing, with reading as the scaffolding.
The course has 21 guides. This one is the foundation. Guides 2 to 16 each go deep on one area: the mind, problems, interaction, visual design, typography, reading and writing, motion, words, accessibility, data, systems, AI, launch, testing, and ethics. Guide 17 turns it all into a working practice. Guides 18 to 20 are breakdowns of real objects and products, and guide 21 is the reference shelf. You can see the whole map on the course hub.
Every chapter follows the same shape, so you always know where you are. A one-sentence core idea. An explanation of the mechanism, the why. Pictures: diagrams and drawn do/don't pairs. Real products that get it right or wrong. Common mistakes, with their causes. A scenario question to check you can apply it. An exercise, usually on your own product, with a rubric so you can grade yourself honestly.
Reading is the smallest part of the loop. Retrieval (writing what you remember with the page closed) and application (changing your own product) are what make the ideas stick.
Four habits that make this work
Read with a product open. Keep your own app, or one you use daily, running beside the guide. Every principle should land on a real screen within minutes.
Close the page and write. At the end of a chapter, write the core idea and two examples from memory. Retrieval practice is one of the most reliable findings in learning research: testing yourself beats rereading.
Do one weekly redesign. Pick one screen of your product every week. Redesign it using whatever you learned that week. Keep the before and after side by side in a folder. In six months that folder is your proof of progress.
Space it out. Each part ends with a short recap that pulls ideas from earlier chapters and other guides. Do those a few days after reading, not straight away. Slight forgetting followed by effortful recall is what builds durable memory (see The Human Mind for why).
For the solo creator
You have an advantage most design students lack: a real product with real users that you can change today. You also have a disadvantage: no one reviews your work. The exercises in this course stand in for the missing colleague. Do them in writing, keep them, and grade yourself with the rubrics. When the rubric says "Strong", be strict.
Diagnostic: what do you already believe?
Three quick questions. Do not look anything up. Getting them wrong is useful: it shows you which chapters to read slowly.
Diagnostic 1
People keep tapping the title of a card in your app, expecting it to open. Only the small arrow on the right opens it. What is the most accurate description of the problem?
The card looks like one object, so people expect the whole thing to act. That is a mismatch between what the design signals and what it does. A bigger arrow treats a symptom. The fix is to make the whole card the target, or to stop it looking like one tappable object. Chapter 4 covers this.
Diagnostic 2
You are choosing between two layouts for a settings page and you cannot decide which looks better. What is the best next step?
When a surface decision feels impossible, the problem usually lives on a lower plane: you have not decided what the page is for. Decide the structure and the purpose first, and the surface choice often makes itself. Chapter 2 calls this "going down a plane".
Diagnostic 3
A user deletes a project by accident because the Delete button sits right next to Duplicate. What kind of error is this, and what is the strongest fix?
The user had the right goal and the wrong action came out: a slip. Slips are best fixed by design (distance, grouping) and forgiveness (undo). Confirmation dialogs on everything train people to click "OK" without reading. Chapter 8 goes deep on slips and mistakes.
Part one
What design is
Before principles and processes, you need a clear picture of the job itself. These three chapters define product design, give you a model of the layers every product is built from, and reframe design as what it really is: a long chain of decisions made under constraints.
1
What product design is
Taught by Don Norman, with Steve Jobs and Charles Eames
Product design is deciding what a product should do, for whom, and how it should behave and look, so that a person can reach their goal with as little friction and as much confidence as possible.
The word "design" gets used for very different jobs. A graphic designer arranges type and images to communicate. A UI designer draws the screens. An interaction designer decides what happens when you press, drag or wait. A UX designer looks at the whole experience across time. A product manager decides which problems to solve and in what order. An engineer makes it real and keeps it working.
A product designer works across all of those boundaries, with one question at the centre: what should this product be, so that it is worth using? In a large company those jobs belong to different people. In your company of one, they all belong to you. That is the most important fact about your situation, and it is good news. The most common failure in big teams is the hand-off: a decision made in one discipline gets lost or distorted in the next. You do not have hand-offs. You can let a database decision shape the interface, or let an interface sketch kill a feature before you build it.
Product design is the overlap. It borrows the "why" from product management, the "how it behaves" from interaction design, the "how it looks" from visual design and the "what is possible" from engineering.
The neighbours, defined precisely
Discipline
Its main question
Its typical output
When you wear this hat
Graphic design
How do we communicate this message visually?
Posters, logos, layouts, illustrations
Your app icon, landing page, social images
UI (visual interface) design
How should each screen look?
Screens, components, styles
Polishing a screen, building your component set
Interaction design
What happens when someone acts, and over time?
Flows, states, transitions, rules
Deciding what a swipe does, what an error looks like
UX design
Does the whole experience serve the person?
Journeys, research findings, information architecture
Mapping the first week of a new user
Product management
Which problems are worth solving, in which order?
Strategy, roadmap, priorities
Choosing this month's one big thing
Engineering
How do we build it so it works and lasts?
Code, architecture, infrastructure
Most of your week
Product design
What should this product be, so it is worth using?
Decisions, expressed as flows, screens and code
Every time you decide what to build and how it behaves
Notice the last row's output: decisions. The screens are only the record of those decisions. A product designer who only produces beautiful screens has skipped the job. A product designer who produces the right decisions, written in plain code with system fonts, has done most of it.
Design is not just what it looks like and feels like. Design is how it works.Steve Jobs, interviewed by Rob Walker, The New York Times Magazine, 2003
That line gets quoted to justify everything, so read it carefully. Jobs was rejecting the idea that design is a coat of paint applied at the end. The look and feel matter, but they are the visible part of something larger: how the product behaves, what it lets you do, what it refuses to let you do. The iPod's scroll wheel was a visual decision, an interaction decision and an engineering decision at once. Separating them would have produced a worse product.
Don't
Why it fails. The structure, the flow and the feature set were decided by default. Polish cannot fix a product that asks the wrong questions.
Do
Why it works. Design questions shape the idea and the build, so polish lands on a product that already makes sense.
Three tests for "is this good design?"
You will meet many principles in this guide. Under all of them sit three plain tests that apply to every decision:
Does it help someone do something they actually want to do? (Usefulness. A beautiful, easy feature nobody needs is still waste.)
Can they do it without help, without fear, and without wasted effort? (Usability. Find it, understand it, do it, know it worked, recover if it did not.)
Does it feel right, so they want to come back? (Desirability. Calm, trustworthy, pleasant, even delightful.)
The order matters. Usefulness first, because nothing rescues a useless product. Usability second, because nothing rescues a product people cannot operate. Desirability third, not because it is unimportant, but because it grows best on the first two. You will meet the ancient version of this triad in chapter 10.
Key idea
The screens are the record of the design, not the design. The design is the set of decisions.
For the solo creator
Write your decisions down. A plain text file called decisions.md beside your code, one line per decision with the date and the reason ("2026-03-04: no folders, tags only, because users have under 200 items"). It is the cheapest design tool there is, it stops you re-arguing settled questions with yourself at midnight, and it becomes the raw material for your changelog and your landing page.
Do
Treat every feature request as a design question: whose goal, which problem, what is the smallest thing that solves it?
Let technical constraints into design early; they are information, not obstacles.
Judge design work by what people can now do, not by how the screen looks in a screenshot.
Learn enough of each neighbouring discipline to know when you are wearing its hat.
Don't
Think of design as the last step before launch.
Confuse "designed" with "decorated": gradients and shadows are not design decisions about the product.
Copy the job titles of large companies. You need the decisions, not the org chart.
Let "I'm an engineer, not a designer" excuse a confusing flow. You designed it either way.
In the wild
iPodApple, 2001
The scroll wheel was one decision that solved a product problem (navigating a thousand songs on a tiny screen), an interaction problem (fast, physical, proportional scrolling) and a visual problem (a clean front with almost nothing on it) at once. The best design decisions dissolve the boundaries between disciplines.
Dropbox2008
Instead of designing a file-sync interface, Dropbox made the interface a normal folder on your computer. Most of the "design" is a decision about what not to build. Sometimes the best interface is one the user already knows.
Email cannot be unsent once delivered. Gmail holds the message for a few seconds before it really goes, which makes "undo" possible. This is an engineering decision made for a design reason. Behavior is design, even when it is invisible.
iA WriterInformation Architects, 2010
A writing app whose main design decisions are things it leaves out: few formatting options, few settings, one carefully chosen typeface per mode. For focused tools, the feature list is the design.
Common mistakes
Starting in Figma
Drawing screens feels like progress, so it is tempting to open a canvas before you know what the screen is for.
Start with a sentence: "This screen lets [person] [do thing] so that [outcome]." If you cannot write it, you are not ready to draw it.
Thinking design is someone else's job
Solo developers often say "I'll hire a designer later", then make dozens of design decisions by default in the meantime.
Accept that every choice of default, label, order and error message is a design decision. Make them on purpose.
Treating taste as the whole job
Visual polish is the most visible part of design, so it gets most of the attention.
Spend your design time in proportion to impact: what the product does first, how it behaves second, how it looks third.
Check yourself
A friend says, "My app is well designed; I paid for a premium UI kit." Users still churn after a day because they cannot work out how to import their data. Which statement is most accurate?
A UI kit only gives you the look of components. Whether people can bring their data in and get value on day one is a product design question about flows and behavior. Emails might help, but they patch a gap that design should close.
Exercise 1.1 30 minutes · on your own product
The five-hats inventory
List the last ten changes you made to your product (check your commit log).
For each, write which hat you were wearing: product management, interaction, visual, engineering, or research.
Mark each change with a D if you decided it on purpose, or an A if it happened by accident or default.
Write one sentence about the pattern you see.
You're done when: you have a ten-row table with hat and D/A per change, and one sentence naming which hat you neglect.
Beginner
Competent
Strong
Lists the changes and labels them by hat.
Also marks deliberate versus default and spots a pattern.
Also names one specific decision you will now revisit, with the reason.
2
The five planes of a product
Taught by Jesse James Garrett, The Elements of User Experience (2002, 2nd ed. 2010)
Every product is built from five layers, from abstract to concrete: strategy, scope, structure, skeleton and surface. Each layer constrains the one above it, so most "surface" problems are really problems on a lower plane.
Garrett drew the model to explain why web projects kept failing despite good visual design. His answer: the visible part sits on top of four invisible decisions. If those are wrong or missing, no amount of visual work can save the result. The model is now over twenty years old and it is still the clearest map of what you are actually deciding when you "design an app".
The planes, bottom to top. The example column shows how one strategy sentence ("people who save more than they read") ripples all the way up to type and color.
Each plane in detail
1. Strategy: why does this exist?
Two halves: the user's needs and your objectives. For a solo creator, your objectives are honest and simple: revenue, time, joy, learning. Write both down. A product whose strategy is only "I wanted to build it" can be fine, but then say so, and do not pretend that a missing market is a design problem.
2. Scope: what is in and out?
The list of features and content. The most valuable thing on this plane is the "out" list. Every feature you add raises the cost of every future change, and every item you leave out makes the remaining ones easier to find. Garrett splits scope into functional specifications (what it does) and content requirements (what it contains).
3. Structure: how does it fit together?
Two parts: interaction design (how the system behaves in response to the user) and information architecture (how content is organized so people can find it). This is where your conceptual model lives: what the objects are (articles, highlights, tags), how they relate, and what verbs act on them. See Structure & Interaction.
4. Skeleton: where do things go?
Interface design (arranging controls), navigation design (moving between places) and information design (presenting information so it is understood). The wireframe is the skeleton's natural form.
5. Surface: what do the senses meet?
Visual design: type, color, imagery, spacing, motion, sound. It is the most visible plane and the one people judge first. See Visual Design and Typography.
Two rules that make the model useful
Rule one: problems flow upward, so diagnose downward. When something feels wrong on the surface, step down one plane at a time and ask whether the problem started there. A cluttered toolbar (surface) is often a skeleton problem (too many controls on one screen), which is often a scope problem (too many features), which is often a strategy problem (no clear idea of who the product is for).
Rule two: work overlaps, but finishes in order. Garrett did not argue for a waterfall. You can sketch surfaces while you are still deciding scope; often you must, because a sketch reveals what a feature really costs. But you should not finish a plane before the plane beneath it is settled. Polishing the surface of an undecided structure is the most expensive way to waste a week.
Start early, finish in order. Each plane begins before the one beneath is complete, but ends after it. Surface work starts surprisingly early (rough sketches) and ends last.
Seeing the planes in a real screen
Don't: fix it on the surface
Why it fails. Nicer toggles do not reduce the fourteen decisions you pushed onto the user. The problem is on the scope plane.
Do: fix it on the right plane
Why it works. The scope changed: good defaults replaced most settings. The surface can now be calm because there is less to show.
Myth
"UX is the lower planes and UI is the top one, so UX designers and UI designers do separate jobs." The planes describe kinds of decisions, not kinds of people. Every good designer moves up and down the stack all day. A typographic decision (surface) can expose a structure problem (two headings that mean the same thing); a strategy shift can make half the surface obsolete.
For the solo creator
Keep a single page for your product with five short sections, one per plane, bottom first. Strategy in three sentences. Scope as an in/out list. Structure as a list of objects and verbs. Skeleton as a list of screens. Surface as your type, color and spacing tokens. Update it when you change your mind. When you are stuck, read it from the bottom up.
Do
Diagnose downward: when the surface feels wrong, check the plane beneath first.
Write an explicit "out of scope" list and reread it before adding anything.
Sketch the surface early to test what a scope decision really costs.
Name your objects and verbs on the structure plane before drawing screens.
Don't
Spend a weekend on colors while you still have not decided what the main screen is for.
Treat the model as a waterfall that forbids early sketches.
Answer a strategy question ("who is this for?") with a surface change ("let's make it look more professional").
Let scope grow because the skeleton "has room".
In the wild
Basecamp37signals, 2004 onward
Basecamp's founders wrote openly about saying no to most feature requests and keeping scope small (see their book Getting Real, 2006). A firm scope plane is what lets a small team ship a coherent surface.
Things 3Cultured Code, 2017
Its structure (areas contain projects, projects contain to-dos and headings; "Today" and "This Evening" are views, not containers) is so clear that the surface can be almost bare. Strong structure buys you a quiet surface.
Google Search1998 onward
The home page has remained mostly one field and a logo for decades, because the strategy (find anything, fast) and the scope (search, not a portal) never wavered. Stable lower planes produce a stable surface.
Kindle e-readersAmazon, 2007 onward
The strategy (read books comfortably for hours) set the scope (reading first, very little else), which set the hardware surface: E Ink, matte, few buttons. Strategy can reach all the way to materials.
Common mistakes
Surface-first redesigns
Restyling is fun and visible. Rethinking scope is uncomfortable because it means deleting work.
Before any redesign, write one sentence per plane describing what changes. If only the surface line has content, ask whether that is truly where the problem is.
Skipping structure
Developers often jump from a feature list (scope) straight to screens (skeleton), and the objects and relationships emerge accidentally from the database.
Draw the objects as boxes with arrows for "contains" and "belongs to", and list the verbs. Do this before any screen. It takes 20 minutes.
A strategy that is only your objectives
"Make ₹1 lakh a month" is a real objective, but it says nothing about user needs, so it cannot guide a single design decision.
Pair every objective with a user need sentence: "People who [situation] need [outcome]."
Check yourself
Users of your habit tracker say the home screen "feels cluttered". It shows habits, a streak calendar, a mood log, a journal prompt and a stats card. Which plane should you check first?
Five unrelated features compete on one screen. That is a scope question first, and possibly a strategy one (is this a habit tracker or a journal?). Layout and styling changes would only rearrange the clutter.
Exercise 2.1 45 minutes · on your own product
Your product on one page, bottom up
Strategy: write who it is for, the need, and your own objective, in three sentences.
Scope: list every feature. Then write an "out" list of at least five things you will not build.
Structure: list the objects (nouns) and verbs. Draw boxes and arrows for how objects relate.
Skeleton: list every screen in one column.
Surface: write your typefaces, sizes, colors and spacing values (or "undecided").
Circle the plane that feels weakest. Write one action to strengthen it this week.
You're done when: you have a one-page, five-section document with an "out" list and one circled weak plane with an action.
Beginner
Competent
Strong
All five sections filled, mostly with features.
Includes a real "out" list and a clear object model.
Traces at least one surface detail back to a strategy sentence, and identifies a mismatch between planes.
3
Design is deciding under constraints
Taught by Charles Eames, with Herbert Simon and Jeff Bezos
A design is a set of choices between options, made against criteria, inside constraints. Getting good at design mostly means getting good at that sequence: seeing more options, naming the criteria, respecting the constraints, and knowing which decisions are cheap to change.
Herbert Simon, in The Sciences of the Artificial (1969), defined design broadly: everyone designs who devises courses of action aimed at changing existing situations into preferred ones. It is a useful definition because it strips away the visual mystique. You design when you choose a default, name a button, decide what happens offline, or decide not to build sync this year.
Charles Eames, in a well-known question-and-answer session linked to the 1969 Paris exhibition Qu'est-ce que le design? (later filmed as Design Q&A), was asked whether design admits constraint. He answered that design depends largely upon constraints, and went on to describe the designer's job as recognizing as many of them as possible and accepting them with enthusiasm. That is the attitude to take. Constraints are not what stops you designing; they are what turns an infinite space of possible apps into a finite space you can search.
Options, constraints, criteria, choice. Beginners jump straight to "choice" with only one option in mind. Most of the skill lives in the first three steps.
Step 1: generate more than one option
The single most reliable habit of strong designers is refusing to evaluate the first idea alone. The first idea is usually the most obvious one, which means it is the one every competitor also had. Force yourself to produce at least three genuinely different options, and make them different in kind, not in color: a list, a calendar, a single "next thing" card. Three is the minimum because two options turn into a debate, while three turn into a comparison.
Step 2: name the constraints
Constraints are facts you cannot change in this decision. Platform conventions (an iOS app has a back gesture whether you like it or not). Technical limits (you cannot sync in real time without a server). Your own time and skill. Legal requirements. The user's context (one hand, on a train, poor network). Write them down; they will kill some options immediately, which is a gift.
Step 3: write the criteria, in order
Criteria are what "good" means for this decision. They must be ranked, because they will conflict. "Fast" and "can't lose data" may pull in opposite directions; the ranking says which wins. A ranked list of three or four criteria turns a taste argument with yourself into a quick, almost mechanical comparison.
Step 4: know what kind of decision it is
Jeff Bezos, in his 2015 letter to Amazon shareholders, split decisions into two types. Type 1 decisions are one-way doors: hard or impossible to reverse, so they deserve slow, careful thought. Type 2 decisions are two-way doors: if you are wrong, you walk back through. His warning was that organizations tend to treat every decision as Type 1, and so they slow down. A solo creator usually has the opposite problem: treating one-way doors (data formats, pricing model, URLs, public APIs, the core object model) as casually as button colors.
Spend your care where reversal is expensive. Two-way doors can be decided in minutes and fixed tomorrow. One-way doors deserve a written option list and a night's sleep.
Key idea
No options, no design. Generate three, kill some with constraints, rank by criteria, and match your care to how hard the decision is to undo.
Don't
Decision: "Use a calendar view for tasks." Why? It looked good in a competitor's screenshot. Options considered: 1. Criteria: none written.
Why it fails. One option, borrowed reasoning, no criteria. You cannot tell later whether it was a good call, and you will reopen it every week.
Do
Decision: Single "Next" card on home. Options: list · calendar · next card. Criteria: 1 start work in <5s, 2 no planning needed, 3 two days to build. Door: two-way. Revisit after 30 users.
Why it works. Three real options, ranked criteria, and an explicit reversal plan. Future you can judge the decision on its own terms.
For the solo creator
Your scarcest constraint is your own time, and it is a legitimate design criterion. "I can build and maintain this alone" belongs on every criteria list. A slightly less elegant design you can ship in two days and maintain for five years beats a perfect design that needs a team. Say it openly rather than letting it silently bend your choices.
Do
Produce three options that differ in kind before choosing.
Write constraints first; let them eliminate options cheaply.
Rank criteria so conflicts resolve themselves.
Label each decision one-way or two-way, and slow down only for one-way doors.
Don't
Evaluate a single idea in isolation; you will always find it acceptable.
Treat constraints as excuses for a weak result; treat them as the shape of the problem.
Agonize over two-way doors such as copy and color.
Change a data format or pricing model on a whim.
In the wild
Twitter's 140 characters2006
The limit came from SMS, which allowed 160 characters per message, leaving room for a username. A technical constraint became the defining feature of the product's writing style. A constraint accepted fully can become identity.
Instagram at launch2010
Square photos, a small set of filters, and only a phone app. Each was a constraint that kept the product focused and made weak phone photos look better. Fewer options for the user can be a design decision made for them.
Apple WatchApple, 2015
A tiny screen forced a new interaction vocabulary (the Digital Crown, glances later replaced, complications). Whatever you think of individual choices, every one is a response to a hard size constraint. The tighter the constraint, the more original the design has to be.
Common mistakes
The single-option trap
The first idea arrives with a feeling of rightness, and generating more feels like wasted time.
Make "three options" a rule, not a mood. Set a ten-minute timer and sketch three thumbnails before choosing anything.
Hidden criteria
You choose by a criterion you would not admit to ("it's easier for me to build"), and then rationalize.
Put your honest criteria on paper, including build cost. Hidden criteria are only bad because they are hidden.
Casual one-way doors
Solo creators move fast and treat everything as reversible.
Keep a short list of one-way doors for your product. Anything on it gets options written down and a 24-hour wait.
Check yourself
You are choosing how to store notes in your app: a proprietary database format or plain Markdown files in a folder. Which approach to the decision fits best?
Storage format shapes sync, export, trust and every future feature, and migrating real user data is risky. It is a classic one-way door. Votes and demos do not capture the long-term criteria.
Connect the ideas · Part one recap
Your app's export feature works but nobody uses it. You notice it sits in Settings → Advanced → Data. Using chapters 1 to 3, which is the best first move?
Low usage of a buried feature is not proof that nobody needs it. Placement is a skeleton problem grounded in structure (where does "export" belong in the user's model?). Generate placement options before restyling (surface) or deleting (scope).
Exercise 3.1 40 minutes · on your own product
One decision, done properly
Pick a decision you are currently avoiding in your product.
Sketch or write three options that differ in kind.
List the constraints. Cross out any option they eliminate.
Write three or four ranked criteria. Score each surviving option against them.
Label the decision one-way or two-way. Choose. Write the entry in your decisions.md.
You're done when: a dated decision entry exists with options, constraints, ranked criteria, door type and the reason for the choice.
Beginner
Competent
Strong
Three options, but variations of one idea.
Three options of different kinds, ranked criteria, a clear choice.
Also states when and how you will check whether the choice was right.
Part two
Norman's model of everyday things
Don Norman's The Design of Everyday Things (first published in 1988 as The Psychology of Everyday Things, revised and expanded in 2013) is the closest thing design has to a shared textbook. It gives you a vocabulary for why people get stuck. The examples are doors, stoves and taps, but every idea transfers to software almost unchanged. These five chapters cover the whole model, in more depth than the summary you have seen before.
4
Affordances and signifiers
Taught by Don Norman, building on James J. Gibson
An affordance is what an object lets you do. A signifier is what tells you so. Users cannot see affordances directly; they act on signifiers. When the two disagree, people fail, and they blame themselves.
The psychologist James J. Gibson coined "affordance" in the late 1970s to describe the action possibilities the environment offers an animal: a flat, firm surface affords standing; a handle-sized branch affords grasping. Norman brought the word into design in 1988. It spread so fast that designers started saying things like "I added an affordance" when they meant "I added a visual hint". In the 2013 revision of his book, Norman introduced signifier to fix this. The affordance is the relationship (this glass panel can be pushed). The signifier is the perceivable cue (a flat metal plate at hand height that says push here).
On screens the distinction matters even more, because almost everything has the same physical affordance: you can tap, click or press any pixel. What differs is whether anything happens. So in software, design work around "affordance" is really work on signifiers: shape, position, color, text, cursor, motion and convention that tell people what will respond and how.
People act on what they perceive. If the signifier promises an action the affordance does not deliver (or hides one it does), the design fails, however clever the underlying feature.
The Norman door
A "Norman door" is the nickname for any door whose design tells you the wrong thing: a pull handle on a door you must push, or identical handles on both sides so you cannot tell which way it opens. The tell-tale sign of a Norman door is a label. If a door needs a sign saying PUSH, the design has already failed, and the sign is a patch. Try it.
Open the door
You are walking into a café. Open the door.
Same café, same door, different hardware. Open it.
Without: the bar handle is a powerful signifier for "grab and pull". The tiny PUSH sign has to fight it, and usually loses.
With: a flat plate offers nothing to grab. It signifies push and physically prevents pull. No sign is needed, in any language.
Signifiers on screens
Software has its own Norman doors, and you can find them in almost any app. Text that looks like a link but is not. A link that looks like body text. A card with a hover shadow where only the tiny title responds. An icon button that looks like a decorative glyph. A "flat design" period in the mid-2010s produced many of these: when buttons lost their borders, fills and shadows, people lost the signifiers that told them where to press. Research by the Nielsen Norman Group around 2017 found that people needed more time and attention to find clickable elements on weakly signified flat interfaces.
Don't
Why it fails. Which lines are actions? "Edit schedule" and "Last sent" look identical. The chip looks like a button but is a label.
Do
Why it works. Information is plain, links are underlined, the main action is a filled button. Every element's look matches its behavior.
The signifier toolkit
Signifier
What it says
Software example
Shape and boundary
"I am a separate object you can act on"
A filled or outlined button; a card with a clear edge
Convention
"I behave like the ones you know"
Underlined blue text is a link; a magnifier means search
Label
"This is what I do"
"Export as PDF" instead of an ambiguous icon
Position
"I relate to what is near me"
A delete icon inside the row it deletes
State change on approach
"I respond"
Hover tint, pointer cursor, focus ring
Partial reveal
"There is more this way"
A carousel showing the edge of the next card
Motion
"I can move like this"
A sheet that bounces slightly to show it can be dragged
Watch out
Touch screens have no hover. Any signifier that only appears on hover (row actions, tooltips, underline on hover) is invisible on a phone. Design the resting state so it signifies enough on its own.
Key idea
If it needs a label to explain how to operate it, look first for a design that would not.
For the solo creator
You know where every clickable thing is, so you are the worst person to judge signifiers. Use the "squint and point" test: blur your eyes (or take a screenshot and blur it) and point at everything you think is clickable. Then compare with the real list. Better still, ask someone who has never seen the app to do it.
Do
Make interactive things look different from non-interactive things, consistently, everywhere.
Make the whole visible object the hit target when it looks like one object.
Use platform conventions as free signifiers that users already learned.
Check every hover-only signifier on a touch device.
Don't
Style labels as buttons or buttons as labels.
Rely on a tooltip or help text to explain how a control works.
Use "affordance" when you mean "visual hint"; say signifier.
Remove borders and fills from buttons just to look minimal.
In the wild
iPhone slide to unlockApple, 2007
A track, a knob with an arrow and the words "slide to unlock" with a moving shimmer across them. Three signifiers (shape, label, motion) for one gesture nobody had seen before. New interactions need stacked signifiers until they become convention.
iOS 7 text buttonsApple, 2013
The redesign turned many buttons into plain colored words with no border. Apple later added an accessibility setting, Button Shapes, that puts shapes back under those words. When you strip signifiers, some people need them restored.
Google Docs, Notion2006, 2016 onward
An empty document shows placeholder text in gray ("Type '/' for commands" in Notion). The placeholder is a signifier for an invisible feature. Empty states are prime real estate for signifiers.
Most scroll viewseverywhere
Cutting the last visible row in half signals "more below". A list that ends exactly at the screen edge looks finished, and people stop scrolling. Partial reveal is a signifier you get by layout alone.
Common mistakes
The invisible gesture
Swipe actions, long-press menus and keyboard shortcuts feel elegant to the designer who knows they exist.
Treat hidden gestures as accelerators only. Every action must also have a visible path (a button or menu item).
Hit targets smaller than the signifier
Only the text or icon is wired up, while the visual row or card looks like a single object.
Make the clickable area match the visible object. On touch, keep targets at least about 44 by 44 points (Apple) or 48 by 48 dp (Android Material).
Fixing with labels
Adding "Click here to edit" is faster than redesigning the control.
Treat every explanatory label as a bug report about the design. Keep it only if no better signifier exists.
Check yourself
In your notes app, a "+" icon in the top right creates a note. New users keep typing into the search field instead, expecting it to create a note. What is going on?
An empty field is one of the strongest "type here" signifiers in software. Its placeholder (or lack of one) does not disambiguate. Options include a clearer placeholder ("Search notes"), or making typing in it offer "Create note with this title", as several launcher-style apps do.
Exercise 4.1 30 minutes · on your own product
Hunt for your Norman doors
Screenshot your three most-used screens.
On each, circle in one color everything that is interactive and in another color everything that only looks interactive.
List every place where you use a label, tooltip or help text to explain how to operate something.
For each item, write a signifier change that would remove the need for the explanation.
You're done when: you have three annotated screenshots and at least five signifier fixes, one of which you have shipped.
Beginner
Competent
Strong
Finds obvious mismatches (labels styled as buttons).
Also finds hit-target and hover-only problems.
Also tests with someone new and finds a door you did not predict.
5
Mapping and constraints
Taught by Don Norman
Mapping is the relationship between controls and their effects. When the layout of the controls mirrors the layout of what they control, people need no labels and make fewer errors. Constraints narrow the possible actions so the right one is the obvious one.
Natural mapping: the stove
Norman's favourite example is the kitchen stove. Four burners sit in a rectangle. The four knobs often sit in a straight line. Which knob controls which burner? With a straight row, there are 24 possible arrangements, and the cook has to read tiny labels or remember. If the knobs are arranged in the same pattern as the burners, the mapping is obvious, and labels become unnecessary.
Don't: arbitrary mapping
Why it fails. Four in a row cannot mirror two by two. Which knob is back-left? People turn on the wrong burner, or need labels.
Do: natural mapping
Why it works. The knobs form a tiny copy of the burner layout. Back-left knob, back-left burner. No labels needed.
Now try it yourself. The lab below is a room with four lamps and a switch panel. You will be asked to turn on one named lamp at a time. Try a few rounds with each panel and compare your times and errors.
Lab: find the right switch
Press Start to get a lamp to switch on.
Desk
Shelf
Sofa
Bed
Floor plan, seen from above
Switch panel by the door
Panel
Rounds
Average time
Wrong switches
Try five rounds on each panel. Notice two things. The natural panel is fast from the very first round. The unlabelled row gets faster as you memorize it, which is knowledge in your head; press "Move to a new building" to see that knowledge evaporate.
Mapping in software
Screens are full of mapping decisions, and most are invisible until they go wrong. A slider for text size should get bigger to the right and show a small "A" on the left and a large "A" on the right. A brightness control should increase upward or rightward. The order of items in a settings list should match the order of the things they affect on screen. A volume key on the side of a phone should raise the volume with the upper button.
Good mappings come from three sources. Spatial correspondence: the control's layout mirrors the effect's layout (the stove, or a window-snapping control drawn as a little screen diagram). Cultural metaphor: more is up, time flows left to right in left-to-right languages. Biological or perceptual: louder is "bigger", brighter is "more". A mapping that uses all three at once almost never needs explaining.
Don't
Why it fails. Abstract numbers have no spatial or perceptual mapping to "size". People must try and see.
Do
Why it works. Small A to big A maps left-right to size. The live preview closes the loop instantly.
Constraints: four kinds
Norman describes four kinds of constraint that guide people toward correct actions. His illustration is a small Lego motorcycle kit: even without instructions, most people assemble it correctly, because the pieces only fit some ways (physical), the rider faces forward (cultural and semantic), and the last piece must go in the last remaining spot (logical). Every kind has a software equivalent.
Constraints prevent errors before they happen. A date picker that cannot produce invalid dates beats an error message about invalid dates, every time.
Watch out
Cultural constraints are local. Red means danger in much of the world but also luck and celebration in parts of East Asia; in India, red and green carry many meanings beyond stop and go. Use color as a supporting signal, never the only one. More in Accessible & Inclusive.
Key idea
Design the controls in the shape of the thing they control, and make wrong actions impossible rather than merely discouraged.
For the solo creator
Constraints are cheaper to build than error handling. A select menu instead of free text, a stepper instead of a number field, a disabled button with a reason, a format mask on a phone number: each removes a whole category of error messages, validation code and support emails. When you are the support team, constraints pay for themselves within a week.
Do
Arrange controls spatially like the things they affect.
Use direction metaphors consistently: more is up or right.
Prefer input methods that can only produce valid values.
When a button is disabled, show why next to it.
Don't
Use abstract numbers ("Level 3") for perceptual qualities like size or brightness.
List settings in an order unrelated to the screen they affect.
Let people type a value you will later reject.
Rely on color alone as a constraint.
In the wild
macOS display arrangementApple, long-standing
You arrange multiple monitors by dragging rectangles that mirror their physical positions. Moving the mouse off the right edge then lands where the picture says. The control is a miniature of the world.
Natural scrollingmacOS Lion, 2011
Apple reversed trackpad scrolling so content moves with your fingers, as on a touch screen. Many people found it wrong at first because their old mapping (move the scroll bar) was in their heads. Mappings that conflict with learned ones carry a switching cost, even if they are more "natural".
Car seat controlsMercedes-Benz and others
Some cars put the seat adjustment controls on the door in the shape of a seat: push the "back" part to tilt the back. The most famous physical example of spatial mapping, and a good model for settings panels.
UPI PIN entryIndia, 2016 onward
Payment apps show a fixed number of PIN boxes (four or six) that fill as you type. The structure physically constrains length and shows progress. A constraint can also be feedback.
Common mistakes
Arbitrary toggle lists
Settings get appended in the order they were built.
Order settings by the screen layout or by the user's sequence of thought, and group by the object they affect.
Validate after, not constrain before
Free text fields are the default component, and validation feels thorough.
For every field, ask: can the input method make invalid values impossible? Use pickers, masks, steppers and smart defaults.
Disabled with no reason
Disabling a button is an easy logical constraint, but it leaves people stuck guessing.
Either keep the button enabled and explain what is missing when pressed, or show the reason beside the disabled button.
Check yourself
Your split-view writing app has a setting for "Preview position" with options Left, Right, Top, Bottom, shown as a text dropdown. Which redesign uses mapping best?
The control becomes a miniature of the window, so position maps to position. Icons help a little, but a vertical list still maps four directions onto one dimension.
Exercise 5.1 45 minutes · on your own product
A constraint pass
List every input in your product: fields, pickers, toggles, sliders.
For each, write the errors it can produce today.
For each error, choose a constraint that would make it impossible (physical, semantic, logical or cultural).
Check every control whose effect has a spatial or perceptual quality (size, position, order, intensity). Does its layout map to the effect?
Implement the two cheapest fixes.
You're done when: you have an input inventory with errors and constraint fixes, and two shipped changes that removed an error message or a validation rule.
Beginner
Competent
Strong
Inventory complete, fixes are mostly better error messages.
Fixes prevent errors rather than explain them.
Also redesigns at least one control as a spatial mapping and deletes the code that handled its errors.
6
Feedback and conceptual models
Taught by Don Norman, with Robert Miller and Jakob Nielsen on response times
Every action needs an immediate, informative response, and the product as a whole must give people an accurate story of how it works. Feedback answers "did that work?"; a conceptual model answers "how does this thing work at all?"
Feedback: closing the loop
When you press a light switch, the light comes on. That is feedback: the world tells you the result of your action. Software breaks this loop all the time, because the result happens somewhere invisible (a server, a file, a background queue). Good feedback has four properties:
Immediate. Classic response-time research, from Robert Miller (1968) and later summarized by Card, Moran and Newell and by Jakob Nielsen, gives three thresholds: about 0.1 second feels instantaneous; about 1 second keeps the flow of thought but the delay is noticed; about 10 seconds is the limit for keeping attention on the task. Above 0.1 s, show that something is happening. Above about 1 s, show progress. Above about 10 s, let people do something else and notify them later.
Informative. "Error" is feedback, but useless. "Couldn't save: you're offline. Your changes are kept on this device and will sync when you reconnect" is feedback that lets people act.
Proportional. Small actions get small feedback (a checkbox ticks). Big or risky actions get bigger feedback (a toast with Undo). Too much feedback is noise: a modal for every success trains people to dismiss modals.
Located. Feedback should appear where attention already is. A "Saved" message in a status bar the user is not looking at barely exists.
Feedback scales with waiting. The longer an action takes, the more the interface has to say about it.
Try the most common feedback failure in software: a save action that tells you nothing.
Did it save?
Trip notes
Trip notesSaved
Without: edit the text and press Save. Then press it again. Do you trust it? Most people press several times "to be sure", which is the user doing the system's job.
With: edit the text. A dot marks unsaved changes, the button shows "Saving…" for the second it takes, and the status reads "Saved just now". Each state answers a question before you ask it.
Conceptual models: the story in the user's head
A conceptual model is a simplified explanation of how something works. It does not need to be technically accurate; it needs to be accurate enough to predict what will happen. "Files live in folders" is a conceptual model. So is "the trash keeps deleted things until I empty it", and "a draft is private until I publish it".
Norman's key insight is that there are three models, not one, and the designer only controls one of them directly.
The system image is your only channel. You cannot sit beside every user. Whatever model forms in their head is built from what the product shows and does.
Norman's classic example is the home thermostat. Many people believe that turning it far higher makes the room heat faster, like opening a valve wider. In most homes it does not: the heater runs at one speed until the target is reached, like a timer switch. The wrong model leads to wasted energy and overheated rooms, and nothing on the thermostat corrects it. In software, the same thing happens with sync ("is my phone copy the real one?"), with deletion ("does removing it from this list delete the file?"), and with sharing ("can people with the link edit, or only view?").
Don't
Why it fails. "Delete" does not say what is deleted. The system image leaves people to guess the model.
Do
Why it works. The wording teaches the model: a playlist holds references; the library holds the song. Two verbs for two scopes.
Key idea
You never explain your product in person. The interface is the explanation, so every label, state and error message is teaching a model, right or wrong.
For the solo creator
Write your conceptual model in five sentences of plain language before you build ("A notebook holds pages. Pages can be in one notebook only. Deleting a notebook moves its pages to Trash for 30 days…"). If you cannot write it simply, users cannot learn it. Then make sure every label in the UI uses the exact nouns and verbs of those sentences.
Do
Give feedback within 0.1 s for every action, even if it is only a pressed state.
Show progress for anything over about a second.
Use the same nouns and verbs everywhere to teach one model.
Make system state visible: saved, syncing, offline, shared.
Don't
Let any action pass in silence.
Use modals for routine success messages.
Use one word ("Delete") for actions with different scopes.
Leave people to guess whether their data is safe.
In the wild
WhatsApp ticksMeta, read receipts from 2014
One gray tick: sent. Two gray ticks: delivered. Two blue ticks: read. A tiny, consistent feedback system that hundreds of millions of people learned without instructions. Feedback can be compact if it is consistent.
Google Docs statusGoogle
A small status near the title tells you when changes are saved, and switches to an offline state when you lose connection. Persistent, located status beats one-off messages.
macOS document dotApple
On a Mac, an unsaved document shows a dot in the window's close button. Unsaved state can be signalled with almost no pixels.
Dropbox sync iconsDropbox, 2008 onward
Small badges on files (synced, syncing, online-only) make the hidden sync model visible in the file browser itself. Bring invisible system state to the object it concerns.
Common mistakes
Optimistic silence
Developers know the request usually succeeds, so they skip loading and success states.
Design four states for every action: idle, working, success, failure. Build all four.
Model drift in words
Over time, the UI says "project" in one place, "workspace" in another and "board" in a third, for the same thing.
Keep a glossary of your product's nouns and verbs and grep the codebase for synonyms.
Feedback far from the action
A global toast area is convenient to build.
Put feedback on or next to the control that caused it; use toasts only for actions whose result is elsewhere, and include Undo.
Check yourself
Users of your photo backup app keep deleting photos from their phones and then panicking, asking whether the backup copy is gone too. What is the root cause?
"Copy" and "mirror" behave opposite on deletion. If the interface never makes clear which one it is (for example: "Safe in your backup. Deleting from your phone won't delete it here"), people fill the gap with fear or wrong guesses.
Exercise 6.1 45 minutes · on your own product
Map every state and every word
Pick your product's most important action. List its four states (idle, working, success, failure) and screenshot or sketch what each looks like today.
Fill in any missing state.
Write your conceptual model in five plain sentences.
Search your UI text for every noun and verb. Mark any that are not in your five sentences, or that are synonyms.
You're done when: your key action has four designed states, and you have a five-sentence model plus a list of words to unify.
Beginner
Competent
Strong
States listed, some still missing.
All four states designed; model written.
Also tests the model by asking someone to explain your product back to you, and fixes the words where their explanation diverged.
7
The two gulfs and the seven stages of action
Taught by Don Norman, from work with Edwin Hutchins and James Hollan
Between a person and their goal lie two gulfs: the gulf of execution (how do I do it?) and the gulf of evaluation (did it work?). Design bridges both. The seven stages of action tell you exactly where on the bridge someone fell.
The gulfs were described by Hutchins, Hollan and Norman in the mid-1980s, and Norman made them central to his book. The idea is simple. When you want something, you have to translate your goal into actions the system accepts. That distance is the gulf of execution. Then the system changes, and you have to interpret what you see and compare it with what you wanted. That distance is the gulf of evaluation. Signifiers, mapping and constraints bridge execution. Feedback and a good conceptual model bridge evaluation.
Two directions, two kinds of help. When people cannot start, the execution bridge is weak. When they do the right thing and still feel unsure, the evaluation bridge is weak.
The seven stages of action
Norman breaks every interaction into seven stages: one for the goal, three for execution, and three for evaluation. Most of the time they happen in a fraction of a second and nobody notices. They become visible when something goes wrong, which is exactly why they are useful for diagnosis.
Down the left, up the right. For each stage, you can ask a design question. Where someone stalls tells you which part of your design failed.
Stage
Design question
Failure looks like
1 Goal
Does the product speak to goals people actually have?
People don't know why they would open it
2 Plan
Can they tell which approach the product supports?
"Can it even do that?"
3 Specify
Is the sequence of actions discoverable?
Hunting through menus
4 Perform
Are the controls easy to operate?
Missed taps, fiddly drags, typos
5 Perceive
Is the result visible?
"Did anything happen?"
6 Interpret
Is the result understandable?
"What does this icon mean?"
7 Compare
Can they tell if the goal is met?
Checking again in another app to be sure
Norman also points out that goals come in levels. "Send Asha the photos" sits under "keep the friendship warm", which sits under "be a good friend". Most products serve the lowest level, but the best ones understand the levels above. A photo app that suggests "Share this album with the people in it" has understood the higher goal. This links directly to Cooper's goal-directed design in chapter 11 and to jobs to be done in Problems Worth Solving.
Don't: wide gulf of evaluation
Why it fails. Stages 5 to 7 have nothing to work with. The person cannot perceive, interpret or compare.
Do: bridged
Why it works. The result appears as a new object in the world, with a status that answers the next question.
Key idea
When someone gets stuck, ask "which stage?" before asking "which pixel?". The answer tells you whether to fix a signifier, a word, or a piece of feedback.
For the solo creator
Use the seven stages to read support emails. "I can't find how to…" is stages 2 to 3. "I clicked but…" is stage 5. "What does … mean?" is stage 6. "Did it actually…?" is stage 7. Tag each email with its stage for a month; the pattern tells you which bridge to rebuild first.
Do
Diagnose problems by stage before redesigning.
Make the result of an action appear as something new in the world (an item, a status, a change of state).
Design for the goal one level above the immediate task.
Don't
Assume a problem is visual when people cannot even form a plan.
Clear a form as the only sign of success.
Treat evaluation as optional because "it obviously worked".
In the wild
Command palettesSublime Text (2008), VS Code, Linear, Raycast
Typing what you want ("rename", "dark theme") narrows the gulf of execution: you specify your intent in words, and the palette shows the action. Let people state goals in their own language.
Swiggy and Zomato order trackingIndia, 2010s
After paying, you see the order move through clear states (confirmed, being prepared, picked up, arriving) with a map. Long processes need a visible path for evaluation, or anxiety fills the gap.
SpreadsheetsVisiCalc 1979 onward
Change a number and every dependent cell updates at once. The gulf of evaluation almost disappears, which is a big part of why spreadsheets became so widely used. Instant visible consequences make complex systems learnable.
Common mistakes
Fixing the wrong stage
"Users can't find export" gets fixed with a bigger button (perform) when the real gap is that they did not know export existed (plan).
Ask people to think aloud and note the first moment they hesitate. That moment's stage is where the fix belongs.
Feedback that needs interpreting
An icon changes, but its meaning is unclear (stage 6).
Pair new or rare status icons with words, at least until people have learned them.
Check yourself
A user sets a reminder in your app. The app shows a toast: "Scheduled ✓". The next morning the user opens the app to check whether the reminder really exists. Which stage is weakest?
They perceived and understood the toast, but it disappeared and did not say what was scheduled or when. A persistent, specific result ("Reminder: Call Dad · Tomorrow 9:00", visible in a list) supports the comparison.
Exercise 7.1 40 minutes · on a product you use daily
Seven-stage walkthrough
Pick one task in an app you use daily (for example, splitting a bill or scheduling a message).
Do it slowly. For each of the seven stages, write what the app gives you at that stage.
Mark the weakest stage. Sketch one change that bridges it.
Repeat for the same task in your own product, or the closest equivalent.
You're done when: you have two seven-row tables, one weakest stage marked in each, and two sketches.
Beginner
Competent
Strong
Fills all stages descriptively.
Identifies the weakest stage with evidence.
Also notices the goal one level up and proposes a design that serves it.
8
Knowledge, errors and human-centered design
Taught by Don Norman, with James Reason on human error
People do not carry precise knowledge in their heads; they rely on what the world shows them. When they err, it is usually a slip (right goal, wrong action) or a mistake (wrong goal or plan). Design for both, and design with people, not just for them.
Knowledge in the head and knowledge in the world
Norman's demonstration is the coin test: most people cannot draw the front of a coin they have handled thousands of times, yet they never fail to recognize it. We store just enough to tell things apart and rely on the world for the rest. Precise behavior does not require precise knowledge, because the world fills in the gaps through signifiers, constraints and visible options.
This has a direct design consequence. Anything you put in the world (a visible menu, a recent-files list, a label, an autocomplete suggestion) can be recognized. Anything you leave in the head (a keyboard shortcut, a command syntax, a code from an email) must be recalled. Recognition is far easier than recall, which is why Nielsen made "recognition rather than recall" one of his ten heuristics.
Put it in the world, then let experts carry it in their heads. A menu item that also displays its shortcut teaches the fast path through repeated recognition.
Slips and mistakes
Norman builds on the psychologist James Reason's work on human error. The core split is between slips, where the intention was right but the action went wrong, and mistakes, where the intention itself was wrong. They need different fixes, so telling them apart is a practical skill.
Slips happen to experts; mistakes happen to novices. Slips come from autopilot, so they increase with skill. Mistakes come from a wrong model, so they decrease with learning.
Error
Software example
Design fix
Capture slip
Typing your old password out of habit; pressing Cmd+W meaning to close a tab and closing the window
Undo; make the frequent and rare actions less similar
Description-similarity slip
Tapping "Delete" instead of "Duplicate" because they look alike and sit together
Separate and differentiate destructive actions
Mode error
Typing a message with Caps Lock on; editing in "view" mode
Avoid modes; make any mode loudly visible
Memory-lapse slip
Writing "attached" but forgetting the attachment
Reminders at the moment of risk (Gmail does this)
Rule-based mistake
Applying "red means stop" to a red "Record" button
Align with the rules people already apply
Knowledge-based mistake
Thinking "archive" deletes, so never archiving
Teach the model through the system image
Designing for error
Norman's advice is to assume every error that can be made will be made, and to design accordingly. In order of strength:
Prevent: use constraints so the error cannot happen (chapter 5).
Make reversible: undo, trash with a grace period, version history. Reversibility turns errors into exploration.
Detect early: warn at the moment of risk, specifically, not in general ("You mentioned an attachment but none is attached").
Explain and help recover: when an error does happen, say what happened, why, and what to do next, in plain words.
Confirm, rarely: confirmation dialogs are the weakest tool, because people learn to press OK without reading. Save them for irreversible, high-cost actions, and make them specific ("Delete 'Thesis draft' and its 14 versions? This can't be undone").
Don't
Why it fails. Sure about what? Same dialog for everything, so people stop reading. And the action could have been undoable.
Do
Why it works. No interruption for the common case; one tap to recover the slip; specific about what happened and where it went.
Human-centered design
Norman's book ends with a process: human-centered design, an approach formalized in the international standard ISO 9241-210. Its loop is observation, idea generation, prototyping and testing, repeated. The point is not the steps but the attitude: assume your first understanding of the problem is wrong, and use contact with real people to correct it, early and often. He also warns that the right problem is rarely the one first stated. "Solve the correct problem" is the first job (more in Problems Worth Solving).
Many small loops beat one big plan. Each turn costs less when prototypes are rough, which is the subject of chapter 13.
Key idea
There is no such thing as "user error" in a design review. There is only error the design made likely, and error the design made recoverable.
For the solo creator
Undo is the highest-leverage feature you can build. It makes every other part of your product safer to explore, it lets you drop most confirmation dialogs, and it turns support emails ("I deleted it by accident") into non-events. If your architecture makes undo hard, that is a one-way door worth revisiting (chapter 3).
Do
Show the shortcut beside the menu item, so recognition teaches recall.
Make destructive actions undoable before you add any confirmation.
Separate destructive controls from common ones.
Write error messages that say what happened and what to do next.
Don't
Blame users in copy ("Invalid input").
Use generic "Are you sure?" dialogs.
Add modes without a loud, persistent indicator.
Require people to remember anything from one screen to the next.
In the wild
Gmail attachment reminderGoogle
If your message mentions an attachment but none is attached, Gmail asks before sending. Detect the memory-lapse slip at the exact moment of risk.
macOS menusApple
Every menu item shows its keyboard shortcut on the right. Novices click; over time they learn the shortcut by seeing it. Knowledge in the world gradually becomes knowledge in the head.
Figma version historyFigma, 2016 onward
Files keep a browsable history, so you can return to earlier states without having saved copies yourself. Reversibility at the document level encourages bold exploration.
Caps Lockkeyboards everywhere
The classic mode error: the key changes what every other key does, and its indicator light is small or missing. Password fields on macOS show a Caps Lock symbol inside the field. If you must have a mode, signal it where attention is.
Common mistakes
Confirmation fatigue
Confirmations feel safe and are quick to build.
Replace confirmations with undo wherever the action is reversible. Keep confirmations only for truly irreversible actions, and make them specific.
Designing for the perfect user
You test your own flows by following the happy path, with full knowledge.
For each screen, ask "What is the most likely slip here?" and "What wrong model might someone have?" Design one defence for each.
Hidden modes
Modes save screen space and code paths.
Prefer quasimodes (hold a key while it is active) or make the mode visible on the content itself, not only in a toolbar.
Check yourself
A long-time user of your invoicing app accidentally sends an invoice to last month's client, because the "To" field auto-fills the most recent one. What kind of error is it, and what's the best fix?
An experienced user, on autopilot, followed the habitual path that the default made easy. That is a capture slip. Fixes: reconsider the default, make the recipient unmistakable, and allow undo for a few seconds (like Gmail's undo send).
Connect the ideas · Part two recap
People often enable "Focus mode" in your writing app, then cannot find the sidebar and think their documents vanished. Which combination of Norman's ideas best explains this?
This brings together chapters 4, 6, 7 and 8. The mode changes what the screen shows without a visible indicator (signifier, mode error), so evaluation fails and the user's model becomes wrong. A small persistent "Focus · Esc to exit" label would bridge it. Compare with Raskin's warnings about modes in chapter 11.
Exercise 8.1 60 minutes · on your own product
An error audit
List every destructive or hard-to-reverse action in your product.
For each, write the most likely slip and the most likely mistake.
For each, choose the strongest available defence: prevent, reverse, detect, explain, confirm (in that order).
Find every confirmation dialog. For each, decide whether undo could replace it.
List anything users must remember between screens. Move one of them into the world.
You're done when: you have an error table for every destructive action, at least one confirmation replaced by undo (or a plan to), and one memory burden removed.
Beginner
Competent
Strong
Lists destructive actions and adds clearer confirmations.
Distinguishes slips from mistakes and picks different fixes.
Ships undo for the riskiest action and removes at least one confirmation dialog entirely.
Part three
The canon
Norman explains why people struggle. The thinkers in this part tell you what to aim for. Rams gives you ten qualities of good products. Vitruvius, Nielsen, Shneiderman and Tognazzini give you checklists to evaluate an interface. Cooper, Raskin and Victor give you three sharp arguments about what software should be. You do not need to memorize them all; you need to know which one to reach for.
9
Rams' ten principles, translated to software
Taught by Dieter Rams, with the Braun design team
Dieter Rams' ten principles describe good design as innovative, useful, aesthetic, understandable, unobtrusive, honest, long-lasting, thorough, environmentally friendly and as little design as possible. Each one translates directly into concrete software decisions.
Rams was head of design at Braun from 1961 to 1995 and designed furniture for Vitsœ, including the 606 Universal Shelving System (1960), which is still made today. Around the late 1970s, worried that the world was filling up with a confusing clutter of forms, colors and noises, he asked himself whether his own design was good design, and wrote his answer as ten principles. His summary of them is three words, in German Weniger, aber besser.
Less, but better.Dieter Rams, his motto, and the title of his 1995 book
The principles are often reduced to "minimalism". That misses most of them. Only the tenth is about reduction. The others are about purpose (useful), clarity (understandable), restraint (unobtrusive), ethics (honest), time (long-lasting), care (thorough) and responsibility (environmentally friendly). Read them as a checklist of the qualities a product earns, not a style.
A grouping for memory, not Rams' own. Only one of the ten (as little design as possible) is about visual reduction. The rest are about what the product does and how it treats people.
Click through the ten. Each has Rams' principle, its meaning in software, a drawn don't and do, and a one-line test you can run on any screen.
Principle 1 of 10
Good design is innovative.
Innovation in software is not novelty; it is using what is newly possible (a new sensor, a faster chip, a new model) to remove effort that used to be unavoidable. Rams added that innovative design always develops in tandem with innovative technology, and is never an end in itself.
The test: Does this new thing remove a step, or add a button?
Principle 2 of 10
Good design makes a product useful.
A product is bought to be used, so design must serve its primary purpose first and disregard anything that could detract from it. In software, usefulness is measured at the moment someone opens the app: does the first screen help with the reason they came?
The test: Can someone do the main job within five seconds of opening?
Principle 3 of 10
Good design is aesthetic.
Rams argued that aesthetic quality is integral to usefulness, because products we use every day affect our wellbeing. On screens, beauty mostly comes from order: alignment, consistent spacing, one type family, restrained color. It is not ornament.
The test: Do edges align, does spacing repeat, is there one voice in the type?
Principle 4 of 10
Good design makes a product understandable.
It clarifies the product's structure. Better still, Rams said, it makes the product talk: at best, it is self-explanatory. In software that means the interface teaches its own model (chapter 6) without a manual.
The test: Could a new user describe what each control does without trying it?
Principle 5 of 10
Good design is unobtrusive.
Products that fulfil a purpose are like tools, Rams wrote: neither decorative objects nor works of art. Their design should be neutral and restrained, leaving room for the user's self-expression. In software: the user's content is the hero; the chrome steps back.
The test: When the user is working, is anything on screen asking for attention it does not deserve?
Principle 6 of 10
Good design is honest.
It does not make a product appear more innovative, powerful or valuable than it really is, and it does not attempt to manipulate the consumer with promises that cannot be kept. In software this is the line between persuasion and dark patterns (see Honest & Calm).
The test: Would you be comfortable if the user saw exactly why each element is there?
Principle 7 of 10
Good design is long-lasting.
It avoids being fashionable and therefore never appears antiquated. In software, long-lasting design means two things: a visual language that will not date in a year, and data and URLs that outlive the app (open formats, export, stable links).
The test: Will this screen, and this data, still make sense in ten years?
Principle 8 of 10
Good design is thorough down to the last detail.
Nothing must be arbitrary or left to chance. Care and accuracy in the design process show respect towards the user. In software, the last details are the states nobody draws: empty, loading, error, very long text, zero, one, many, offline.
The test: Have you designed zero, one, many, too many, loading, error and offline?
Principle 9 of 10
Good design is environmentally friendly.
Rams meant conserving resources and minimizing pollution across a product's lifecycle. Software has a footprint too: energy in data centres and devices, battery, data plans, and old phones forced into the bin by bloated apps. Lighter software is kinder and more widely usable.
The test: Would this run well on a five-year-old budget phone on a slow network?
Principle 10 of 10
Good design is as little design as possible.
Less, but better, because it concentrates on the essential aspects, and the products are not burdened with non-essentials. Back to purity, back to simplicity. In software: remove every element that does not do work, then make the remaining ones excellent.
The test: Which element could you delete without the user losing anything?
Principle
Software decision it drives
Quick test
1 Innovative
Use new capability to remove a step
Is there one fewer step than before?
2 Useful
First screen serves the main job
Main job in five seconds?
3 Aesthetic
Grid, spacing scale, one type family
Do edges line up?
4 Understandable
Labels, visible model, no mystery icons
Can a newcomer predict each control?
5 Unobtrusive
Content first, chrome recedes
What competes with the content?
6 Honest
True prices, no fake urgency, easy cancel
Could you explain every element to the user's face?
7 Long-lasting
Calm visuals, open formats, stable links
Would it look fine in 2036?
8 Thorough
All states designed, plurals right, long text handled
Have you seen the empty and error states?
9 Environmentally friendly
Small pages, efficient sync, old-device support
Fast on a cheap old phone?
10 As little design as possible
Remove, then refine
What can be deleted?
Myth
"Rams means white, gray and no color." Braun products used color precisely: a single orange or green accent on the power switch, so the most important control stood out. That is a lesson in hierarchy, not in grayness. Your one accent color should mark the thing that matters most.
Key idea
Rams' principles are a description of respect: for the user's purpose, attention, intelligence, money, time and planet. Minimal looks are a side effect.
For the solo creator
Principle 8 (thorough) is where solo products most often show their seams, because edge states are boring to build and you rarely see them yourself. Principle 10 (as little design as possible) is where you have the edge over teams: there is no committee asking for one more feature. Use the second to pay for the first: every feature you do not build buys time to make the remaining ones thorough.
Do
Run all ten tests on your main screen once a month.
Use one accent color to mark the single most important control.
Design the edge states (empty, error, long text) before calling a screen finished.
Prefer open formats and export as a design decision for longevity.
Don't
Treat "less" as removing labels and borders that people need.
Copy Braun's surface (rounded corners, dots, gray) and skip its purpose.
Follow this year's visual trend for core UI.
Use urgency, pre-ticked boxes or hidden fees.
In the wild
Braun SK 4Rams and Hans Gugelot, 1956
A radio-record player with a clear plexiglass lid instead of a wooden cabinet top, nicknamed "Snow White's coffin". It showed the product's workings and controls instead of disguising them as furniture. Honesty and understandability as a visual choice.
Braun ET66 calculatorDietrich Lubs, 1987
Round, slightly convex buttons, a strict grid, and color used only to group functions (a yellow-orange equals key). Its resemblance to the early iPhone calculator app is often pointed out. Color as hierarchy; a design language that lasted decades.
Vitsœ 606 shelvingRams, 1960, still produced
A modular system you can extend and rearrange for decades, with parts that stay compatible. Long-lasting includes compatibility. In software: stable formats and APIs.
iA Writer2010
Plain text files in a folder you choose, a single focus on writing, almost no chrome. Unobtrusive, long-lasting and as little design as possible, in one product.
Linear2019
An issue tracker known for speed, keyboard-first operation and attention to small details such as consistent states and fast transitions. Thoroughness can be a product's main selling point.
Common mistakes
Minimalism as subtraction of signifiers
"As little design as possible" is read as "as few visible elements as possible".
Remove features and decorations, not clarity. Labels, borders on inputs and visible buttons are rarely what makes a screen cluttered.
Copying the Braun look
The aesthetic is recognizable and easy to imitate.
Copy the reasoning: one accent for the key control, strict grid, honest materials. In software, "honest materials" means not faking physical textures or depth that does not exist.
Forgetting principle 9
Software feels weightless, so its footprint is invisible to its maker on a fast laptop.
Set a budget (for example, a first page under a few hundred kilobytes) and test on an old, cheap phone with a throttled connection.
Check yourself
You are redesigning your app's paywall. Which change best follows Rams' principles as a whole?
Honest (6), understandable (4) and useful (2) all point to clear, complete information. Removing the comparison sacrifices understandability for looks; urgency timers fail honesty; a trend fails long-lasting.
Exercise 9.1 60 minutes · on your own product
The ten-principle audit
Take your product's most important screen.
Score it 0, 1 or 2 against each of the ten tests above. Write one sentence of evidence for each score.
Pick the two lowest scores. Sketch a change for each.
Ship one of them this week.
You're done when: you have a ten-row score table with evidence, two sketches, and one shipped change.
Beginner
Competent
Strong
Scores given without evidence.
Each score backed by a specific observation.
Includes the less obvious ones (honest, environmentally friendly, long-lasting) with measurements (page weight, export coverage).
10
Frameworks that evaluate: Vitruvius to Tognazzini
Taught by Vitruvius, Jakob Nielsen, Ben Shneiderman and Bruce Tognazzini, with Aarron Walter
A handful of tested checklists let you evaluate any interface quickly. Vitruvius gives the top-level triad (firm, useful, delightful); Nielsen, Shneiderman and Tognazzini give you detailed rules. Use them as lenses for finding problems, not as recipes for creating solutions.
Firmness, commodity and delight
The Roman architect Vitruvius, writing De architectura in the first century BC, said a building should have firmitas, utilitas and venustas. The English diplomat Henry Wotton's 1624 rendering, "commodity, firmness, and delight", is the version designers still quote. Two thousand years later it still works as the shortest possible definition of good design, and it maps neatly onto software.
The oldest checklist in design. Many products fail at firmness while their makers polish delight. A note-taking app that once lost a note has no delight left to offer.
Aarron Walter's Designing for Emotion (2011) turned the same idea into a pyramid adapted from Maslow: a product must first be functional, then reliable, then usable, and only then can it be pleasurable. Each layer depends on the ones below it.
Delight sits on top, never instead. A playful animation on a save button that sometimes fails is not delightful; it is insulting.
Nielsen's ten usability heuristics
Jakob Nielsen developed his heuristics with Rolf Molich around 1990 and published the refined list of ten in 1994. They are "heuristics" because they are rules of thumb, not precise guidelines: they help you spot problems, and they are the basis of the heuristic evaluation method covered in Testing & Iteration. Here is the short version, each with one software example.
#
Heuristic
In one line
Example
1
Visibility of system status
Always show what is going on, promptly
Upload progress with time left
2
Match between system and the real world
Speak the user's language and follow real-world order
"Trash", not "Deallocated items"
3
User control and freedom
Provide clearly marked exits, undo and redo
Undo after archive
4
Consistency and standards
Same words and actions mean the same thing; follow platform conventions
Cmd+S saves, everywhere
5
Error prevention
Prevent problems before they occur
Date picker instead of free text
6
Recognition rather than recall
Make options visible; don't make people remember
Recent files list
7
Flexibility and efficiency of use
Accelerators for experts that novices can ignore
Shortcuts shown in menus
8
Aesthetic and minimalist design
Every extra unit of information competes with the relevant ones
One primary action per screen
9
Help users recognize, diagnose and recover from errors
Plain-language errors that suggest a fix
"Card declined: try another card or UPI"
10
Help and documentation
Ideally unnecessary, but findable, task-focused and short when needed
Searchable help with steps
Shneiderman's eight golden rules
Ben Shneiderman, a computer scientist at the University of Maryland, published his eight golden rules of interface design in Designing the User Interface (first edition 1986), and has refined them through later editions. They overlap with Nielsen's but emphasize two things Nielsen does not name directly: closure and the user's sense of control.
Strive for consistency. Same situations, same actions, same words.
Seek universal usability. Design for novices and experts, different ages, abilities and devices. (Earlier editions: "enable frequent users to use shortcuts".)
Offer informative feedback. Modest for frequent actions, substantial for rare and major ones.
Design dialogs to yield closure. Sequences have a beginning, middle and end, and the end is clearly signalled ("Order placed. Arrives Thursday").
Prevent errors. And when they happen, offer simple, specific recovery.
Permit easy reversal of actions. It relieves anxiety and encourages exploration.
Keep users in control. Experienced users want to feel they are in charge, and that the system responds to them, not the other way round.
Reduce short-term memory load. People hold only a few items in mind; don't make them carry information between screens.
Don't: no closure
Why it fails. The sequence has no ending. Did the order go through? People check their bank app or order twice.
Do: clear ending
Why it works. A clear end state, with the facts people will want to check, and a single next step.
Tognazzini's first principles
Bruce "Tog" Tognazzini founded Apple's Human Interface Group and wrote early editions of Apple's Human Interface Guidelines. His essay "First Principles of Interaction Design", maintained on his site asktog.com and revised in 2014, lists principles that are more concrete than Nielsen's. A selection worth knowing:
Anticipation
Bring people the information and tools they will need for the next step, before they ask.
Autonomy
Keep users in control, but within boundaries, and keep them informed of status so they can make their own decisions.
Defaults
Defaults should be easy to replace (selected so typing overwrites them), and should reflect what most people want.
Efficiency of the user
Optimize the user's time, not the computer's. The user's time is the expensive resource.
Explorable interfaces
Make actions reversible and offer stable perceptual landmarks, so people can explore without fear of getting lost or breaking things.
Fitts's law
The time to acquire a target depends on its distance and size. Big, close targets are fast; screen edges and corners are effectively infinitely large for a mouse. (More in The Human Mind.)
Latency reduction
Make the interface respond instantly, even if the work takes time; acknowledge every click immediately.
Protect users' work
Never let users lose their work through system failure or their own error.
State tracking
Remember where people were and what they were doing, and bring them back there.
Which framework, when?
You want to…
Reach for
Why
Decide if a product idea is sound
Vitruvius / Walter
Checks the order of needs: works, reliable, usable, then pleasurable
Review a screen in 20 minutes
Nielsen's ten
Short, broad, well known; built for quick reviews
Design a multi-step flow
Shneiderman
Closure, reversal and control are flow-level qualities
Polish interaction details
Tognazzini
Defaults, latency, Fitts, state tracking are concrete
Judge overall product quality
Rams
Covers honesty, longevity and footprint, which the others skip
Watch out
Checklists find problems in what exists. They do not tell you what to build, and a screen can pass all ten heuristics and still be useless. Use them after you have decided what the product is for.
Key idea
Frameworks are lenses. Each one makes certain problems visible. A good designer owns several and knows which to pick up.
For the solo creator
Print Nielsen's ten and Shneiderman's eight on one page and keep it beside your screen. Before every release, spend fifteen minutes walking through the changed screens with that page. It is the cheapest review you will ever get, and it catches the problems your own familiarity hides.
Do
Secure firmness (no data loss, no crashes) before investing in delight.
Give every multi-step flow a clear ending.
Choose defaults that most people would pick, and make them easy to override.
Use heuristics to review; use research and strategy to decide.
Don't
Treat a passed heuristic review as proof the product is good.
Add animation or personality to cover reliability problems.
Cite a heuristic to win an argument with yourself; cite the user's problem.
In the wild
Mailchimp2000s and 2010s
Aarron Walter worked on Mailchimp's user experience, and the product became known for a friendly voice and small moments of humor placed on top of a dependable tool. Personality layered on reliability, not instead of it.
macOS Finder corners and menu barApple
The menu bar sits at the top edge of the screen, so you can throw the pointer upward and it stops on the menu. Tognazzini often used this as a Fitts's law example. Edges are big targets for free.
Stripe CheckoutStripe
Card fields format as you type, catch common errors inline, and show a clear success state. Error prevention, recovery and closure in one small flow.
Common mistakes
Heuristics as a scorecard
Ticking boxes feels rigorous.
Write each finding as a specific problem with its severity and location ("Archive has no undo on the list screen: high"), not a pass/fail mark per heuristic.
Delight before firmness
Delight is fun to build and easy to show off.
Keep a "firmness list" (data loss risks, crash reports, slow paths) and clear it before any delight work.
Check yourself
After someone imports a CSV into your budgeting app, the app silently returns to the dashboard. Some rows failed to import, but nothing says so. Which rules does this break most directly?
The import is a multi-step dialog with no ending, and the system's state (some rows failed) is invisible. A summary screen ("212 rows imported, 3 skipped: see why") fixes both.
Exercise 10.1 45 minutes · on your own product
A twenty-minute heuristic pass
Set a 20-minute timer. Walk through your product's main flow with Nielsen's ten beside you.
Log every problem as: location, heuristic, description, severity (low, medium, high).
Do a second pass with Shneiderman's rules 4, 6 and 7 only (closure, reversal, control).
Fix the highest-severity item.
You're done when: you have a log with at least eight findings, severities assigned, and one high-severity fix shipped.
Beginner
Competent
Strong
Findings are vague ("could be clearer").
Findings are specific, located and rated.
Also finds at least one firmness problem (data loss, unclear sync) that the heuristics alone would not have surfaced.
11
Three arguments: goals, humane interfaces, information software
Taught by Alan Cooper, Jef Raskin and Bret Victor
Cooper argued that you design for people's goals, not tasks or features. Raskin argued that interfaces should never waste human attention or harm human work. Victor argued that most software exists to show information, so interaction should be a last resort. Together they push you toward software that does more and asks less.
Alan Cooper: design for goals
Alan Cooper, often called the "father of Visual Basic" for the visual programming tool he sold to Microsoft, became one of the first prominent voices for interaction design as a profession. In About Face (1995) and The Inmates Are Running the Asylum (1999) he argued that software was hard to use because programmers designed it around how computers work, and he proposed goal-directed design.
The core distinction is between goals and tasks. Goals are end states people want and are fairly stable ("never miss a client payment"). Tasks are the steps a particular technology makes them do ("export CSV, open spreadsheet, filter by date"). Tasks change when technology changes; goals do not. Design for the goal, and you are free to eliminate tasks. Cooper also distinguished personal goals (not feeling stupid, not making mistakes) from practical ones, and pointed out that software that makes people feel stupid fails a goal they never state.
Same goal, five tasks or one. When you design for the goal, the product absorbs the tasks.
Personas, and their limits
To keep goals concrete, Cooper introduced personas in Inmates: precise descriptions of hypothetical archetypal users, built from research, each with a name, context and goals. His argument was that designing for "the user" lets every feature in, because some imagined user always wants it (he called this the "elastic user"), whereas designing for one specific person forces choices.
Personas became hugely popular, and widely misused. Common failures: personas invented without research, full of demographic trivia (age, favourite coffee) that changes no decision; personas used to stereotype; and personas that sit in a slide deck and never affect a design. Many teams now prefer jobs-to-be-done statements and real interview notes. For a solo creator, the useful core of Cooper's idea is simple: design for one specific, real person's goals at a time, ideally a person you have actually talked to.
Perpetual intermediates
Cooper also observed in About Face that most users are neither beginners nor experts. People pass through the beginner stage quickly (or quit), and few ever invest enough to become experts. The majority settle as perpetual intermediates: they know the core features well and the rest vaguely.
Optimize for the middle. Make beginners' first steps easy, give experts accelerators, but design the everyday experience for people who know the basics and not much more.
Jef Raskin: the humane interface
Jef Raskin started the Macintosh project at Apple in 1979 and later designed the Canon Cat. His book The Humane Interface (2000) defines an interface as humane if it is responsive to human needs and considerate of human frailties. Several of his ideas sharpen what you learned from Norman:
Locus of attention
People have only one locus of attention at a time. Anything outside it (a status bar message, a corner badge) may as well not exist. Put feedback where attention is.
Habituation
Any often-repeated action becomes automatic. People will habituate to pressing "OK" on a confirmation dialog, which is why confirmations fail. Design so habits are safe.
Modes
A mode is when the same action produces different results depending on a state that is not your locus of attention. Raskin considered modes a major source of errors. His alternative: quasimodes, states held only while you physically hold them (like holding Shift), which cannot be forgotten.
Monotony
Raskin used "monotony" for interfaces that offer one obvious way to do each thing, so habits form fast and reliably. Many redundant ways to do the same thing slow habit formation.
Protect the user's work
He framed this as a parody of Asimov's laws of robotics: a computer should never harm your work, or through inaction allow it to come to harm; and it should never waste your time or make you do more work than necessary.
Don't: a hidden mode
Why it fails. The state that changes what typing does is shown where nobody looks. Classic mode error.
Do: a quasimode
Why it works. You cannot forget you are in a state your finger is holding. Some apps show their shortcut cheat sheet only while a key is held, for this reason.
Bret Victor: information software
In his 2006 essay Magic Ink: Information Software and the Graphical Interface, Bret Victor divided software into three kinds: information software (helping you learn something: what's on my calendar, when is the next train), manipulation software (helping you create: an editor, a design tool) and communication software. His claim was that most software people use is information software, yet it is designed like manipulation software, full of controls, forms and navigation.
Information software, he argued, is closer to graphic design than to machine design. Its job is to show the right data, arranged to answer the user's questions, using context (time, location, history) to infer what they want. Interaction is a cost the user pays when the software failed to infer; he titled one section "Interaction considered harmful". Victor illustrated this with a redesign of a San Francisco BART train-schedule widget that showed upcoming trains at a glance instead of asking for a query.
Raskin's "don't waste the user's time" and Victor's "interaction is a last resort" meet in the same place: every tap, field and menu must earn its existence. Try the difference below.
Without: five interactions before any information. The software makes you describe what it could have guessed: where you usually go, at this time of day, today.
With: the answer is on screen at once, inferred from time and history. Interaction is still available (change route) but only as the exception. An illustrative example inspired by Victor's argument, not a real app.
Key idea
Design for the goal, protect the attention, and show the answer. Every interaction you remove is a gift.
For the solo creator
Victor's argument is an argument for less code. A screen that shows the right thing needs no form, no validation, no results page and no empty state for "no search yet". Before building a form, ask: what could I infer from time, location, the last thing they did, or their data? You may delete a whole screen.
Do
Write the user's goal above every screen design.
Base any persona on a real person you have spoken to.
Design the main path for perpetual intermediates.
Use context and history to show answers before asking questions.
Replace persistent modes with quasimodes or visible state.
Don't
Invent personas full of demographics that change no decision.
Design around the experts who email you most.
Ask for information you already have or could infer.
Offer five ways to do the same thing "for flexibility".
In the wild
Weather appsApple Weather, Dark Sky (2012, acquired by Apple 2020)
Open the app and your local forecast is already there; Dark Sky became known for hyperlocal "rain starting in 12 minutes" notices. Information software at its best: no query needed.
Google Maps commute cardsGoogle
Maps can learn your home and work and show travel time to the likely destination before you search. Context replaces a form.
VimBram Moolenaar, 1991
Built around modes (normal, insert, visual). Loved by experts who habituate to it, notoriously hard for newcomers. Modes trade learnability for power. Raskin's warning in action.
Things 3 "Today"Cultured Code, 2017
Opens to what is due today, including calendar events, rather than to an empty list of projects. Show the answer to "what now?" by default.
Common mistakes
Persona theatre
Personas look like research and are fun to write.
Only keep attributes that change a design decision. If "age 34, loves yoga" changes nothing, delete it.
Forms by default
Developers think in inputs and outputs, so "ask, then answer" feels natural.
For each form field, ask whether you could infer it, default it, or remember it from last time.
Designing for your power-user self
You use your own product more than anyone, so you are an extreme expert.
Watch a perpetual intermediate use it, or use it yourself after a two-week break, and note what you had forgotten.
Check yourself
Your habit app opens to a "Log habit" form where people pick a habit from a dropdown, pick today's date, and press Save. What would Cooper and Victor most likely suggest?
The goal is "keep my habits", and the information people need is "what's left today?". Showing today's list and inferring the date removes two interactions per log. Shortcuts and search make a needless form slightly faster.
Connect the ideas · Part three recap
Which pairing of ideas is most closely related?
Both say that information outside where someone is looking effectively does not exist, so status and feedback must appear at the point of attention. Linking ideas across thinkers like this is how a vocabulary turns into judgment.
Exercise 11.1 45 minutes · on your own product
Count and cut the interactions
Write the top goal of your product's most common visit in one sentence.
Count every interaction (tap, keystroke group, choice) between opening the app and reaching that goal.
For each interaction, write whether it could be inferred, defaulted, remembered or removed.
Redesign the path. Count again.
Find one mode in your product. Can it become a quasimode or visible state?
You're done when: you have a before/after interaction count for the main visit and one mode redesigned.
Beginner
Competent
Strong
Counts the interactions accurately.
Removes at least a third of them on paper.
Ships the shorter path and checks it with a real user who is not you.
Part four
A process for one person
Big-company design processes assume researchers, workshops, reviews and hand-offs. You have none of those, and you do not need them. You need a small loop you can run every week: understand, decide, make it real at the right fidelity, check, ship. These three chapters give you that loop, a ladder of fidelities to choose from, and the thinking habits that keep a one-person studio honest.
12
The double diamond, for one
Taught by the UK Design Council, with Bill Buxton and Ryan Singer
Good design alternates between opening up (exploring many possibilities) and narrowing down (choosing one), twice: first to find the right problem, then to find the right solution. A solo creator can run both diamonds in a week.
The UK Design Council published the Double Diamond in 2005 after studying how design teams at large companies actually worked. It has four phases: Discover (explore the problem widely), Define (narrow to a clear problem statement), Develop (explore many solutions) and Deliver (narrow to one, test, ship). The shape matters more than the labels. It says that you should diverge before you converge, and that you should do it for the problem before you do it for the solution.
Two diamonds, one hinge. The problem statement in the middle is the most important artifact in the process. If you skip the first diamond, you are polishing a solution to a problem you guessed.
Divergence and convergence
The two motions need different mindsets, and mixing them is the most common way to stall. When you diverge, you defer judgment: quantity, variety, wild options, no "but that won't work". When you converge, you judge hard: criteria, constraints, kill your darlings. Trying to do both at once produces one cautious idea, judged before it was ever fully imagined.
Separate them in time. Spend fifteen minutes only generating. Take a break. Then spend fifteen minutes only judging.
A one-person week
Here is the double diamond scaled to a solo creator with a product already in use. It assumes about one focused design hour a day alongside building; adjust to your rhythm.
Monday, discover (60 min). Read the last week's support emails, reviews and analytics. Talk to or message one user. Use your own product for a real task. Write every observation as a fact, not a solution.
Tuesday, define (45 min). Cluster the observations. Pick one problem. Write a problem statement: "[Person] trying to [goal] struggles with [obstacle], which causes [consequence]."
Wednesday, develop (60 min). Sketch at least five solutions on paper, of different kinds (chapter 3). Pick two. Make each just real enough to judge (chapter 13).
Thursday, deliver (build time). Build the stronger one, in code, at the lowest fidelity that can ship.
Friday, check and ship (45 min). Use it yourself on a real task. If possible, watch one person use it. Ship it, note it in your changelog, and write what you will look for next week.
Don't: the straight line
Why it fails. The request was a solution. Building it without diverging skips the question of what problem it solves.
Do: two small diamonds
Why it works. Asking "why" turned a feature request into a problem, and the problem had a cheaper, better answer.
Fixed time, variable scope
Ryan Singer's Shape Up (Basecamp, 2019) adds a useful twist for small teams: decide the appetite first (how much time is this problem worth: two days? two weeks?) and then shape a solution that fits it, instead of estimating how long a fixed solution will take. For a solo creator this is a lifesaver. It turns "how long will this take?" (unknowable) into "what is the best solution I can build in three days?" (a design question).
Key idea
Diverge, then converge, on the problem first and the solution second. Fix the time, flex the scope.
For the solo creator
Your discover phase does not need a research budget. It needs a habit: a folder or note where every user message, review and observation lands, and a weekly hour to read it. Ten real messages a week will teach you more than any persona workshop. Guide 15 covers testing alone in detail.
Do
Write a problem statement before sketching solutions.
Treat feature requests as clues to a problem, not as specifications.
Separate generating time from judging time.
Set an appetite before shaping a solution.
Don't
Treat the double diamond as a months-long project plan.
Skip the first diamond because "I already know the problem".
Judge ideas while you are still generating them.
Estimate a fixed scope and then let it grow.
In the wild
Basecamp's Shape UpRyan Singer, 2019
Six-week cycles, work shaped at the right level of abstraction (rough but solved), and a cool-down between cycles. Published free online. Process designed for small teams that build what they design.
Superhuman onboardingSuperhuman, late 2010s
The email app became known for one-on-one onboarding calls with new users in its early years. Each call doubled as discovery research. Discovery can be built into the way you serve customers.
Indie Mac and iOS appsmany
Solo developers often run public changelogs and feedback boards, and some develop in public on social media, collecting reactions to rough ideas before building them. Cheap, continuous divergence with real people.
Common mistakes
Endless discovery
Research feels safe; deciding feels risky.
Time-box discovery. One hour, then you must write a problem statement, even an imperfect one.
The solution in disguise
Problem statements often sneak a solution in ("users need folders").
If the statement names a feature, rewrite it as an obstacle ("users can't find notes older than a month").
Converging too early
The first idea that seems workable ends the exploration.
Set a minimum: five sketches before you are allowed to pick.
Check yourself
Five users ask for a dark mode in your reading app. Using the double diamond, what should you do first?
Requests are clues. "Reading in bed at night" might best be solved by an automatic night theme with warm tones and lower brightness, not only a dark toggle. A short discovery step makes the solution better and sometimes cheaper.
Exercise 12.1 one week, about 5 hours · on your own product
Run one solo week
Follow the Monday to Friday plan above for one real problem in your product.
Keep all artifacts: observations, problem statement, five sketches, the chosen design, notes from Friday's check.
On Friday, write three lines: what you learned about the problem, about the solution, and about your process.
You're done when: one change has shipped with a written problem statement, five sketches and a short retrospective behind it.
Beginner
Competent
Strong
Follows the steps; the problem statement names a solution.
Clean problem statement; five genuinely different sketches.
Friday's check changes the design or the next week's plan in a specific, recorded way.
13
The fidelity ladder
Taught by Bill Buxton, with Bret Victor
Every representation of a design (sketch, wireframe, mockup, prototype, code) answers different questions at a different cost. Choose the lowest fidelity that can answer the question you have right now, and climb only when you need to.
Bill Buxton's Sketching User Experiences (2007) makes a distinction every designer should carry: a sketch and a prototype are not just rough and polished versions of the same thing. A sketch is for exploring: it is quick, cheap, disposable, plentiful and deliberately ambiguous, and it invites questions. A prototype is for testing: it is more refined, more expensive, more specific, and it seeks answers. You make many sketches to find a direction, and a few prototypes to check it.
Fidelity has costs in both directions. Too low, and you cannot judge what matters (a paper sketch cannot tell you whether an animation feels fast). Too high, and you have spent time on details that will be thrown away, and you become attached to them. Worse, high fidelity invites the wrong feedback: show someone a polished mockup and they will comment on colors, not on whether the flow makes sense.
Lab: one screen, five fidelities
Reading12 saved
Prototype: the tap works and the transition exists, but this text is placeholder. Good enough to test "can people find and open an article?"
Reading3 saved
No saved articles match "". Try a shorter word, or search the web for it.
Sketch minutes
Wireframe ~1 hour
Mockup hours
Prototype hours–day
Code days
Sketch. Answers: what goes on this screen, roughly where? Is this even the right screen? Cheap enough to make ten. The wobbly lines are a feature: they say "not decided", which invites ideas rather than nitpicks.
What each rung is for
Fidelity
Answers
Can't answer
Typical cost
Sketch (paper, whiteboard)
Which screens? What's on them? Which of ten directions?
Does it feel right? Will it fit?
Minutes each
Wireframe (grayscale boxes)
Layout, hierarchy, flow between screens
Visual tone, real content length, timing
Under an hour per screen
Mockup (static, polished)
Look, type, color, real content fit
How it behaves, how it feels in motion
Hours
Prototype (clickable or animated)
Can people find their way? Does the transition make sense?
Real data, performance, edge cases
Hours to a day
Code (real app, real data)
Everything, including speed, real content and edge cases
Nothing, but it is the most expensive to change
Days
Explore low, confirm high. Most of your divergent thinking belongs at the left of this chart. By the time you write code, you should be confirming, not exploring.
When to skip rungs, and designing in code
The ladder is not a staircase you must climb step by step. Skip rungs when the question you have can only be answered higher up, or when a higher rung is cheap for you. Three common cases:
Skip to code for feel. Scrolling, gestures, animation timing and performance cannot be judged in static images. If the core question is "does it feel fast?", build a thin slice in code.
Skip mockups when you have a system. Once you have type, color and spacing tokens and a set of components, a wireframe plus your system is effectively a mockup. Many solo creators go sketch → code.
Never skip the sketch. It costs minutes and it is the only rung where you can afford ten directions. Skipping it means your first idea becomes your only idea.
Designing in code is a real advantage for a developer-designer: real data, real content lengths, real speed, and no translation step. The risk is that code makes changes feel expensive, so you stop exploring, and that you design what is easy to build instead of what is right. The fix is discipline: sketch at least three options on paper first, then build the one you choose, and use throwaway branches for experiments so nothing feels precious.
Don't
Why it fails. High polish pulls feedback to the surface plane, while the open question was about structure.
Do
Why it works. Unfinished-looking work signals that big changes are still welcome, so feedback lands where it is useful.
Key idea
Match fidelity to the question. Sketch to explore, prototype to test, code to confirm and ship.
For the solo creator
Keep a paper notebook (or a cheap tablet with a pen) next to your keyboard. When you catch yourself opening the editor to "try an idea", stop and sketch three versions first. It takes five minutes and it is the single habit most likely to improve your designs. Bret Victor's later talks argue that creators need an immediate connection to what they make; for layout and flow questions, a pen gives you exactly that.
Do
Write the question before choosing the fidelity.
Sketch at least three options before any digital work.
Go straight to code for questions of feel, speed and real data.
Use throwaway branches for exploration in code.
Don't
Polish a mockup to answer a flow question.
Ask for feedback on structure with a pixel-perfect screen.
Treat each rung as mandatory.
Let "it's already built" decide what is right.
In the wild
Paper prototypinglong-standing practice; see Carolyn Snyder, 2003
Teams test whole flows with paper screens a person "operates" by swapping sheets. Snyder's book Paper Prototyping documented the method. You can test navigation before writing any code.
Figma prototypesFigma
Linking frames with transitions turns static mockups into clickable prototypes in minutes, good for testing navigation and order. The prototype rung has become cheap; use it for flow questions.
SwiftUI previews and hot reloadApple, 2019; Flutter, React tooling
Live previews make code feel closer to a sketching medium for many developers. Fast feedback tools move code down the cost curve, which makes designing in code more viable.
Common mistakes
Pixel-perfect too early
Polish feels like progress and looks good in a portfolio.
Ban color and real fonts until the flow is settled. Use gray boxes and one weight.
Never leaving paper
Some questions (speed, feel, real content) cannot be answered on paper, but staying there feels safe.
As soon as your question is about feel or real data, build a thin slice in code.
Lorem ipsum
Placeholder text is easy.
Use real or realistic content as early as the wireframe, including the longest title and the empty list.
Check yourself
You want to know whether a swipe-to-archive gesture feels satisfying and is discoverable on your list screen. Which fidelity is the best fit?
"Feels satisfying" is about motion, timing and touch, which only exist on a real device in an interactive build. Paper and static mockups can answer whether the action should exist, but not how it feels.
Exercise 13.1 60 minutes · on your own product
Climb the ladder on purpose
Pick one screen you want to improve. Write the question you most need answered.
Sketch ten thumbnails in 15 minutes (no erasing).
Pick three. Turn them into grayscale wireframes with real content.
Pick one. Decide which rung answers your question (mockup, prototype or code) and build it there.
Write what each rung taught you that the previous one could not.
You're done when: you have ten thumbnails, three wireframes, one higher-fidelity artifact, and a short note on what each rung revealed.
Beginner
Competent
Strong
Ten thumbnails, but variations of one layout.
Genuinely different directions; fidelity chosen to fit the question.
The higher rung revealed something that changed the design, and you can say why the lower rung missed it.
14
Thinking like a designer, alone
Taught by Don Norman, Larry Tesler and Ryan Singer, with Taiichi Ohno's five whys
Design thinking for a soloist comes down to four habits: frame the problem before solving it, use constraints as tools, make trade-offs explicitly, and spend craft where it compounds. Every decision has a cost that keeps growing after you make it.
Framing: the problem behind the request
Norman argues that designers should never start by solving the problem they were given, because the stated problem is usually a symptom. A simple tool for getting underneath it is the "five whys" associated with Taiichi Ohno and the Toyota Production System: ask why a problem happens, then why that happens, a few times over, until you reach a cause you can design for. Five is a rule of thumb; stop when the answer becomes something you can act on.
Each "why" widens the solution space. CSV export solves the surface request. An invoice with a project breakdown attached solves the real job, and might make the export unnecessary.
Another framing tool is the "How might we…" question, popularized by design consultancies such as IDEO. "How might we help freelancers get invoices approved faster?" is open enough to allow many answers and narrow enough to act on. Compare it with "How might we add export?" (too narrow, a solution in disguise) and "How might we help freelancers?" (too broad to start).
Constraints as tools
Chapter 3 treated constraints as facts you must accept. You can also choose them on purpose, as creative tools. A self-imposed constraint shrinks the search space and forces originality. Some that work well for software:
One screen. What if the whole product had to fit on one screen? You will discover what is essential.
No settings. Every setting you want to add must become a good default instead.
One typeface, two sizes, one accent. Hierarchy must come from position, weight and space.
Works offline first. Forces a clear data model and honest sync states.
Three-day appetite. The best version you can build in three days, not the ideal version.
Trade-offs: every design is a compromise
No design maximizes everything. Simplicity trades against power. Speed of building trades against polish. Flexibility trades against learnability. The designer's job is not to avoid trade-offs but to make them on purpose and say which way they went.
A map, not a scorecard. Each point is a legitimate product. Trouble starts when you claim to be at all three corners, or drift without deciding.
Larry Tesler, the computer scientist known for cut, copy and paste and for his work at Xerox PARC and Apple, gave this a sharper form, often called Tesler's law or the law of conservation of complexity: every application has an inherent amount of complexity that cannot be removed, only moved. The question is whether the user deals with it or the system (and its designer) does. A timezone-aware calendar is complex; you can either make each user think about timezones, or absorb that complexity in the code so they never have to.
Good enough versus craft
You cannot polish everything. A solo creator who tries will never ship. But a product with no polish anywhere feels careless. The answer is to concentrate craft where it compounds: on the hot path, the few screens and actions people use every single session. A rough edge in the export dialog, seen twice a year, costs little. A rough edge in the main list, seen fifty times a day, costs a lot.
Don't: even polish
Why it fails. The About screen got as much care as the list people see fifty times a day.
Do: craft on the hot path
Why it works. Craft follows usage. The rest are "good enough": correct, clear, consistent, not lavished.
"Good enough" still has a floor. Every screen must be correct, clear and consistent with your system. It is the extra layer (custom motion, perfect empty-state illustrations, bespoke micro-interactions) that you ration.
The cost of a decision over time
An old observation in software engineering, associated with Barry Boehm's work in the 1970s and 1980s, is that the later a problem is found, the more it costs to fix. Design decisions follow the same curve. Changing your mind on a sketch costs seconds. Changing it after launch costs code, migration, documentation, user re-learning, and sometimes trust. And every feature carries an ongoing cost after it ships: maintenance, support, testing, and the attention it takes from everything else on screen.
Decide early, cheaply, and on paper. The curve is why the first diamond and the sketch rung matter so much: they move decisions to the flat part of the curve.
Key idea
Complexity is conserved, polish is rationed, and decisions get more expensive every day. Frame first, choose the trade-off, then spend your craft where people live.
For the solo creator
Keep a "carrying cost" column in your feature list: for each feature, how many support emails, bugs and minutes of maintenance it costs per month. Features with high carrying cost and low use are candidates for removal. Removing a feature is a design decision too, and often the best one available to a person with limited hours.
Do
Ask "why?" until you reach a problem you can design for.
Pick one or two self-imposed constraints per project.
Write down which way each trade-off went.
Absorb complexity in the system when it would otherwise land on every user.
Concentrate craft on the hot path.
Don't
Solve the request as stated without understanding it.
Promise simple, powerful and quick to build all at once.
Push complexity onto users through settings to avoid deciding.
Polish rarely-seen screens while the main list has rough edges.
In the wild
Apple Photos "Memories"Apple, 2016
Grouping photos into events and stories is complex (faces, places, dates), but the app absorbs it so the user just scrolls. Tesler's law: complexity moved from user to system.
Notion2016 onward
Chose power and flexibility (blocks, databases, relations), accepting a steeper learning curve and offering templates to soften it. A deliberate point on the triangle, with compensation for what it gave up.
Craigslist1995 onward
Very little visual craft, but fast, predictable and focused on its core path for decades. "Good enough" surface on a firm, useful core can last a very long time.
Common mistakes
Settings as indecision
Adding a toggle lets you avoid choosing between two good options.
Choose a default. Add a setting only if real users with real needs require both, and even then, consider whether it belongs in the product at all.
Uniform polish
Perfectionism is not selective.
List screens by frequency of use. Assign a craft budget per screen, top-heavy.
Forgetting carrying costs
Features are celebrated when shipped, never when maintained.
Review your feature list every quarter with a "keep, improve, remove" verdict for each.
Check yourself
Your meeting scheduler asks every user to set their timezone, and then asks invitees to convert times themselves. Users complain. What does Tesler's law suggest?
Timezones are inherent complexity. The choice is who handles it. Detecting and converting in the system moves it from every user to one implementation, which is exactly the trade Tesler recommends.
Connect the ideas · Part four recap
You have three days. A user asks for "tags" in your notes app. Which plan uses Part four best?
This uses the double diamond (chapter 12), the fidelity ladder (13), appetite and framing (12, 14), and craft on the hot path (14). It also echoes chapter 3: several options, then a choice against criteria.
Exercise 14.1 45 minutes · on your own product
Trade-off and craft map
Place your product on the trade-off triangle. Write one sentence explaining the position.
List your screens by how often people see them. Mark the top three as your hot path.
For each hot-path screen, list three rough edges. Fix the worst one this week.
Find one place where complexity lands on the user (a setting, a manual step). Write how the system could absorb it.
Take one open feature request and run five whys on it.
You're done when: you have a triangle position with rationale, a ranked screen list with hot path marked, one fix shipped, and one reframed request.
Beginner
Competent
Strong
Triangle position stated without evidence.
Hot path backed by usage data or a reasoned estimate; reframed request reveals a different problem.
Also removes or merges one low-use, high-cost feature, and records the decision.
Part five
Seeing like a designer
Designers see more because they have words for more. This last part gives you the vocabulary, a repeatable way of looking at any screen, the language of useful critique, and a plan for training your taste. These are the skills that keep improving long after you finish the course.
15
The designer's vocabulary
A working glossary, drawn from the whole canon
Precise words let you see precise problems. "It feels off" cannot be fixed; "the primary action has weaker contrast than the secondary one" can. Learn these terms and use them in your notes, your critiques and your decisions file.
The glossary below has about fifty terms, grouped so that related ideas sit together. Each links to the guide where it is taught in depth. You do not need to memorize it in one sitting. Read it once now, then use the flashcard exercise at the end of the chapter to make it stick. The full course glossary lives in the Reference Library.
Group words to remember them. When you critique a screen, walk through the families in order: mind, interaction, structure, visual, then process and quality.
Mind and perception
Mental model
A person's internal explanation of how something works. Formed from experience and the system image (chapter 6).
Conceptual model
The simplified explanation the designer intends people to form; ideally the mental model matches it.
Cognitive load
The mental effort a task demands. Extraneous load (caused by poor design) is the kind you can remove. See The Human Mind.
Recognition versus recall
Recognizing an option you can see is far easier than recalling it from memory (chapter 8).
Locus of attention
Raskin's term for the single thing a person is attending to right now (chapter 11).
Habituation
Repeated actions become automatic, including dismissing warnings.
Preattentive attributes
Visual properties (color, size, orientation, motion) noticed in a fraction of a second, before focused attention.
Gestalt principles
Perceptual grouping rules (proximity, similarity, closure, continuity, common region) that explain why some layouts read as groups. See Visual Design.
Fitts's law
Time to hit a target grows with distance and shrinks with size (chapter 10).
Hick's law
Decision time grows with the number and complexity of choices (roughly logarithmically for equally likely choices).
Jakob's law
Nielsen's observation that users spend most of their time on other products, so they expect yours to work the same way.
Interaction
Affordance
The relationship between an object and a person that makes an action possible (chapter 4).
Signifier
A perceivable cue that tells people what action is possible and where.
Mapping
The relationship between controls and their effects; natural when the layout matches (chapter 5).
Constraint
A limit that guides people toward correct actions: physical, cultural, semantic or logical.
Feedback
Communication of the result of an action, ideally within 0.1 s.
Feedforward
Information before an action about what will happen if you take it (a button label that says "Delete 3 files", a preview while dragging).
State
The condition of an element or the system at a moment: default, hover, focus, pressed, disabled, loading, error, empty, success.
Mode / quasimode
A mode changes how the same input is interpreted; a quasimode does so only while held (chapter 11).
Direct manipulation
Acting on visible objects with immediate, reversible results (dragging a file, resizing a window), described by Shneiderman in the early 1980s.
Microinteraction
A small, contained moment built around a single task (a toggle, a like, a pull-to-refresh). Named and described by Dan Saffer in his 2013 book.
Progressive disclosure
Showing only what is needed now and revealing advanced options on request.
Hit target
The area that responds to a tap or click, which can be larger than the visible element.
Structure
Information architecture (IA)
How content and functions are organized, labelled and connected so people can find them. See Structure & Interaction.
Navigation
The means of moving between places: tabs, sidebars, stacks, search, links.
Flow
A sequence of screens and actions that completes a task (also, separately, Csikszentmihalyi's state of absorbed focus).
Happy path
The flow when everything goes right. Designing only this is a classic mistake.
Edge case
An unusual but possible situation: empty data, huge data, very long text, no network.
Empty state
What a screen shows when there is nothing to show yet. Prime space for signifiers and teaching.
Primary action
The one most important action on a screen, given the strongest visual weight.
Object model
The nouns of your product and their relationships (a project contains tasks), on Garrett's structure plane.
Visual
Visual hierarchy
The order in which the eye perceives elements, set by size, weight, contrast, color and position.
Grid
An underlying structure of columns and rows that aligns elements.
Whitespace (negative space)
Empty space that separates, groups and gives rest. It is a material, not leftover.
Alignment
Placing elements along shared edges or axes; the cheapest way to look ordered.
Contrast
Difference between elements (in size, weight, color, luminance) that creates emphasis. Also, specifically, the luminance contrast ratio used for legibility (WCAG). See Accessible & Inclusive.
Rhythm
Repetition of spacing and sizes that makes a layout feel coherent.
Density
How much information fits in a given space; a deliberate choice, not a fixed virtue.
Type scale
A set of related font sizes used consistently. See Typography.
Measure
Line length in characters; comfortable body text is often cited around 45 to 75 characters.
Leading (line height)
Vertical distance between lines of text.
Skeuomorphism
Imitating physical materials and objects in UI (stitched leather, paper textures), dominant in early iOS until 2013.
Flat design
A style that removes simulated depth and texture; risks losing signifiers if taken too far.
Process and system
Fidelity
How closely a representation resembles the final product (chapter 13).
A sentence naming who, which goal, which obstacle and what consequence, with no solution inside.
Jobs to be done (JTBD)
A framing in which people "hire" a product to make progress in a situation. See Problems Worth Solving.
Persona
A research-based archetype of a user, with goals (chapter 11).
Appetite
The amount of time a problem is worth, set before shaping a solution (Shape Up).
Design system
A set of reusable decisions (tokens, components, patterns, guidelines). See Systems & Platforms.
Design token
A named design value (color, spacing, radius) stored as data so it can be used consistently in code.
Component
A reusable interface building block with defined states and variants.
Quality and ethics
Heuristic evaluation
Reviewing an interface against a set of rules of thumb, such as Nielsen's ten (chapter 10).
Usability
How effectively, efficiently and satisfyingly people can use something to reach a goal (the ISO 9241-11 definition).
Perceived performance
How fast something feels, which can differ from how fast it is. See Motion & Feel.
Dark pattern (deceptive pattern)
A design that tricks people into actions against their interests; term coined by Harry Brignull in 2010. See Honest & Calm.
Accessibility
Designing so people with disabilities can perceive, operate and understand the product; guided by WCAG.
Calm technology
Technology that informs without demanding attention, from Mark Weiser and John Seely Brown's work at Xerox PARC in the 1990s.
Don't: vague notes
"The settings page feels cluttered." "Something about the button is off." "Onboarding is confusing."
Why it fails. True, perhaps, but there is nothing to act on. You will redesign at random.
Do: precise notes
"Settings: 14 toggles, no grouping by object; proximity is uniform so nothing reads as a group." "Save has lower contrast than Cancel; hierarchy is inverted." "Step 2 asks for recall of a code shown in step 1."
Why it works. Each note names the mechanism (grouping, hierarchy, recall), which points straight to a fix.
Key idea
A problem you can name is a problem you can fix. Vocabulary is a seeing tool, not jargon.
For the solo creator
Use these words in commit messages and your decisions file ("Increase hit target of row actions to 44 pt; fixes slips on mobile"). Over months, your history becomes a searchable record of design reasoning, and the vocabulary becomes second nature.
Do
Name the mechanism, not just the feeling.
Use the same term for the same concept every time.
Learn ten terms a week with active recall.
Don't
Use jargon in your product's UI; this vocabulary is for thinking, not for users.
Use "intuitive" as an explanation. Say what makes it learnable (signifiers, convention, mapping).
Treat "clean" as a design quality; say what is aligned, grouped or removed.
In the wild
Apple Human Interface GuidelinesApple, since the 1980s
A long-running public vocabulary for platform behavior (sheets, popovers, modality, hierarchy). Platform guidelines are a free, shared vocabulary; read them.
Material DesignGoogle, 2014
Introduced a named, documented system of components, elevation and motion that many teams adopted as shared language. Named components make design discussable.
Laws of UXJon Yablonski, website and later a book
Collects psychology principles (Fitts, Hick, Jakob, Miller and more) with short explanations. A handy reference for the "mind" family of terms.
Common mistakes
"Intuitive" as a goal
It sounds right and means nothing specific.
Replace it with testable properties: "a new user completes X without help in under a minute".
Learning words without applying them
Reading a glossary feels productive.
Use each new term in a real note about a real screen within 24 hours.
Check yourself
On your pricing page, people often click "Compare plans" when they meant to click "Start free trial", because both look identical and sit side by side. Which description is the most precise?
Naming the mechanism (equal visual hierarchy, description-similarity slip) points to the fix: make the trial the primary action and the comparison secondary (a text link or outlined button).
Exercise 15.1 20 minutes a day for a week
Vocabulary flashcards, on real screens
Make a flashcard for each term (term on one side, your own definition and an example from your product on the other).
Each day, test yourself on ten cards before looking. Put missed cards back in the pile.
Each day, write three critique notes about any app you used, each using at least one term precisely.
You're done when: you can define 40 terms from memory with an example each, and you have 21 critique notes.
Beginner
Competent
Strong
Definitions copied from this page.
Definitions in your own words with your own examples.
Critique notes name the mechanism and a specific fix every time.
16
How to look at software
Taught by Adam Connor and Aaron Irizarry on critique, with painters' studio habits
Designers see more than other people because they look in a fixed order, with named questions, and write down what they see. Use a ten-point observation sequence on any screen, keep a swipe file of what works, and critique against objectives rather than taste.
Most people look at an app the way they look at a face: all at once, with an overall impression ("nice", "messy"). That impression is real data, but it is not usable. A designer slows the looking down into separate passes, each asking one question. After a few weeks of practice, the passes run in parallel in a few seconds, and you start noticing things you have walked past for years.
The ten-point observation sequence
A schematic, illustrative reading app. The numbers mark where each question is answered. Run the same ten questions, in order, on any screen you study.
Purpose. What is this screen for, in one sentence? Whose goal? If you cannot tell, that is the first finding.
First glance. Look for two seconds, look away. What did you see first, second, third? Is that the order the purpose needs?
Hierarchy. How many levels of importance are there? How is each level marked (size, weight, color, position)?
Grid and alignment. Trace the shared edges. Count how many different left edges there are. Fewer is calmer.
Spacing and grouping. Which things look related? Is it because they are near each other, or boxed together, or similar? Are spacing values repeated?
Type. How many families, sizes and weights? What does each one mean?
Color and contrast. What does each color mean? Is the accent reserved for one meaning? Is text contrast sufficient?
Actions and signifiers. What can you do here? What is the primary action? Can you tell what is clickable without hovering?
Words. Read every label. Are they verbs for actions, nouns for things? Do they use the user's language?
States and edges. Imagine it empty, loading, offline, with 10,000 items, with a 120-character title. Which states have been designed?
For the solo creator
Do one ten-point pass a day on an app you use, written in a small notebook or a text file. It takes ten minutes. After a month you will have thirty analyses and, more importantly, the sequence will be automatic. Then run it on your own product once a week. You will see your own screens as a stranger would.
Self-critique tricks that create distance
You cannot see your own work fresh, because you know what it is supposed to be. Painters have long used tricks to break that familiarity, such as looking at a canvas in a mirror. Screen equivalents:
Trick
How
What it reveals
Squint or blur
Blur a screenshot until text is unreadable
Hierarchy and grouping, without the distraction of content
Grayscale
Remove color from a screenshot
Whether hierarchy depends on color alone
Mirror
Flip the screenshot horizontally
Balance and alignment problems your eye had normalized
Tiny
View at 25% size, or across the room
Whether the primary action and focal point still stand out
Overnight
Wait 24 hours before judging
Fresh eyes; the "obvious" things that are not
Side by side
Place your screen next to one you admire
Spacing, type and density gaps, honestly
Keeping a swipe file
A swipe file is a collection of examples you have found good (or instructively bad), with notes on why. Copywriters have kept them for a century; designers keep them as screenshots. The collection is not the point; the notes are. A screenshot without a note is a souvenir. A screenshot with "empty state teaches the main gesture in one line, uses the same illustration style as onboarding" is a lesson.
Don't: a pile
Why it fails. In three months you will not remember why you saved any of them, or find the one you need.
Do: a library
Why it works. Named by pattern and product, with a note on the mechanism. Searchable and reusable when you face the same problem.
A simple system: one folder (or a tool such as Eagle, Are.na or a notes app), file names in the form pattern--product--detail, and a one-sentence note per item naming the mechanism. Patterns to collect first: empty states, onboarding, settings, errors, confirmations and undo, search, lists, paywalls, and any screen that made you feel calm. Reference libraries of app screens, such as Mobbin, are useful for breadth, but your own annotated file is what trains your eye.
The language of critique
Critique is analysis against objectives. In Discussing Design (2015), Adam Connor and Aaron Irizarry distinguish critique from both praise and judgment, and propose a simple structure of questions:
What is the objective of this design (for this screen, for this user, right now)?
Which elements of the design relate to that objective?
Are those elements effective at achieving it?
Why, or why not?
This structure works for self-critique too, and it changes the tone of the conversation you have with yourself. "This is ugly" becomes "The objective is to start reading quickly; the large header pushes the first article below the fold; that delays the main job". The second version contains its own fix.
Don't: reaction
"I don't like the onboarding. Too long. Make it more modern."
Why it fails. A preference, not an analysis. No objective, no element, no reason.
Do: critique
"Objective: get a first article saved. Elements: four intro slides, then sign-up. Effective? No: nothing is saved until step 6. Why: the value comes after the cost. Try: let them save first, sign up later."
Why it works. Objective, elements, effectiveness, reason, and a direction to try.
Key idea
Look in passes, write it down, and judge against the objective. Taste grows from structured looking, not from staring.
Do
Use the same ten-point sequence every time until it is automatic.
Write a one-line "why it works" note for every swipe-file item.
Critique against an objective, in the order objective, elements, effective, why.
Use distance tricks on your own screens.
Don't
Save screenshots without notes.
Judge your own work right after making it.
Confuse "I like it" with "it works".
Only collect beautiful screens; bad ones teach just as much.
In the wild
Mobbinscreen reference library
A large, searchable library of screenshots and flows from real apps, organized by pattern. Good for breadth when you face a pattern you have not designed before.
Pixar's Braintrustdescribed in Ed Catmull's Creativity, Inc., 2014
A group of experienced filmmakers who give candid notes on films in progress, with the director free to accept or reject them. Critique focused on the work's goals, not on the person, makes it better.
Design teardownsmany writers and newsletters
Long-form breakdowns of a single product's onboarding or pricing page. Guides 18 to 20 of this course are teardowns. Reading others' structured looking teaches you to do it.
Common mistakes
Collecting instead of studying
Saving screenshots feels like learning.
Limit yourself to three swipes a day, each with a note. Review the file weekly and copy one item into your product's context (as a sketch).
Only looking at surfaces
Visual polish is the first thing you see.
Force passes 1, 8, 9 and 10 (purpose, actions, words, states), which are invisible in a glance.
Harsh or vague self-critique
Solo work has no outside voice, so the inner one swings between "it's great" and "it's terrible".
Use the four-question structure. It replaces mood with analysis.
Check yourself
You run the blur test on your dashboard. With text unreadable, the three most prominent shapes are the logo, a decorative illustration and a "Help" button. The "New invoice" button is barely visible. Which pass of the sequence does this mainly inform, and what follows?
The blur test strips content and shows raw visual weight. If the most prominent shapes do not serve the purpose, hierarchy is inverted. Increase the weight of the primary action and reduce or remove decorative elements.
Exercise 16.1 30 minutes, then 10 minutes a day
Start your swipe file and your looking habit
Create a swipe-file folder with the naming scheme above.
Add five items today: two empty states, one error, one settings page, one screen that felt calm. Write the mechanism note for each.
Run the ten-point sequence on one of them in writing.
Every day for two weeks: one swipe with a note, one ten-point pass.
At the end, write a critique of your own main screen using objective, elements, effective, why.
You're done when: your swipe file has at least 19 annotated items, you have 14 ten-point passes, and a structured critique of your own main screen.
Beginner
Competent
Strong
Items collected with brief, generic notes.
Notes name mechanisms; passes cover all ten points.
The self-critique leads to a change you ship, and you can point to the swipe item that inspired it.
Checklist: the Foundations audit of your product
Purpose and planes
Norman
Rams and the canon
Practice
17
Taste, and how to train it
Taught by Ira Glass, Paul Graham and Benjamin Franklin, with every master you choose to study
Taste is trained judgment: the ability to tell whether a design fits its purpose, and why. It is built by looking closely at a lot of good work, making a lot of your own, and comparing the two honestly. For years your taste will run ahead of your skill. That gap is normal, and the only way through it is volume.
What taste is, and what it is not
Taste is often treated as a mysterious gift or as mere preference. It is neither. Paul Graham's essay "Taste for Makers" (2002) argues that there really is good and bad taste in making things, and lists qualities that good designs tend to share: they are simple, timeless, solve the right problem, look easy, and are often redesigns of something earlier. You can disagree with his list and still accept the main point: taste can be wrong, which means it can improve.
The practical distinction is between preference (what you like) and judgment (what works for this purpose and these people). Good designers hold both and know which they are using. You may personally love dense, dark, information-heavy interfaces, and still recognize that a meditation app should not look like that.
Sort your reactions. Judgment grows fastest in the top-left quadrant: designs that work although they are not to your liking. They show you what your preferences hide.
The gap
In a widely shared 2009 video interview about storytelling, the radio host Ira Glass described something every creative beginner meets. Paraphrased: people get into creative work because they have good taste. For the first few years, what they make is not as good as their taste tells them it should be, and they can see it. Many quit at this point. His advice was to do a large volume of work, on deadlines, because only volume closes the gap between your taste and your ability.
Disappointment with your own work is a good sign. It means your taste is ahead. The x-axis is finished pieces, not months: the gap closes with how much you make, not how long you wait.
Watch out
The gap can also run the other way. If you are never disappointed by your work, your taste may be behind your skill. The fix is the same as for the other gap, in reverse: study more great work, more closely, especially in the top-left quadrant.
Copying as learning
Copying is how most crafts have always been taught. Art students copy paintings in museums. Musicians transcribe solos. Benjamin Franklin, in his Autobiography, describes teaching himself to write by taking notes on essays from The Spectator, setting them aside for a few days, rewriting the essays from his notes, and then comparing his version with the original to find his faults. That is a precise method, and it transfers directly to interface design:
Choose a master screen. A screen from a product widely respected for craft, in a domain close to yours.
Study it with the ten-point sequence (chapter 16) and write notes on every decision you can see.
Wait a day, then rebuild it from your notes, in code or your design tool, without looking at the original.
Compare, side by side or overlaid. Every difference is a lesson: spacing you guessed wrong, a weight you missed, a state you did not notice.
Apply one lesson to your own product. Copy the reasoning, not the pixels.
This is a private exercise for learning, not a way to ship someone else's design. The point is to feel the decisions from the inside. Copy to learn; never ship a copy as your own work.
Don't: copy the surface
Why it fails. The style came from a product with a different purpose and audience. The reasoning did not travel with it.
Do: copy the reasoning
Studied: a keyboard-first issue tracker. Lesson: every action reachable from one palette; shortcuts shown inline. Applied to my reading app: a single "Go to…" palette for articles, tags and settings, in my own calm visual style.
Why it works. The idea (one palette for everything) transfers across products; the dark, dense look does not need to.
Studying masters
Choose a small "faculty" of masters and study them over months, not a huge list skimmed once. A balanced faculty for a calm, reader-first software creator might be: one industrial designer (Rams, Fukasawa), one typographer or graphic designer (Vignelli, or the designers behind a well-made typeface), two or three software products known for craft in your domain, and one writer on design (Norman, Victor). Guides 18, 19 and 20 are structured studies of exactly these.
For each master, ask the same three questions: What problem were they solving? What did they refuse to do? What would they remove from my product? The third question is the useful one.
Key idea
Taste is judgment you can train: look closely, make a lot, compare honestly, copy the reasoning, never the surface.
For the solo creator
Without colleagues, your taste is calibrated only by what you choose to look at. Curate it deliberately. Follow fewer, better sources. Use the products you admire for real tasks, not just screenshots. And ship: shipping is the only feedback loop that tests taste against real people. Guide 17, The Solo Practice, turns this into a six-month plan.
Do
Separate "I like it" from "it works" in every critique.
Rebuild a master screen from notes once a month.
Choose a small faculty of masters and study them deeply.
Finish and ship many small things; volume closes the gap.
Don't
Wait until your skill matches your taste before shipping.
Copy styles across products with different purposes.
Confuse following trends with having taste.
Ship a copy of someone else's design as yours.
In the wild
Daily UI challengesvarious, 2010s onward
Many designers built their early skill with daily design exercises (one screen a day for 100 days). Volume, on a deadline, as Glass recommends. Best when each piece gets a written self-critique.
Apple and Braun2000s onward
Jony Ive has spoken publicly of his admiration for Rams' work, and the influence is often discussed. Masters study masters. The lineage is the curriculum.
Your own product's historyyou, starting now
The weekly redesign folder from the warm-up becomes a record of your taste and skill converging. Seeing your own progress is the best antidote to the gap.
Common mistakes
Consuming instead of making
Browsing great work is pleasant and feels like learning.
Keep a ratio: for every hour of looking, two hours of making.
Quitting in the gap
Your work disappoints you, so you conclude you lack talent.
Read the disappointment as evidence your taste is working. Increase output; keep the before/after folder.
Taste as a single style
Admiring minimal products, you make everything minimal.
Ask what each product needs. A data-dense trading tool and a calm reader can both show excellent taste.
Check yourself
You admire a famously minimal note-taking app. You strip all labels and borders from your accounting app to match it, and support tickets go up. What went wrong?
Taste is fit to purpose. The reasoning behind the note app (very few actions, one main task) did not apply to an accounting app with many precise actions. Copy reasoning that transfers, not style.
Connect the ideas · Part five recap
Which daily routine best combines chapters 15 to 17?
Vocabulary (15) sharpens the notes, structured looking (16) gives the passes, and making plus honest critique (17) closes the gap. Reading helps, but making and structured looking build judgment fastest.
Exercise 17.1 2 to 3 hours · on a master screen
The Franklin method, for a screen
Pick one screen from a product you admire for craft.
Write detailed notes using the ten-point sequence (30 minutes).
Put the notes away for a day.
Rebuild the screen from your notes only (60 to 90 minutes), in code if you can.
Overlay or place it beside the original. List every difference and what it taught you.
Apply one lesson to your own product.
You're done when: you have your notes, your rebuild, a list of at least ten differences with lessons, and one change in your own product.
Beginner
Competent
Strong
Differences noticed are mostly color and size.
Notices spacing rhythm, alignment and state decisions.
Infers the reasoning behind at least three decisions and transfers one to a different context in your product.
Wrap-up
You now have the foundation: a definition of the job, a model of the layers, Norman's vocabulary for why people struggle, Rams' qualities to aim for, a shelf of frameworks, a process small enough for one person, and a way of seeing. The other twenty guides build on all of it.
Ten things to remember
Design is the set of decisions; screens are only their record. "Design is how it works."
Products are built in five planes, strategy to surface. Diagnose downward; finish in order.
No options, no design. Generate three, constrain, rank criteria, and slow down only for one-way doors.
People act on signifiers. If something needs a label to explain how to operate it, look for a better signifier.
Map controls to effects, and constrain inputs so errors are impossible rather than reported.
Every action needs immediate, located feedback; the system image is your only way to teach the model.
Diagnose by stage: execution problems need signifiers and mapping; evaluation problems need feedback and visible state.
Slips and mistakes need different fixes. Undo beats confirmation, almost always.
Rams' ten are about respect, not minimalism; Nielsen, Shneiderman and Tog are lenses for review; Cooper, Raskin and Victor push toward asking less of people.
Sketch to explore, prototype to test, code to confirm. Spend craft on the hot path. Train taste with structured looking and a large volume of finished work.
Self-assessment: I can…
Practice assignment for the next two weeks
About 30 to 60 minutes a day. Keep everything in one folder called foundations.
Days 1 to 2: Exercise 2.1 (your product on five planes) and start decisions.md.
Days 3 to 4: Exercises 4.1 and 5.1: hunt Norman doors, run a constraint pass. Ship two fixes.
Day 5: Exercise 6.1: four states for your key action, five-sentence model, word list.
Day 6: Exercise 8.1: error audit. Replace one confirmation with undo.
Day 7: Rest from making. Do the part recap quizzes again from memory and run the Foundations audit checklist (chapter 16).
Days 8 to 12: Exercise 12.1: one full solo week on one real problem, using the fidelity ladder (13.1) inside it.
Day 13: Exercise 9.1: the ten-principle audit, and Exercise 14.1: trade-off and craft map.
Day 14: Exercise 17.1 on one master screen. Then write a one-page reflection: what changed in your product, what changed in how you see, and the three habits you will keep.
Every day: one swipe-file item with a note and one ten-point pass (Exercise 16.1), and ten vocabulary flashcards (15.1).
Reading list
The Design of Everyday Things (revised and expanded edition)
Don Norman, 2013 · The source for Part two. Read the chapters on the psychology of everyday actions and on human error twice.
The Elements of User Experience (2nd edition)
Jesse James Garrett, 2010 · Short, and the clearest map of the five planes, with the full diagram.
Less but Better
Dieter Rams, 1995 · Rams in his own words, with his principles and many Braun products. Pair with Gary Hustwit's documentary Rams (2018).
The Humane Interface
Jef Raskin, 2000 · Modes, attention and habituation, argued with rigor. Some technical sections can be skimmed.
Magic Ink: Information Software and the Graphical Interface
Bret Victor, 2006 (free essay on worrydream.com) · The case that most software should show, not ask. Will change how you design forms.
About Face: The Essentials of Interaction Design
Alan Cooper and co-authors, 4th edition 2014 · Goal-directed design, personas done properly, and a huge catalogue of interaction patterns.
Sketching User Experiences
Bill Buxton, 2007 · Why sketching is different from prototyping, and why designers need many cheap options.
Shape Up
Ryan Singer, 2019 (free online at basecamp.com/shapeup) · Appetites, shaping and fixed-time cycles. Written for small teams; ideal for one person.
Discussing Design
Adam Connor and Aaron Irizarry, 2015 · The critique structure from chapter 16, and how to make feedback useful.
Designing for Emotion
Aarron Walter, 2011 (2nd ed. 2020) · The hierarchy of user needs and how personality grows on reliability.
Don't Make Me Think, Revisited
Steve Krug, 2014 · Short, funny and practical usability; a good companion to Nielsen's heuristics.
"10 Usability Heuristics for User Interface Design" and "First Principles of Interaction Design"
Jakob Nielsen (Nielsen Norman Group) and Bruce Tognazzini (asktog.com) · The two checklists from chapter 10 in their authors' own words, free online.
"Taste for Makers"
Paul Graham, 2002 (paulgraham.com) · A short essay arguing that taste is real and can be good or bad, with a list of qualities of good design.
The Sciences of the Artificial
Herbert Simon, 1969 · Dense, but the origin of the broad definition of design as changing existing situations into preferred ones. Read the chapter on design.
Next: The Human Mind, where you will learn why the ideas in this guide work, from perception and attention to memory and motivation.