Joe's Jottings

Jottings Number 33, by Joe Podolsky:

From: uunet!HP-PaloAlto-om4.om.hp.com!JOE_PODOLSKY

Date: Tue, 13 Jun 95 15:14:31 -0700

The June, 1995 issue of "Communications of the ACM" is focused
on "cognition and software development."  It contains several
articles about "research in the mental aspects of programming."

Interest in this topic is, of course, not new.  One of the most
important books of the 1970's, for example, was Gerald
Weinberg's, "Psychology of Computer Programming."  Its main
contribution was simple.  Weinberg told us that programmers had
egos and that those egos got in the way of the goodness of their
work.  After reading the book, we all talked about "egoless
programming," and that led us to walkthroughs and finally to
formal inspections, which is still arguably the best available
tool for improving the quality of systems, software, and process
development.  (If you aren't completely familiar with formal
inspections, call Tom Van Slack in Corporate Engineering right
now - telnet 857-6504.)  Similarly, Tom DeMarco and Tim Lister
wrote "Peopleware"  in 1987 stressing the human aspects of the
development process.

One of the articles in the "Communications" is "From Programming
Environments to Environments for Designing" by Terry Winograd, a
well-known computer science professor at Stanford University. 
Winograd focuses, not on programming, but on the "wider picture
of software design..."  He quotes a 1991 comment by Lotus
founder Mitch Kapor in which he said, "The lack of usability of
software and poor design of programs is the secret shame of the
industry."

Winograd points out that all technology goes through three
distinct phases, and he uses the radio, the automobile, and the
telephone as examples.  Phase 1 is technology driven where the
early adopters play with the invention for the challenge and
novelty.  He notes that we owe a lot to the "brave pioneers who
tackled the Altair or the Osborne."

Phase 2 focuses on productivity-driven issues.  Here the
mainstream pragmatists want to see business results, increased
efficiency, productivity, and/or profits.  

Phase 3, then, is appeal driven.  In this phase, we go after
discretionary users.  "The emphasis is not on measurable
cost/benefit analyses, but on whether it is likable, beautiful,
satisfying, or exciting."  This phase is about people choosing
convertibles over Ford Tauruses, or multimedia laptops over UNIX
workstations.

The hardware examples are clear.  But where are we in
information systems?  We are certainly well-into phase 2, at
least.  But have we made it yet to phase 3?  If so, are we
prepared to offer our customers "likable, beautiful, satisfying,
or exciting" systems?  And, if not, what must we do to get there?

Winograd suggests four "environments for software design" that
will help us flourish in phase 3.  The first is "responsive
prototyping media," specifically, interactive programming, and
responsive prototyping media.  He talks about using these
techniques to "sculpt" the system, having a kind of "reflective
conversation with the (design) materials."  Along these same
lines are tools such as "rough hand sketches and scenarios,"
"low-fidelity prototypes," "programmed facades," and
"prototype-oriented" languages."

His second environment consists of "user conceptual models" for
specifications.  When Winograd talks about conceptual models, he
means the "virtuality that lies behind the interface seen and
manipulated by the user."  Software designers are free to create
worlds of their own choosing, metaphors to the real world, or
even worlds that are impossible outside cyberspace.  Those
degrees of freedom are the heart of most computer games, but are
almost never explored in the more rigid confines of business
processes.  But why are we limiting ourselves in this way?  Why
are our systems only in black and white when we have a full
spectrum of colors on our palette?

His third environment talks about "design languages."  He
stresses the need for "reusability," not necessarily for design
efficiency but for the creativity that comes from collaboration,
from building with and on the ideas of others.  He talks about
languages encouraging intuitive behavior.  He talks about
"genre" and "style," words that come from the worlds of art and
fashion and philosophy.

And last and not least, Winograd talks about the environment of
"participatory design."  Yes, invite the user into the design
session, but, more importantly, invite the technical folks into
the world that the system will be used in.  If you need a fancy
term to satisfy your boss, Winograd suggests calling it
"contextual inquiry."  And he quickly translates that into,
"Follow your user home."  He warns that we must looks at systems
used not only by individuals, but in their organizational
context, that we strive for the "co-evolution of (process)
practices, tools, and social systems."

This is a pretty ambitious challenge for an information systems
community that still struggles to deliver software packages
on-time and on-budget, but it's what our users expect. 
Spreadsheets were pretty exciting ten years ago, but the people
in our processes now want to "fly" through their data bases like
the actors did in the movie, "Jurassic Park."   Have any of you
seen "cool" information systems?  I haven't, but I sure would
like to.

We're entering Winograd's phase 3.  The only question is whether
we will lead the way there...or be dragged there by the Nintendo
sensibilities of our customers.


Regards,


Joe

Back to Joe's Jottings