[net.cog-eng] D. A. Norman on Commands vs Menus

peterr@utcsrgv.UUCP (Peter Rowley) (10/14/83)

This article was posted to net.cog-eng on Sept. 22nd, but it never made
it out of UCSD.  Please mail replies to the original author, not to me.
(Address given at the end of the message: The article has been edited a
bit to reflect the new time frame).
----------------------------------
 (from D. A. Norman: University of California, San Diego)
I am fascinated by the development of a  "Cognitive  Engineering"  news-
group,  especially  when it  started with such a nice quotation.  I hope
that this newsgroup can develop high quality discussion rather than  the
random  blithering  that  seems  to  plague some net groups.  So  far  I
have seen both interesting discussion and nonsense in this group.

Do not forget that there are already two net.groups that speak on topics
of  Cognitive  Enginering:  net.WorkS  and net.editor-people.  I know of
many potential participants for this group who are on various UUCP  nets,
but  there are also others, some of whom are only available via the arpa
net; it would be good if someone were to establish an arpa  net  connec-
tion.

Some time ago, Phong Vo asked the following question: 
       "1. Has anyone done hard/scientific studies on what are the trade-offs
	   among pure menu, pure command or hybrid systems? What are the
	   underlying parameters that cause one mode of communication to be
	   preferred to another?

	  "For example, a large part of the world is still constrained to low
	   bauds communication. As a result, the verbosity of a menu-oriented
	   system can cause it to be a nuisance. On the other hand, the ZOG
	   system at Carnegie-Mellon claims some success with very high-speed
	   communication line with touch-sensitive screens and all."

It turns out that this is exactly the question I tried to address in my
paper  for  the   December  ACM/HFS  Conference  on  Human Factors   in
Computer   Systems  (Boston, Dec. 1983).   In  this  paper I present  a
quantitative method of determining tradeoffs.  In addition, I give  the
following  argument about menus that may be relevant.  The following is
excerpted from the paper.  A  hard copy of the full paper  is available
upon  request  (if you provide a US mail address).    I recommend   the
full paper because the quality of the argument rests on the ability  to
do quantitative  tradeoffs  among  the  variables, where such things as 
display rate (Baud rate) can be taken into account.

The major theme in the paper is that each design technique provides a set
of tradeoffs.  I contend  that no  single  technique  is  "correct"  for
all  people  or applications.  Rather, each technique  combines virtues
with deficits.   Menus provide one set of tradeoffs.  Menus provide useful
information, but at the cost of taking up valuable workspace, taking time
to be presented, and requiring search effort.  These variables (plus a few
others) must be separated from one another.  In addition, the stage of
activities in which the user attempts to determine which operation is to be
done (I call this  the "choice" stage) must be separated from the stage of
activity in which the user specifies to the computer what operation is to
be performed (I call this the "specification" stage).  Many discussions of
menus versus comand languages confuse this distinction, in part because the
term "menu" stresses the information aspect (the "choice" problem) whereas
the term "command language" stresses the specification mode: naming, as
opposed to pointing.  My discussion here is oversimplified to make its
particular point.
----------------------------------------------------------------------------
Excerpts from
     Norman, D. A., (1983), Design principles for human-computer  inter-
  faces.   Proceedings  of  the CHI 83 Conference on Human Factors in Com-
  puter Systems.  Boston. (Dec. 1983).

Command Languages Versus Menus
------- --------- ------ -----
     The relative merits of menu-based systems and command language sys-
tems  are  often debated, seldom with any firm conclusion.  It is useful
to compare their tradeoffs, but before we do,  it  is  necessary  to  be
clear  about  what is meant by each alternative.  In this context a com-
mand language system is one in which no aids are presented to  the  user
during  the  intention or choice stages, and the action specification is
performed by typing a command, using the syntax required by the  operat-
ing system.  (The distinctions among the intention, choice, and specifi-
cation stages come from a  paper  still  in  manuscript  form.)  Command
languages  are  the  most frequent method of implementing operating sys-
tems.  Similarly, in this context a menu-based system is  one  in  which
all  commands  are presented via menus, where a command cannot be speci-
fied unless it is currently being shown on the active  menu,  and  where
the  commands are specified either through short names or single charac-
ters (as indicated by the menu items) or by  pointing  at  the  relevant
menu item (or perhaps at a switch or mark indicated by the item).  These
are restricted interpretations  of  the  two  alternatives,  confounding
issues about the format for information presentation and action specifi-
cation.  Still, because they represent common design alternatives, it is
useful to compare them.

     Command languages offer  experts  great  versatility.   Because  of
their  large amount of knowledge and experience with the system, experts
tend to know exactly what operations they wish performed.  With  a  com-
mand  language they can specify their operations directly simply by typ-
ing the names of the commands, as well  as  any  parameters,  files,  or
other  system options that are required.  Command languages make it easy
to specify parameters (or "flags") to commands, something  that  may  be
difficult with menu-based systems.

     Menus offer the beginner or the  casual  user  considerable  assis-
tance.   At any stage, information is available.  Even abbreviated menus
serve as a reminder of the alternatives.  Experts often  complain  about
menu-based  systems  because  of  the time penalty in requesting a menu,
waiting for it to be displayed, and then searching for the desired item.
Moreover,  systems with large numbers of commands require multiple menus
that slow up the expert.  The problem is that the system is designed  to
give help, whether or not the user wishes it.

     Two of the difficulties with menus are the  delay  in  waiting  for
them  to  be  plotted  and the amount of space they occupy.  In the full
version of this paper I show that the tradeoff between amount of  infor-
mation  and  time delay is especially sensitive to information transmis-
sion rate.  When transmission time becomes fast enough, there is  little
penalty  for  menus,  whereas  at  slow  rates of data transmission, the
penalty is high.  In similar fashion, a figure  in  the  original  paper
shows  that  the  tradeoff between menu size and workspace is especially
sensitive to the amount of total workspace available.   When  sufficient
workspace  is  available, there is little penalty for menus.  Thus, slow
transmission rates and small workspaces bias the  design  choice  toward
command  language systems; high data rates and large workspaces bias the
system toward menu-based systems.

     The two systems also differ in the kinds of errors they lead to and
ease  of  error  correction.   In a command language system, an error in
command specification usually leads to an  illegal  command:  no  action
gets  performed.   This  error is usually easy to detect and to correct.
In a menu-based system, an error in specification  is  almost  always  a
legal  command.   This  error  can be very difficult to correct.  If the
action was subtle, the user may not even be aware it was performed.   If
the  action  was dramatic, the user will often have no idea of what pre-
cipitated it, since the action specification was unintentional.

     Command languages tend to be virtuous for the expert, but difficult
for  the  novice;  they  are difficult to learn and there are no on-line
reminders of the set of possible actions.  Menus are  easy  to  use  and
they  provide  a constant reminder.  On the other hand, menus tend to be
slow - for some purposes, the expert finds them tedious and  unwieldy  -
and not as flexible as command languages.

In  the argument over which system is best, the answer must be that nei-
ther is: each has its virtues and its deficiencies.
-------------( end of excerpt )-----------------------------------------------
This analysis has somewhat simplified the range of possible menu systems,
especially those with high resolution screens (lots of workspace) and bit
mapped displays (minimum time penalty to introduce menus).   In addition,
appropriate formatting and selection of just what information is to be
desiplayed is as important as how much is to be displayed.  Still, these
analyses make a start toward showing that system design, like life itself,
is a tradeoff among many dimensions:  One cannot expect a unique answer to
what amounts to a complex, multi-dimensional problem.  A former student
(Gary Perlman -- now familiar to cog-eng readers) has provided a useful
critique of this section taking these other factors into account.  I will
ask him to provide his critique directly to net.cog-eng.  I still feel the
analysis stands, but I leave that for further discussion if anyone feels
the topic worthwhile.

For hard copies of the original paper, write to me directly.
 Donald A. Norman     (ucbvax!sdcsvax!sdcsla!norman or norman@nprdc)
 Cognitive Science C-015
 University of California, San Diego
 La Jolla, California 92093

lorien@dartvax.UUCP (10/27/83)

I read D. A. Norman's "Design Principles for Human-Computer Interfaces"
and the net.cog-eng article in which it was summarized with interest.
In the paper, Norman presents a method for analyzing the tradeoffs between
aspects of user interface design.  An example he presents is the tradeoff
between menu-oriented (easy for the novice, verbose for the expert) and
command-oriented (quick for the expert, opaque to the novice) systems.
In his conclusion, Norman points out that it's important to analyze
separately these different design considerations that affect user
satisfaction.

In this particular example of a tradeoff (and perhaps you can suggest
other examples), however, I find a blind spot.  Have we so soon given
up on creating a system that is *both* command- and menu-oriented?  I am
thinking in particular of a design suggested to me by my colleague,
R. C. Call, in which a command, with arguments, can equally well be
seen in the traditional sense as in a climb down a menu tree with
typeahead.  For example, in a tree that looks like:

              -----Main Menu----
              SEARCH   LIST   
             /
   --Search Menu--
 AUTHOR TITLE SUBJECT
  |
<supply 
 author
 name>

, the command SEARCH AUTHOR JONES, J. can be seen by people who are
used to operating systems as the SEARCH command with arguments
AUTHOR and JONES.  A novice user, however, might begin by typing only
SEARCH.  The system is so designed that if a particular command sequence
doesn't land one on a terminal node, a menu full of choices is presented
the the level at which they've landed.  So our novice would see the
"Search Menu".

The (yes) tradeoff to this approach is that after executing a terminal
node, you're always returned to the Main Menu, so you can't sit around
in 'Search' trying out 'AUTHOR', 'TITLE', etc. searches, but must
type SEARCH every iteration.  Perhaps this feature could be a toggle?

This is only a first shot at such a system, meant to stimulate discussion
not necessarily of this particular design but of other possible schemes
in which the interface is intelligent enough to recognize the user's
level of ability.

We shouldn't ignore the Future, either, as a resident Expert system in
such an interface might be just the thing to tailor output based on
a constructed cognitive model of the user.

Right now I have written a standard climb-through-the-branches menu
interface (with a few places where we were forced to compromise and
allow some "Tarzan" swinging between branches without returning to
the root), where you stick at whatever node you're at and have
to explicitly type 'R' (for 'Return') to climb towards the root.

In a few weeks, I'm considering implementing something of the above
design and I'd appreciate any comments, critical included.  

Also if any of you folks are writing interfaces for bibliographic
databases (especially online card catalogs like mine) I'd like to hear
from you.

thanks in advance,
  Lorien Y. Pratt
  Dartmouth College Library
  Hanover, NH  03755

  decvax!dartvax!dartlib!lorien