When a user reports an issue they’re having with the product you support, how do you know what to do next? How do you identify the source of the issue? How do you know where to start investigating?
I’ve mulled over these questions countless times as I tried to explain to coworkers how I troubleshoot. When someone describes an issue, it always seems like the possible causes just pop into my head, unbidden. But of course that isn’t it at all — I have gotten better at troubleshooting our products over time, and that didn’t happen by chance.
When I read Jim Grey’s post How to Hire an Entry-Level Tester, his key traits for testers meshed with how I understand troubleshooting and this trait stood out:
Create mental models: Building a mental model of a system, even if it’s incomplete or partially inaccurate, helps a tester orient themselves to a problem and generate ideas on how to work through it.
When I look at a problem, I fit it into my mental model of the product and use that model to start investigating. On my team, I’ve started to explicitly discuss mental models, how to build and expand them, and how to use them to get better at supporting and troubleshooting our products. Rather than trying to summarize the things we’ve talked about on my team, I’ll share the introduction to mental models I wrote recently, as part of a troubleshooting training I’m developing for WordPress.com support.
A mental model is “an explanation of someone’s thought process about how something works in the real world” (Wikipedia). In other words, a mental model is how you understand or represent a real thing in a more simplified or abstract way.
Mental Model of a Bicycle
To get a better sense of mental models, let’s look at an example: Bicycles. Not everyone understands every part of a bicycle, but even if you just ride a bicycle now and then you probably have a concept of what it is and — at least to some extent — how it works. That is your mental model.
A user’s mental model
As a bicycle user, your mental model might be very simple — all you need to know are the parts you interact with or a general sense of what makes a bicycle different from, say, a tricycle or a car. In this simple mental model, you’ll see that the bicycle includes a frame, handlebars, a seat, and two wheels:
A teacher’s mental model
If you are helping someone learn to ride a bicycle, you probably need a little more detail in your mental model. For example, your mental model will include pedals, and you can explain how to use those pedals to make the bicycle go:
A troubleshooter’s mental model
But what if someone has a problem with their bicycle, where the pedals don’t work correctly? Your mental model needs to include more detail about how each part of the bicycle is connected, and an understanding of how that system can break down. To deal with a problem pedaling, for example, you’ll need to know how the bicycle chain works:
At each stage, the mental model expands to include more detail. As your mental model gets more complete, you understand more about the bicycle and how it works — and so you can do more with it.
Mental model of WordPress.com
Instead of things like wheels, pedals, and chains, your mental model of WordPress.com is made up of what you know about things like coding, the internet, and the components of a WordPress site. That mental model may start out fairly simply, and it will change over time as you learn more about the system and how things fit together.
Notice how the mental model above has a lot more detail in one area, but it is still fairly simple in other areas — that’s normal! As we learn about a system, we’ll often gain a better understanding of one area while another area remains a little fuzzy. If we approach the system piece by piece, we can fill out our mental model one piece at a time instead of getting overwhelmed by the overall complexity.
Developing your mental model
It can also be helpful to think of your mental model of WordPress.com in terms of the categories user, teacher, and troubleshooter:
Your mental model probably already includes a lot of the details you need to know to use WordPress.com. You can also fill out your mental model as a user by exploring the product or using our support documentation — that may seem obvious to you, but you can use the same general approach to develop your mental model further as a teacher or troubleshooter.
When you teach others how to use WordPress.com you need a more in-depth understanding of the product, and it also helps to know common problems that users have. Resources like our Field Guide (internal knowledge base), past discussions found by searching P2s, and other internal tools can come in handy for learning more and expanding your mental model.
Finally, to troubleshoot issues on WordPress.com you’ll need detail about how the pieces fit together: for example, how a theme, a domain’s DNS, and a site’s content and settings fit together to create the front of the site. The better you understand the system, the easier it is to identify problems and where they come from. To that end, you can identify a particular topic you feel shaky on (say, DNS or WordPress themes) and learn more about it. As you learn, you can also take a look at the related WordPress.com code or pay attention to bug reports on that topic. You can then repeat this approach to learn about different parts of the system, bit by bit, expanding your mental model over time.
That’s it! What do you think? Does this approach help you think about troubleshooting a system? Are there any other concepts or points you’d add to it?