Abstract
The purpose of this tutorial is to provide an overview of
practical methods and techniques for managing the process
of designing good user interfaces. The tutorial is
organized around a typical, modern project life cycle, and
presents human factors methods which can be applied at
different points in the development process. Methods and
techniques presented include not only information
gathering, design and evaluation techniques, but also
organizational and managerial strategies.
Keywords
System design, implementation and use, analysis methods,
managing human factors in system development, cost-
benefit analysis, organization of human factors
TUTORIAL CONTENT
The purpose of this tutorial is to provide an overview of
practical methods and techniques available for designing
good user interfaces which can be applied by software
managers, designers and developers during the course of
product development. Methods and techniques presented
include not only design and evaluation techniques,
but also organizational and managerial
strategies.
The success of any interactive computer system - from
either a vendor or user point of view - depends on a
number of different factors, including functionality,
performance, cost, reliability, maintenance, and the quality
of the user interface. All these factors are of roughly equal
importance, and a serious failure in any one of them can
cause a failure of the system as a whole.
In the past, least attention has been paid to the human
interface, as designers, developers and customers focused
on maximum functionality within cost and performance
constraints. Recently, however, there is a growing
recognition that the success of computer products in the
marketplace, and as tools in business environments,
depends to a significant degree on the quality of the human
interface.
Ad hoc design based on intuition and limited experience is
not enough to insure the successful design of this aspect of
the system. The literature offers many principles of good
interface design. These principles can be helpful
guidelines for designers. However, even if every designer
in a software development organization was well versed in
these design principles, this would not be enough to ensure
good interface design. Many of the available design
principles are based on experts' intuitions, rather than on
hard data. Usually for any given design problem, they will
come in direct conflict with each other, and there are no
algorithms for making the tradeoffs. Design principles
only bring the designer's attention to the issues which
should be considered. There is no "cookbook" approach to
applying these principles to ensure good interface design.
User interface design is a matter of compromise and
tradeoff. We want powerful functionality, but a simple,
clear interface. We want ease of use but also ease of
learning. We want a system that is flexible but also one
that provides good error handling. We strive for
consistency across all aspects of the interface, but also to
optimize individual operations. We want an "intelligent"
and sophisticated interface, but also good performance and
low cost. The interface designer finds him or herself
constantly confronted with these kinds of conflicting
goals. What is needed is a collection of techniques and
methods for resolving such design dilemmas on a case-by-
case basis.
Probably the most common way of resolving these
conflicts and tradeoffs is "design by committee".
Everyone on the project team gets in a room, and a rather
unstructured debate ensues. Designers argue for their
favorite design alternatives and counter arguments are put
forth. These meetings often have no explicit agenda, no
specific time frame, and often no leader or single
recognized decision maker. Individual, often trivial and
inconsequential design decisions often take hours, days or
even weeks to resolve, and usually the winning proposal is
determined by the sheer persistence and stamina of its
advocate, rather than its overall merit. Decisions are made
in this manner and never tested in any objective way
against agreed upon and prioritized goals.
Such meetings are, for the most part, an inexcusable waste
of valuable time. The irony of this approach is that
managers who scoff at the idea of prototyping and iterative
design and testing as being unrealistic, too expensive and
too time consuming, often engage in or condone the
"design by committee" approach. However, prototyping
and objective testing methods could easily be carried out
in less time than is often spent in these endless design
meetings which do not necessarily result in good design
decisions. This is generally true of all aspects of system
design, and is just as true in the case of user interface
design.
The methods and techniques presented in this course are
not new, and not invented within the computer industry.
They have long been employed by other industries
producing other consumer products. In fact its interesting
to contrast product development in other industries with
that in the computer industry. Shneiderman (1980) draws
this contrast nicely:
"Henry Dreyfuss . . . , a leading industrial
designer responsible for plane, train, boat
interiors, and dozens of familiar consumer
items, provides useful guidance in Designing
for People. He devotes a full chapter to the
experience of designing the 500-type
telephone, the standard rotary dial desk
model. Measurements of 2000 human faces
were used to determine the spacing between
the mouth and ear pieces. After consulting
with Bell System engineers about the layout
of electronic components, 2500 sketches for
possible designs were made. Numerous
variations of the handgrip were considered
until the familiar rounded-off rectangular
cross section was adopted. Variations on dial
and faceplate were tested till a four and one
quarter inch diameter faceplate was selected
to replace the older three-inch diameter
version. Placement of the letters and
numbers was studied, the angle of the dial
was adjusted to reduce glare and the cradle
was modified to minimize the receiver-off-
the-hook problem. Accurate layout drawings
were made for all the variations and finally
clay and plaster models were built to
compare leading designs. Then testing
began.
This process contrasts sharply with most
interactive system development experiences
where designs are hastily proposed and
evaluated informally. Alternative command
structures, error handling procedures, or
screen formats rarely get implemented for
pilot testing purposes."
Indeed, most of us who have worked on software
development projects can hardly imagine working in the
manner described above. Software interface design tends
to be done on the fly.
At worst, designers operate in a vacuum, with little prior
experience and no interaction with potential users to guide
them. At best the interface designers are experienced and
have learned from feedback from users of earlier systems.
Even so, the technology changes so quickly that even
experienced designers constantly confront new design
possibilities they have no prior experience with.
Software developers need methods and techniques to help
them effectively manage the design of the user interface,
and make good design decisions for a given product with
its particular set of end users. The purpose of this tutorial
is to present and discuss such methods and techniques
within the overall context of a typical modern software
development life cycle. Practice - rather than theory - is
the main focus of this tutorial.
The tutorial is organized around a modern project life
cycle, and presents an overview of human factors methods
which can be applied at different points in the
development process. Topics include:
- Organizational and managerial strategies which
support interface design,
- Information gathering methods which support
preliminary design and specification,
- Design methods , and
- Testing and evaluation methods for testing
simulations and prototypes.
During this tutorial, managers and developers learn to:
- Analyze the costs and benefits of applying human
factors methods during product development,
- Design organizational structures and processes to
foster good interface design,
- Plan for and manage the use of human factors
techniques within the overall project plan,
- Effectively evaluate design alternatives by defining
and prioritizing objective goals and criteria, and
- Strengthen interface design decisions by applying
quick and inexpensive interface evaluation techniques.
References
1. Shneiderman, Ben Software Psychology:
Human Factors in Computer and Information
Systems. Winthrop Publishers, Inc.,
Cambridge, Massachusetts, 1980.