Part F - Design

User Support

Identify the properties of an ideal help system
Provide examples of the different types of help systems that have been developed

"The Microsoft .NET Framework 3.5 Service Pack 1 update, pushed through the Windows Update service to all recent editions of Windows in February 2009, installs the Microsoft .NET Framework Assistant firefox extension without asking your permission." 2009

Properties | Examples | Design Issues | Exercises

A well-designed interface includes some form of user support.  As the user requests support in navigating a system at their own pace and along their own path, the interface provides that support.  Although some designers aim for ideal interfaces that require no user support, even the best systems cannot anticipate all of the possible requirements that any user may have. 

In this chapter, we describe the properties of a help system, discuss the variety of systems developed over the years, and summarize the major issues that arise in the design of a help system from scratch.


The properties of a help system depend upon the specifications that need to be satified in supporting the operating system or application and the level of support required.


Many help systems exist to provide user support.  They differ from one another according to

  • the technology on which they are implemented
  • the sophistication of the anticipated user
  • the needs and the nature of the system or application

Desirable features that have become apparent over time include:

  • availability
  • accuracy and completeness
  • consistency
  • robustness
  • flexibility
  • unobstrusiveness


The user should be able to access the help system while :

  • running the application
  • running another application
  • not running the application

We can meet these specifications if the help system:

  • runs concurrently with the system or application itself
  • runs in a windowed environment where it is not dependent upon the parent application for its own rendering

Accuracy and Completeness

We can easily forgot documentation and let it become outdated.  This can result in the help system actually being incorrect and misleading. 

We maintain accuracy and completeness if we:

  • update documentation regularly as the system or application is updated
  • document all features, even those that are less frequently used


Some applications have several levels of support:

  • on-line help
  • paper manuals
  • context-sensitive help

For consistency, all of these level should share:

  • content - they should all state the same things
  • terminology - they should all use the same terms
  • style - they should all share the same look and feel


Users who are confused, lost or under pressure often turn to help systems.  For such users, the help system should:

  • be easy to use
  • not crash
  • have good error handling
  • have predictable behavior


A flexible help system adapts to adapt to users' needs.  The system should offer:

  • simple help to novices
  • advanced help to experts

We can achieve flexibility in various ways through:

  • modularized systems
  • context-sensitive help
  • adaptive systems that infer the user's expertise from the task being performed
  • hypertext systems that allow exploration to various levels of depth


A help system should not interfere with the user's normal work flow.  For unobtrusiveness, we do not:

  • grap focus from the user
  • lock the application while help is active
  • use system or global modality

Levels of Support

An operating system or software application typically requires four types of support:

  • tutorials
  • quick references
  • task-specific help
  • comprehensive explanations


Tutorials introduce new users to the system or application.  They demonstrate how to use it to accomplish common, practical tasks.  In many cases, a tutorial is organized as:

  • a description of the system's or application's concepts
  • an overview of the interface
  • a first use of the system or application
  • a set of how-to-do specific tasks

Quick References

A quick reference is a short form of help that reminds the user of a command's syntax.  In many systems, a quick reference appears automatically if the user hesitates for a certain period.  Quick references take the form of

  • tooltips
  • file name completions
  • code assistants



Code Assistant

code assistant

Task-Specific Help

Task-specific help supports a user who has encountered a problem while performing a specific task and needs help to complete that particular task.  Task-specific help is often context-sensitive:

  • a help button appears on a dialog
  • when the user clicks the button, support appears that is specific to the dialog being used
  • a simple link takes the user to existing online documentation

Comprehensive Explanations

Comprehensive explanations are complete explanations of how the system or application works and how its specific features work.  Experts usually consult such explanations.  In many cases, complete explanations are not immediately available to novices, simply to avoid overwhelming the novice user with too much information. 

Comprehensive explanations are provided online or in paper form or both. 


Popular help systems that ship with operating system and sophisticated applications provide many levels of support: 

  • command-line help
  • context-sensitive help
  • online help
  • wizards
  • agents
  • personalized help
  • intelligent help

Command Line Help

Command assistance provides command-line help in response to user requests.  Examples include:

  • UNIX/LINUX man pages
  • DOS help
  • Windows help

command assist

Command assistance works well for users who know what they are looking for, but not for users who want to explore new unfamiliar capabilities of a system or application.

Command prompts appear at the command line when the user enters incorrect syntax.  The prompts display the correct syntax. 

command assist

Some command-line interfaces use menus to help the user identify the command they seek to execute.  For example, the IBM Time Sharing Option is a command line system that uses a menu (ISPF) to help users issue commands.

Copyright IBM Corporation 1990, 2010

Context-Sensitive Help

Context-sensitive support systems provide help on the context within which the user is working.  They often take the form of a help button on a dialog.  These systems save the user from having to locate the relevant parts of the documentation within the entire help system. 

context help

OnLine Help

Online help takes users directly to on-line libraries that provide comprehensive support.  Examples include: the Microsoft Developer Network Library (MSDN):

context help

Online tutorials guide the user through the help system using examples and letting the user perform operations under system guidance.  Tutorials often have limited intelligence and can recognize incorrect input as correct. 

tutorial help

Staged tutorials present the user with the full version of an interface but limited functionality, so that the user cannot do any serious damage.  As the user becomes more experienced, the limitations may change.  Training Wheels proposed by researchers at IBM is one example.  If the user accesses an area that has been disabled, they are told that it is unavailable.


Online documentation is paper documentation stored in a server's memory. 

Advantages of online documentation are

  • the user doesn't have to find the manuals
  • the user can search the manuals readily

Disadvantages of online documentation are

  • it is more difficult to read text from a computer screen than from paper
  • it provides much more information than the user usually wants
  • it can still be difficult to determine what the user wants

One technique of creating online documentation is hypertext.  Hypertext

  • allows interrleated items to be linked
  • allows tables of contents to be linked
  • makes items easier to find
  • may complicate the user's path to the extent that the user gets lost within the document

Minimal documentation is a variation on online documentation.  It is a cut-down version of the full manual with just the essentials retained.  This makes the documentation easier to

  • read
  • navigate

Users can learn a specific task with minimal documentation 40% faster than with full documentation.


Wizards are applications that help the user perform complex tasks.  A wizard

  • leads the user step by step
  • asks the user a series of questions to determine what should be done
  • hides the complexity of the underlying interface
  • lets the user back up to change a previous decision
  • provides progress indicators, especially for long, involved tasks
  • allows a novice to perform a complex task without learning the details
  • is excellent for infrequently performed tasks

command assist

Drawbacks of wizards include

  • pathway is rigid, which may constrain the user
  • many options are omitted
  • prevents the user from learning how to invoke the underlying commands since the user does not see them or the output from execution


Agents are software tools that monitor user behavior and offer hints or suggestions on recognizing particular sequences.

Microsoft Assistants

The predecessor to the Microsoft assistants (and Windows Explorer) was the Program Manager, a GUI shell for the Windows 3.x operating systems that consisted of icons, which served as shortcuts.

Microsoft's Program Manager
© Microsoft - fair use only

Microsoft Bob was one of Microsoft's first assistants to replace the Program Manager.  Microsoft released Bob in 1995 as the non-technical, user-friendly interface to its Windows 3.1 and Windows 98 operating systems.

Microsoft's Bob
© Microsoft - fair use only

Microsoft released Earl the Cat in 1997 as its assistant to Office 97: 

  • Earl, on seeing the user repeating certain actions, appears on the screen and suggests the next step
  • Earl is unobtrusive and can be controlled by the user

Microsoft's Earl the Cat
© Microsoft - fair use only

You can find many of the other Microsoft assistants here.

Clippy was Microsoft Office's Assistant from 1997 to 2003.  Clippy was the first use of the Microsoft Agent software.  A sophisticated Bayesian probability program controlled its behavior. 

Microsoft's clippy
© Microsoft - fair use only

Clippy was retired to the big bit bucket in the sky.  To date, all of the agents produced by Microsoft have been deemed failures. 

Smart Tags

Smart tags have taken over Clippy's main functions.  They

  • are small icons that appear near the user's work area
  • disappear if the user ignores them or goes to another task
  • produce help if the user clicks on them

Microsoft's Smart Tags
© Microsoft - fair use only

Microsoft's Smart Tags
© Microsoft - fair use only

Criticisms of Assistants

Clippy was despised as irritating and unhelpful.  It failed to be unobtrusive.  Clippy:

  • presented the user with long lists to read
  • performed distracting animations for no reason
  • prevented the user from continuing to work effectively
  • made many wrong and inappropriate suggestions
  • displayed an animated paper clip that many users found more annoying than cute

Here is a 4-minute video about Clippy

Users' displeasure was not limited to Clippy.  Other characters that users found equally annoying included:

  • Peedy
  • Merlin
  • Genie
  • Robby

The interruptions were at times comically inappropriate and at other times outright annoying.  The result was that assistants were almost universally despised.

The failure of assistants is attributed to ignoring two important factors of human psychology:

  • we are immediately distracted by motion in our peripheral vision (any animation is distracting)
  • we find faces or caricatures of faces highly distracting

Modern Agents

Agents have evolved from these earlier attempts considerably.  They now support

  • 3-D animated characters
  • text to speech
  • speech recognition

For example, Open Office's help agent is much less obtrusive than Clippy:

help agent

Personalized Help

Personal environments let users design their own help systems.  Typically, these systems consist of widgets or gadgets that users select from other users or from the environment's supplier.  These widgets are small objects that users can add and remove from their environment as required. 


Windows Vista introduced the sidebar, which can hold various information, including help support.  The sidebar replaces the use of agents, looks far less intrusive and can provide help across applications.

visual studio sidebar

Widget Engines

Widget engines host collections of widgets or gadgets.  These engines include personalized desktops. 

visual studio sidebar

With widget engines, users can customize help support to their own needs.

Knowledge Representation

Adaptive or intelligent systems adapt to the user's skill level and offer help and suggestions appropriate to that level. 

Adaptive systems treat every user as unique and different from every other user.  These systems assume that every user

  • is familiar with a subset of the functionality
  • has expertise in some systems but none in others
  • has different levels of skill
  • has different levels of understanding

Adaptive systems build a model of the user and their skill level over time.  The model itself takes some time to build.  Most systems start with a generic user model and refine it as the system collects information on the user's behavior. 

There are different ways to represent the user model. 


Some systems create categories based upon the user's level of expertise.  These systems then identify real users with one of these categories based on behavior.  Each category has predefined help for members of that category.  The system moves the user between categories as their expertise changes.

Some systems creates categories based on stereotypical users rather than the expertise of real users.  These systems assign users to stereotypes by comparing their behavior with that for the stereotype.  Stereotypes perform well if they are well chosen and represent actual user types. 


Overlay systems construct a model of an expert user.  These systems then represent each user by what that user has in common with the expert model and by the differences with the expert model.  The advantage of this technique is its simplicity: the system knows what the ideal user is and can measure progress with respect to that ideal.

Task Models

Task systems recognize the task that the uesr is performing and offer help with that task.  Many systems do this by storing a series of steps and then comparing the user's actions to that series.  This technique fails whenever the user approaches the problem in an unconventional manner.  Task recognition remains a problem for adaptive help systems as well as for agents.

Knowledge Representation

Adaptive systems store information about

  • the user
  • user models
  • tasks

These systems draw representations from artificial intelligence using several techniques

  • rule-based
  • frame-based
  • network-based
  • example-based

Expert systems use rule-based techniques, which represent knowledge as a series of rules and facts.  They interpret information by an inference mechanism: 

    command is EDIT file
    last command is COMPILE file
    task is DEBUG
    action is "describe debugger"

Frame-based techniques uses data structures that contain labelled slots or attributes.  Each attribute describes some aspect of the user: 

    expertise : novice
    command : EDIT file
    lastCommand : Compile file
    sessionErrors : 6
    action : describe debugger

Network-based techniques represent knowledge as a system of relationships between facts.  These systems commonly implement these techniques as a semantic network:

 CC is an instance of COMPILE
 COMPILE is related to DEBUG
 COMPILE is related to EDIT
 Debugger facilitates DEBUG

Example-based techniques represent command patterns as linked structures, which could be stored in a decision tree.  For example:

 EDIT file

This would be recognized as a task and indicate that information on debugging is appropriate.


Problems with knowledge representation include such issues as:

  • it takes a long time to gather the information
  • it takes an expert to provide the information
  • gathering information on individual users takes time
  • interpreting user actions is difficult and prone to error

Design Issues

The design of a help system raises issues of

  • initiative
  • effect
  • scope
  • presentation

The issue of initiative raises the following questions:

  • should help intrude on the user or should the user request help?
  • if help intrudes, it might disrupt the user
  • if help must be invoked by the user, the system will not be able to draw the user's attention to new techniques
  • the solution may be to allow the user to query help at any time and for help to intrude in a least disruptive manner

Agents and adaptive help often store large amounts of information on users and tasks.  This information is expensive to create and to maintain.  Often, it can be pruned to reduce it to information that is essential for the task and required for the necessary effect. 

The issue of scope raises the question whether help should be offered at the application or operating system level?  Modeling users at the system level is far more complex than the application level.  Dealing with concurrent execution and interleaved activities with many applications makes it even more difficult.

The issue of presentation raises questions of how a help system should be requested? Through a

  • help button on the screen
  • help button on the keyboard

of how the help should be displayed? In

  • full-screen
  • a window
  • a pop-up dialog

The solution depends upon the type of help and the amount of information to be displayed.

of how much help should be displayed?

  • the amount displayed should not be too large as it is harder to read
  • hypertext allows text to be broken into smaller units

Writing style should

  • be concise, clear and to the point
  • avoid the use of unfamiliar terminology


  • Here is a 5-minute presentation by Aternity at