Have you ever been in a grocery store or a big box store and you can’t find what you’re looking for? Or, sometimes, you go to a different store from your usual and everything is hard to find. “Why is the Sriracha by spaghetti sauce?” Some stores just don’t know how to organize their shelves, right? The reality, however, is more complex. You have developed a “conceptual model” or a “mental model” of how food (or hardware, whatever) should be organized on the shelves. In your mind, you’ve built a taxonomy that categorizes items closer in similarity and others further in similarity. But, this is your mental model. Others may have developed a different mental model. In fact, the confusing store’ shelves might match the mental model of the person responsible for setting up the store. More likely, though, it is a system that has been developed by researchers to match an average mental model.
Mental models are developed from the moment we are born and are the result of culture, upbringing, language, and experience. Schools attempt to teach children new mental models, but most people develop their own as an alternative consequence of school, work, family, community, news, media, and various other inputs. By the time we become adults, our mental models become rigid and difficult to change. We may add new mental models, but the old ones become persistent and stubborn. Often, we will develop subconscious cognitive biases based on our mental models of things. When the world doesn’t match our mental models we become confused and sometimes cranky.
Software Mental Models
In software, there is nothing concrete, nothing real-world, and nothing tangible (in the strict sense). Everything is abstract, analogue, and intangible. Human beings must rely on the mental models they’ve developed throughout life to survive in the land of software. Often the information architecture, the structure of information in software, is rigid and inflexible. When matched with our equally rigid and inflexible mental models, we find ourselves struggling with the software. This diminishes our experience and leaves us feeling less inclined to use that software in the future and likely to look at competitors. The way software information is called an “implementation model”, a “represented model”, a “designer’s model” or a “system model.”
The system model can permeate a software and make subtle differences in usability. Let’s look at an example in Microsoft Word (I’m not picking on MS Word, it’s a great product, really, it’s just extremely common and popular and works well as an example).
Word’s options dialog has improved over the years, but even in the latest incarnation, it can be difficult to work with. Let’s say for example, you want Word to always create a backup copy of your file when you save (a feature that’s been in Word a very long time). Look at this dialog, where would you go to find a way to turn that feature on?
Would you look for it under “Save?” Yeah, so would I. But, like me, you’d be wrong.
Not finding what you’re looking for, you’d probably go hunting and find yourself in “Advanced.” But look at all those options.
Thankfully, there are sections with headings, but still, it’s hard to find what you’re looking for. My mental model doesn’t match the Word representation model very well.
What’s a Poor Designer to Do?
There’s no sure-fire way to create a representation or system model that matches our user’s mental model. The trick is to provide the user with tools to manage the information. Tools like filtering, sorting and tagging are great ways to achieve this. Instead of representing information in hierarchies, use loose couplings of attributes and meta-information to organize information in within the UI. Another tool is to give users more than one way to do things. Some people like to right-click, others like menus, others like keyboard shortcuts. They can all be used to accomplish the same things, but each is used by different people with different mental models.