🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.cog-eng
Article #954

Consistency

#954
From: Chuck Clanton
Date: Wed, 15 Feb 1989 20:25
88 lines
6096 bytes
   - Foolish consistency is the hobgoblin of little minds.  (?eliot?)
   - For every principle of user interface design, there is an equal
     and opposite principle of user interface design.  clanton

Before arguing the principle of consistency, it is important to
understand what purpose is served by principles of interface design.
I can see two.  Interface design is a communications art much like
literature, graphics design (not to be confused the entirely different
subject of with computer graphics), photography and the decorative arts.  
How do you learn to write, take photographs, or become a doctor?  You 
can start with education, but the real learning comes from practice and 
experience.  A statement of principles has some value not because it 
defines what is right, but because it provides a hook on which to hang
examples and a focus for discussion and thought.  The goal for the 
budding interface designer is to develop taste and style.

Another purpose, equally important, of a statement of principles is to 
help mediocre designers produce competent interfaces.    Most software 
interfaces are going to be produced by ordinary programmers in the 
forseeable future.  Not everyone needs to be a James Joyce, but Strunk 
and White can help the majority of people to write an understandable 
paragraph.  In this sense, fashion (like the Mac "style" guide) can 
substitute for style (the ability of a skilled designer to create an
interface that is distinctive and usable).

Judged on the grounds of meeting these needs, the principle of
consistency has a serious problem of ambiguity.  What should be
consistent with what?  "Consistent with user expectations" is almost
tautological, and where it is not, it is wrong.  Software interface can
be analyzed in terms of three levels of interaction.  The lexical level 
consists of components like key presses and mouse motions.  The 
syntactic level organizes these components into distinct interactions 
such as menu selection and text highlighting.  The semantic level 
provides the users perception of the what the software is doing at the 
conceptual level.  As with natural language, there is much to gain from 
a consistent alphabet of components.  These should be consistent on both 
the input and output sides.  I would not typically design an interface 
to consist of double clicks, triple clicks, quadruple clicks, etc.  I 
strive for a small set of useful primitives.  All labels are in the same 
typeface, and only a small set of point sizes are used as needed.  
Redundancy is used to clarify the interface; user enterable fields have a 
different typeface as well as other indications of their distinction from 
labels.  The limited and consistently used lexical elements are composed 
to form the syntax of the interface.  The syntax is represented by 
interactors or widgets, two words gaining popularity to describe 
interactive software components for building interfaces.  Again, I 
believe that a small set of such components should be used to build an 
interface.  The user can learn how to interact with each widget then carry 
that understanding over to other instances independent of the semantics 
of the widget in the application.  

At the semantic level, the principle of consistency has little value.
Like language, lexical and syntactic consistency makes it easier to 
master the tools of expression and interaction, but the richness of what 
can and must be expressed is so great that I can not imagine reducing it 
to any regular form.  In the last decade, I have been involved in the 
design of perhaps a score of application interfaces, as well as the 
internal design of perhaps a third of those.  These systems range from 
process control to office automation.  One thing is certain, the face 
of these programs does not match the innards.  While the internal 
algorithms are often interesting, they are formal and regular because 
that is how you "design in" reliability, performance, maintainability, 
and all those other software engineering virtues.  User expectations 
are neither formal nor regular.  Matching the internal design to the 
user's needs is the job of the interface, which must clarify the 
relationship of the machine's world with that of the user.  My experience 
is abounding with proof that interface consistency at the conceptual 
level is unlikely to match the user's expectations and desires.  

Of course, I also have a theory to explain the highly irregular nature
of the user's requirements based on the sociology of organizations from 
which those requirements emerge.  In brief, reality presents complex 
challenges, and organizations evolve their models for addressing those 
challenges over time.  At any point in time, the current solution 
contains the entire ontogeny of the organization's past in dealing 
with a problem.   Like the layers of vegetation and rock in the earth's
crust, you can see this stratigraphy of solutions in the language and
concepts used to describe the requirements, as well as whatever current
systems are used which the software must reflect.  The QWERTY keyboard
of a color bitmapped computer workstation is a very simple example.
Another fundamental reason for inconsistent semantics has to do with
the complexity of modeling reality.  The behavior of the real world is
so complex that people and organizations use heuristics rather than 
analytic solutions.  A characteristic of heuristics is their limited domain, 
and sudden inapplicability when certain conditions are not met.  This shows
up in interface design requirements as irregularities and apparent
contradictions at the borders between two methods of solutions.
Technical Details
Message-ID: <338@aratar.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!mcvax!cernvax!pan!aratar!chac

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!mcvax!cernvax!pan!aratar!chac
From: chac@aratar.UUCP (Chuck Clanton)
Newsgroups: comp.cog-eng
Subject: Consistency
Message-ID: <338@aratar.UUCP>
Date: 15 Feb 89 20:25:04 GMT
Reply-To: chac@aratar.UUCP (Chuck Clanton)
Organization: Adasoft AG, Solothurn, Switzerland
Lines: 88