September 96 - Mac OS 8 Assistants in System 7 Applications
Mac OS 8 Assistants in System 7 Applications
Jose Arcellana and Arno Gourdol
Assistants are a key part of the Mac OS 8 help system. An
assistant makes an application's features easier to use and more
readily accessible. In anticipation of Mac OS 8, this article will
show you how to build Mac OS 8-style assistants into your System
7 applications, from design to implementation. We illustrate this
with a sample assistant developed for the Internet Configuration
System.
Developers are constantly pursuing two goals that seem to be at cross-purposes:
making applications more powerful and making them easier to use. All too often, power
brings complexity, when in fact power can be used to simplify things for the user.
Assistants can make the powerful features you're building into your applications
easier to access and handle.
An assistant offers the user an alternate interface. It focuses on a specific activity that
the average user is likely to want to do and frames the application's functionality to
support that activity. The defining aspect of an assistant is the interview, in which the
user is asked to supply information about preferences and typical activities
accomplished with the application.
Although assistants can be implemented under System 7, they'll be able to do more
using Mac OS 8 technologies. In this article, we talk about what Mac OS 8 assistants
are and give some general guidelines for designing an interview. We also provide an
example of how to implement an interview in System 7. Our sample assistant helps
users with the Internet Configuration System (Internet Config), a utility for setting
preferences for Internet applications. Internet Config is described in detail in the
article "Implementing Shared Internet Preferences With Internet Config" in develop
Issue 23. The source code for the Internet Setup Assistant is included on this issue's
CD.
The final name for assistants, which have also been called experts, has
not been decided at the time of this writing. Whichever the final name, the
interview-based interaction that forms the basis of assistants will be an
integral part of the Mac OS 8 help system.*
INTRODUCING ASSISTANTS
An assistant is a small single-purpose application that can do any or all of the
following:
• frame computer-based tasks in terms of real-world activity
• hide details from the user by filtering out options that aren't applicable
• pull together elements from different parts of the user interface to
support a single activity
• manage tasks so that they're executed on demand or when a specific
condition becomes true
• help the user provide the information needed by conducting interviews
• make reasonable assumptions, based on user context and user activity,
that work for the vast majority of users
For example, a resume-formatting assistant would ask the user how formal or casual
the resume should be. It would then make assumptions, hiding such details as typeface
selection and paragraph formatting. An assistant for maintaining a computer would use
task scheduling to check for viruses when it makes sense, optimize the hard disk when
it needs to, and so on.
At first glance, assistants might seem to resemble Microsoft's wizards. Currently,
however, there are differences between them. Wizards don't make reasonable
assumptions based on user context and user activity. Instead of filtering out options
that aren't applicable, they present all options. While assistants provide an alternate
interface to an application or set of applications, wizards might be the only user
interface to a task, and they aren't capable of pulling together elements from other
places in the interface. Wizards also can't schedule tasks for later execution.
WHEN TO USE ASSISTANTS
Assistants are meant to augment and not replace the more direct ways to control your
application. They shouldn't be used to cover up a flawed user interface design, such as
dialog boxes or commands that are too difficult to figure out. Users should always be
able to do directly in the program's primary interface whatever an assistant does for
them indirectly, though it might take more steps to accomplish the task in the primary
interface. How do you determine when a specific area of the user interface needs a
redesign and when it could use an assistant? In general, an assistant is most effective
when it supports an activity that many users want to perform with your application
but that can only be accomplished if the user has a better-than-average familiarity
with your application's feature set and user interface. For example, we developed an
assistant for Internet Config because it takes several steps in different places of the
interface to set up your Internet preferences for the first time.
THE INTERVIEW
An assistant conducts a brief interview, consisting of a series of simple questions, to
get the information it needs from the user. The interview should be:
• Short. Ask as few questions as possible. To minimize the number of
questions, the assistant should make as many reasonable assumptions as
possible.
• Simple. Make the questions easy to answer. If a difficult question needs to
be asked, the interview should provide information that helps the user answer
the question.
• Concise. No words should be wasted, even when providing information to
help the user answer a question.
• Neutral. The tone should be conversational and friendly, not too familiar
or too cold.
Note that an interview isn't a dialog box, nor is it a dialog box taken apart and
presented in a series of smaller dialog boxes. Adding "Assistant" to the name of a
command that calls up a dialog box doesn't make the dialog box an interview or the
command an assistant. Finally, the interview isn't a way to give the computer a
personality.
THE INTERVIEW WINDOW
The assistant interview takes place in a fixed-size, movable window. Whether it's a
regular (document) window, a modal window, or a floating window depends on the
context from which you anticipate it being invoked. Assistants should be accessible
from appropriate places in your user interface, such as through a menu item or a
button in a dialog box. They should be accessible by name (so that the name of the menu
item or button is the name of the assistant) or, if the context is clear, by the words
"Assist Me." The interview window contains header, content, and navigation areas, as
you can see in Figure 1.
Figure 1. A typical assistant interview window
• If the interview window is a document window, the assistant's name
appears in the title bar and the header area displays the interview phase that
the user is in. If it's not a document window, the header area displays the
assistant's name followed by a colon and the interview phase.
• The content area contains text (usually a question and a brief
explanation) and editable text fields and other controls that are used to answer
questions and enter information.
• The navigation area contains buttons that help the user move through the
interview, such as left and right arrow buttons, which lead to the previous or
next panel, and a Go Back button that takes the user back to the context from
which the assistant was opened. A number between the left and right arrow
buttons indicates how many panels the user has been through (see Figure 1).
DESIGNING AN ASSISTANT FOR INTERNET CONFIG
To demonstrate how to add an assistant to your application, the rest of this article