[net.cog-eng] User Interfaces

stevesu@bronze.UUCP (Steve Summit) (08/31/83)

It's great to see so much discussion taking place on this topic. 
I sincerely hope that some real work will go into designing good
user interfaces as well as just discussing them on the net. 
(net.cog-eng is already showing little traces of the flaming and
redundant verbiage that plagues other newsgroups.)  This is a
VERY HARD problem, and rationalizing it away ("novice users don't
stay novices for long, so why worry") is not going to solve
anything.

I would suspect that the vast majority of those reading this (or
any) newsgroup, and certainly all of those submitting articles,
are reasonably sophisticated computer users.  Sadly, it is
virtually impossible for us to put ourselves in the proper frame
of mind of the "novice" user.  But, as several people have
already explained, a good, practical user interface has to be
accessible to that novice user.  (By "practical" I mean usable,
in an end application by "users," as opposed to a system
development atmosphere by "hackers.") I myself have said that I
keep the user in mind and write "friendly" user interfaces, but I
freely admit that I have often failed.  "Friendly user interface"
is a buzzword just like "ergometric," and Mel Haas has
demonstrated how inaccurate an in-fashion buzzword can be when
improperly applied.

The way to write a good user interface is to think about it very,
very hard, preferably before you start coding it.  (There is a
good argument that says that a software package should be used by
its implementer so that a truly usable interface can evolve as
the system is implemented and debugged.  It's true that you may
have no idea what the most natural interface is until you've
begun to use the system.  On the other hand, it's incredibly easy
to become committed to an idea, especially when you get used to
it.  It may not be nearly as natural to someone who hasn't grown
up with it.)

I do not believe in "artificial intelligence," but a user
interface can be "clever," i.e. cleverly written by an
intelligent programmer, so that it supplies reasonable default
conditions (overridable, of course -- "small is beautiful"), does
what the user wants in the common situations, and figures what
the user wants in more complex situations, while letting the user
specify things in a natural way (for the user). Obviously some
kind of prompting/menu scheme is necessary to guide the user who
has an idea about what he wants to do but hasn't learned or has
forgotten how to do it.

The ideal user interface (call me an idealistic dreamer, I admit
it) would be so natural and easy to use that it could be used
identically (without having to drastically alter its mode of
operation) by the novice, casual user, expert, or forgetful
expert.  Unfortunately, I cannot offer any specific clues on how
to do that easily.  As an example, though, I would like to point
out my choice of the world's best high-tech interface -- the
telephone.  It has exactly two controls, the dial and the
hookswitch, and the hookswitch is "transparent" in that it works
automatically.  There are millions and millions of these things
all over the country, everyone has access to them, and ANYONE can
use them.  Furthermore, they can be used to call just about
anywhere in the world (direct-dialed, without operator
assistance).  Underlying that telephone, I might add, is the most
reliable, well engineered, upward and downward compatible,
cost-effective system I know of.  (Don't knock the Bell system. 
Isn't thirty cents a minute an absurdly low rate for a system
that lets you talk to someone all the way across the country, in
the midst of a power outage, on a phone that might have been made
in 1920?)

You can really appreciate the cleanliness of the traditional
telephone user interface if you try to use one of the newfangled
private branch exchange (PBX) systems, where you have to flash
the hookswitch and punch control codes to access all the nifty
new features.  Many people have a very hard time with these new
phones, because the added complexity is too confusing, unnatural,
and hard to remember.

It is not fair to put the burden on the novice user, by making
him learn about, and adapt to, a computer that you (or his
manager, or somebody) has more or less thrust upon him.  If the
alleged "computer revolution" forces everyone to become "computer
literate" and conform to computerized ways of doing things, then
computers have in fact "taken over" in a very unfortunate way.

					Steve Summit
 					Tektronix, Inc.
 					503-629-1069
					textronix!bronze!stevesu

P.S.  A very good article entitled "How To Design Friendly
Software" is floating around which addresses this issue in great
detail, with lots of specific hints on problems to avoid and
methods to overcome them. It was written by Paul Heckel, of
QuickView Systems, 146 Main St. Suite 404, Los Altos, CA  94022. 
The draft I have indicates that it was serialized in Infoworld
from July 12 through October 25, 1982, and that it will be
published in book form in 1982.  (I do not know Mr. Heckel and
have no idea if he is willing or able to distribute lots of
copies at this point.)
					scs