Principle 1: Match the User’s Mental Model

Definition

Every program has an internal concept of what it’s doing. A good design makes sure the user’s mental model (how they think it works) aligns with the system model (how it actually works).

Why It Matters

When users can’t predict what will happen, they feel lost, frustrated, or mistrustful. Misaligned models create confusion and errors, which leads to more support costs, lower adoption, and wasted development. Aligning with the user’s expectations makes software feel “obvious” and easy.

Example – Good vs. Bad

  • Good: In a photo app, dragging a picture into the trash can icon deletes it. Users already know the trash can metaphor from the real world.
  • Bad: In some enterprise tools, deleting a “record” only hides it from a list but doesn’t actually remove it from the database. Users expect “delete” to mean gone forever — so the mismatch creates confusion and lost trust.

Do’s

  • Research user expectations before designing (interviews, observation, testing).
  • Use familiar metaphors (trash can, folder, shopping cart) instead of inventing new ones.
  • Make the system status visible — users should always know what’s going on.
  • Simplify system logic so users don’t need to understand technical details.

Don’ts

  • Don’t use technical jargon that only developers understand (“commit”, “rollback”, “object”).
  • Don’t force users to adapt to the system’s quirks.
  • Don’t surprise users with hidden rules (like “Save” working differently in two parts of the app).

Key Takeaway

Software feels intuitive when users don’t need a manual to guess what will happen. Align the product’s behavior with the way people naturally think, not the way programmers think.

more insights

Cognitive load refers to the mental effort required to use a system.
Good UX design anticipates mistakes and allows users to recover easily.
Feedback is the system’s way of communicating what’s happening to the user.