Monday, July 12, 2021

A user interface is well designed when the program behaves just as the user thought it would. (Joel Spolsky)

Ah yes, mental models. How I love them. And how helpful they are. They also actually come up a surprising amount. 

I find that they are often to blame when it comes to sneaky, more complex problems – i.e., ones that aren’t obvious from the start, like labeling or inconsistency or text size ... When you really have to wrack your brains over what just made that test bomb so badly, mental models are often the culprit.

Think about it though. When there’s a mismatch between your model and the user’s, it can be a lot like talking with someone at cross purposes or, worse, speaking two wholly different languages. 

I mean, honestly, hand gestures and middle school French are only going to get you so far. For a truly smooth interaction, you and your user really need to speak the same language, be on the same page, sing from the same choir book …

Now, all mental models are are simply ways for people to understand complex systems or ideas. I don’t need to know the details of the internal combustion engine to know how to drive a car, or a degree in library science to check out a book, or machine language to use a word processor. 

All I have to know is enough so I can use the car or library or spreadsheet to accomplish what I set out to do. Too much detail, and I’m overwhelmed. Not enough, and I can’t predict how the system is going to work and what I‘m supposed to do. When my model is just right, though, it’s a super-handy way to make my way around the system and accomplish my goals.

There are three main problems with mental models – in particular, when the system:
  • Totally lacks a model 
  • Has a model, but it’s too complex or inconsistent to figure out
  • Has a model, but it doesn’t match the user’s model

In general, though, they’re great things. Probably the most important part is making sure that we understand that last bit (the user’s mental model) and then build around that. Using a mental model that makes use of what the user knows from the real world can also be very helpful (you know, a metaphor). Perhaps, most importantly, we just need to use them more – and more consciously.


Joel’s a developer with a real eye for UX. He created Trello; was the major factor behind Excel, Visual Basic, StackOverflow; has authored 5 books; and may be most well-known for his blog, Joel on Software.

No comments:

Post a Comment