Using Mental Models for Troubleshooting

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.


Mental Models

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:

bicycle-simple
Continue reading “Using Mental Models for Troubleshooting”

Advertisements

Report a Bug — Start a Conversation

Today at Automattic, I gave a presentation called Life Cycle of a Bug Report. Ostensibly, it was about the elements of an effective bug report and what happens to a bug report after it is opened. Ultimately, though, it was about how Happiness Engineers fit in to the rest of Automattic (or, more generally, how a support team fits in to the rest of a company), and how reporting bugs and other feedback can lead to better communication between support and product teams.

Here’s how customer support can sometimes look:

Dev-User-HE-Brokenloop.png

  1. The product team launches a product to the users.
  2. The users use the product, and when they have questions they reach out for support.
  3. Folks in support help users solve their immediate problems.

Ideally, however, there is a complete feedback loop:

Dev-User-HE-Loop.png

  1. The product team launches a product to the users.
  2. The users use the product, and when they have questions they reach out for support.
  3. Folks in support help users solve their immediate problems and communicate bugs, pain points, and other feedback to the product team.

In that complete loop, the people who spend the most time talking with users can advocate for those users and help set priorities for addressing pain points. Support folks also get an opportunity to connect more with the people who spend the most time creating and improving the product, to better understand existing priorities and resources.

When I write a bug report, I’m not just dumping a problem on someone else’s lap or giving someone a hard time for the product they created. I am pointing out a source of pain for the product’s users and starting a conversation about how to address it, in the context of everything else a product team is working on. In the process, I develop stronger relationships with our product teams and, as a result, can provide better, more informed support to our users.

Embracing Openness

An exciting part of working at Automattic is the open source philosophy. It’s thrilling to help open source projects like Calypso (the new WordPress.com), even in a small way. I spent a chunk of time last year reviewing open bug reports, enhancement requests, and the like before the project was open sourced — it’s fun to see (and help with) new issues that come up as more people work with, get inspired by, and contribute to Calypso.

Open source isn’t just about developers, either — I do a lot of my day-to-day work in the open. I used to mainly provide support out in the open, helping users in the WordPress.com forums. These days I spend most of my time in the WordPress app repos, reporting and testing issues in the open there. (If you’d like to get involved, I also started posting calls for testing the WordPress apps over at Make WordPress Mobile.)

In the spirit of open testing, Automattic also recently released the WordPress.com Automated end-to-end tests into the open. I’m so glad we can share the awesome work that our QA and testing folks are doing. I’d also highly recommend checking out my coworker Alister’s blog WatirMelon for more testing talk.

Openness can really be part of everyone’s work — from open source, to open testing, and open support. Being open helps us learn from each other, inspire each other, and keep us aware of and oriented toward the wider community in which we work.

Working from Home: Fighting a sedentary lifestyle

As a remote worker, I usually work from home and can be found sitting in front of my computer for hours every day. I use the Awareness app to gently remind me to take a break and get up at least once per hour, but I concentrate really well when I get in the flow and lately I find that I only notice the app’s reminders when it notifies me that I missed a couple of those hourly breaks in a row. I do take a long break at least once per day to be more active, and I use a Fitbit to encourage me to get out and take longer walks, but otherwise I can be practically glued to my desk chair in concentration.

The other day, I was reading an article in the New York Times about how tracking your steps and having a daily step goal isn’t enough to avoid a sedentary lifestyle:

In other words, you can take 5,000 steps in a day or 10,000, meaning that you would cover either about 2.5 or 5 miles. But in both cases, if you concentrate those steps into a single session of exercise and then spend the rest of your waking hours slumped in a desk chair or in front of a television, you will be more sedentary than active.

Such long bouts of sitting are associated with multiple health concerns, including increased risks for weight gain, diabetes, cholesterol problems and premature death, even if you exercise.

Ask Well: Does Taking Fewer Than 5,000 Steps a Day Make You Sedentary?

The article goes on to criticize activity monitors for emphasizing steps but failing to watch out for long periods of inactivity. The Apple watch stand reminder/goal was actually one of the activity features that made me seriously consider getting one (although in the end I decided against it).

So yesterday, as I synced my Fitbit with the app, I was pleasantly surprised to see that it has a new hourly activity goal. The suggested goal (in addition to your other activity/step goals) is to “take 250 steps each hour, which is roughly two to three minutes of walking.” I’m really happy to have more encouragement to get up and move while I’m working, and I just created hourly silent alarms on my Fitbit to support that new hourly activity goal. Here’s to healthier work habits!