Comments

Your Users’ Mental Models

Posted by sh1mmer on Dec 15, 2009 in General

This is a reprint of a short essay I wrote for the excellent Designing Social Interfaces (on Amazon) by Christian Crumlish and Erin Malone.

One of the things I like about computers is their ability to create magic. They provide abilities that no-one thought possible and make them a reality. Yet, for many people this is also the biggest source of complaint about computers.

When you drive a car you probably don’t understand the thermodynamics of expanding chains of combusting hydrocarbons happening under the hood. Perhaps you understand the concept that gas expands in the engine block, pushing pistons in sequence which make the car go. But, even if you don’t, you can still understand that there is a direct correlation between the accelerator and the car moving forward. Of course, most interfaces are not quite this simple, even in cars. If the car won’t move, you assess what might have happened. And lo, you’ve left the parking break on! With this error dealt with you are free to go about your driving.

Obviously I’m not going to ask you to model your user interfaces after cars. However it is interesting that while cars contain significant amounts of complexity (complexity you and I almost certainly don’t fully understand) we can still functionally use them and recover the situation when things go wrong. This is because the sequence of events which makes the car work has formed a mental model in our heads. The car goes forward only when: it contains fuel, the engine in on, you are not applying the breaks, and you are pressing the accelerator. Since we have this model of how the car works we are able to troubleshoot when it doesn’t behave as we expected.

What is significant about the models we create is how functional they are. They aren’t based on the combustion of hydrocarbons or lateral torque. Heck, if there is serious engine trouble that is still a black box to me, but I know I can call AAA to tow me to a garage. And this, dear friends, is the crux of it; You need to design interfaces that let people recover from their mistakes. The problem you face as the designers of magical boxes rather than cars, however, is that users do not have the same robust mental model of computers that they have for cars. When things go wrong, and they certainly will, you users are lost in a sea of uncertainty.

So how do we solve this dilly of a pickle? Let’s start with what we know. Users must have a mental model of computers, otherwise they wouldn’t be able to use them at. However the scope of this mental model covers, perhaps, user interface widgets and probably some landmark mark or list based navigation. The problem, the thing that makes computers different from cars, is that computers interact differently based on context or conditions outside of our control. Much of this context may not be understood by the user, or may have never been explained. Cars are pretty old technology, children learn about them in school. By the time we first learn to drive a car, we are expected to have a basic understanding of how it works however generalized that model is. The same is not true for computers. Computer users are often actively discouraged from learning the underlying principles of what they are doing, and told to focus on the specific of the interface.

A great example of how this leads to the breakdown of users’ mental models is interaction with the Web. The Web is probably one of the least benign environments for a user on their computer and yet it is arguably the most successful computing platform. Using the Web there are numerous contextual or circumstantial errors than can occur, however the majority of users have no mental model with which to understand and recover from them. We looked at 4 possible causes of the gas pedal not accelerating a car, and yet a web page failing to load can have upwards of a dozen causes. Since users lack a mental model the best plan of action is to try and self-diagnose the error and educate the user. The distinction is important.

While it may seem sufficient to tell the user something went wrong and what they can do next, they are going to get into the same state again with the same confusion. Instead if there was a problem with the DNS tell them so, and help them understand what DNS is. Maybe you have to use an analogy of a phone book for web site numbers for their computer to dial, maybe you can convey the information more straight up. However you do it, don’t just let your users keep failing and becoming frustrated, give them a mental model that will last them a lifetime as a satisfied customer.

Image courtesy of mvallius on Flickr.

Copyright © 2010 Kid666 Blog All rights reserved. Base theme by Laptop Geek.