Posted by: communicationcloud | August 11, 2009

Designing help to support low levels of domain knowledge

A project I worked on recently brought up an interesting communication problem: how to supply help with using software, when the main thing getting in the way is the lack of domain knowledge…coupled with the user’s determination to plough on  regardless of this gap in their knowledge.

The problem

The product in question is a software application for profiling memory usage in .NET applications.

Here’s the sort of thing we saw in user tests, repeatedly:

  1. Install and run software. Absolutely no problems here.
  2. Choose an application to profile. Again, no problems with this.
  3. Display and filter results, and then start to look at results. User comments like:

“Wow that’s cool! I really don’t know what I’m looking at, though”

“I have no idea what a large object heap would be used for”

” I can see what it’s showing me, but does that indicate there’s a problem?”

So, there wasn’t a problem with using the software insofar as people could get it up and running, and navigate around it successfully. The difficulty came when they tried to apply the software to their problem:

  • We showed them data that they couldn’t relate to their knowledge of memory (e.g. the “large object heap”)
  • We gave them access to a lot of data about memory usage, but they needed an understanding of what “good” or “bad” memory usage might look like, so they could apply the data to their problem.

So, what was missing was domain knowledge. The tool shows users data about their application, but they need domain knowledge to understand how to interpret the data and use it to diagnose memory problems.

How to deal with domain-knowledge gaps

When we first discovered this, I searched around the usual tech comms resources, to find out what people recommended about filling in users’ domain knowledge. The general conclusion was: “don’t!” Wise advice generally, maybe…but in this case, it’s not really an option. Potential customers download a trial version of the software to decide whether to purchase: and if they can’t apply the software to their problem, not many are going to be impressed enough by the software to decide to purchase it.

So, we had to find some way to address the domain knowledge problem. At the same time, we couldn’t just give people a document to read, with all the background information they need on it – it was quite clear that there would be no hope of them reading it.

The learning process

We approached the problem by looking at what learning users would be willing to do, and when. Here’s the learning process we think users were going through:

  1. How do I make this software profile my application?
  2. What am I looking at?
  3. What should I look for?
  4. Why should I look for that? What does that tell me about my application’s memory usage?

The design approach

As described in an article I wrote somewhere else, the user-assistance design approach we take at Red Gate is to use layers of user assistance, from the words visible in the UI out to links to 3rd-party content. This model looks a bit like this:

help system layers

What this looks like in practice

Combining the learning process we identified, and this design approach, the solution we came up with looks a bit like this:

1. How do I make this software profile my application?

The following screenshot shows the ANTS Memory Profiler start-up screen, with the “help” mechanisms that support the user with profiling their application.

start-up screen

Screenshot: ANTS Memory Profiler start-up screen

2. What am I looking at?

The following shows  part of detail of data display, including the help mechanisms that support understanding of what’s showing on the screen

screenshot - info about what user is looking at

Screenshot: help mechanisms to support understanding what’s on display

3. What should I look for?

The following screenshots show the help mechanisms with recommendations designed to support users work out what to look for in the data displays. Often, these recommendations are combined with the help that explains what’s currently on the screen.

(Note that in the previous screenshot, the “Start here” box in the screenshot above also tells the user what to look for, as well as explaining what they’re looking at.)

screenshot: help about what to look for

Screenshot: ANTS Memory Profiler full screen, showing recommendations in help


screenshot: tooltip combined

Screenshot: detail of column-header tooltip combining information about what’s on display with recommendation about what to look for

screenshot: product-level help

Screenshot: product-level embedded ua, with link to web help

screenshot: web help

Screenshot: web help topic with information about what to look for in the data

 


4. Why should I look for that? What does that tell me about my application’s memory usage?

Some of the information needed here is contained in the help described above, but generally this level of explanation is too complex for most of the help mechanisms. As well as some strategy recommendations in the web help, designed to guide the user in the main use-cases, the help links to 3rd-party help about .NET memory management and case-studies and videos that show the product in action in different contexts, and include an explanation of strategy.

screenshot: web help with links to other topics

Screenshot: web help topic (landing page from link in embedded ua) with links to other resources

Has this been successful?

It’s too early to tell. We’ve seen all the content being used frequently in user tests or with data from Google Analytics, so we’ve definitely identified some of things people want to know about, and put content in the places they expect it. The product hasn’t been out there long enough yet to understand whether we’ve managed to fully support the users’ information needs, though. We’ll be monitoring closely…

Advertisements

Responses

  1. Update!
    Something must have worked in this “help” system.

    A recent review of the product on Developer Fusion wrote in its summary of the tool:

    “RedGate provides a plethora of documentation for every single view and dialog – both inbuilt iconified tooltip help and well written, easy to follow documentation online and video walk throughs. The user-interface is easy to use and adapt to with lots of visual cues (icons, graphs etc.) and makes using the product seamless.”

    Nice:)

  2. […] more information about what principles, tools and processes enable the design approach I described in this earlier article to be successful. I’m afraid its lengthy, though – so lengthy that Ellis split it into […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

%d bloggers like this: