CSC 484 Lecture Notes Week 4, Part 1
Understanding and Conceptualizing Interaction
-
Relevant Reading -- chapter 2 of the book.
-
Introduction to Chapter 2 (Section 2.1).
-
Speaking on behalf of software engineers, I think this chapter displays a
pretty significant misunderstanding of what modern software engineering is
about.
-
The introductory question/answer sequence sets up a would-be dichotomy that
does not really exist.
-
They start by posing the (paraphrased) questions,
"In designing a new application, would you start by coding? Or, would you
start by talking to users and seeing what else is out there?"
-
Their answer
"Interaction designers would do the latter."
begs the question
"Who wouldn't?"
-
A well-trained software engineer, even the most extreme of the extreme
programmers, would answer the questions the same way as the ID folks answer.
-
I.e., they'd start by talking to users and seeing what else is out there.
-
This introduction sets the stage for a largely false dichotomy between what the
authors tend to see as the following actors:
-
the rather clueless software engineers, versus
-
the inspired interaction designers,
the latter seeing it as their mission to enlighten the former on the importance
of involving users in a design.
-
In my experience, software engineers really aren't as clueless as they're made
out to be.
-
There have been more than thirty years of research in software requirements and
modeling.
-
This research addresses many of the same issues discussed in this chapter.
-
The research has many good ideas on how effectively to solve problems, and to
be creative doing it.
-
With particular regard to Agile development, the following statement on Page 44
is antithetical:
"... Once ideas are committed to code, they become much harder to throw
away".
-
Agile developers say precisely the opposite, since their methodology revolves
around writing small increments of code, which are entirely disposable if
necessary.
-
Even for fully traditional SE, the idea of "committed to code" does not apply
to throw-away prototypes, since the very name suggests they are designed to be
thrown away.
-
All that having been said, the chapter does provide some useful information;
here's my list of hits and misses:
-
Hits:
-
Provoking thought, by challenging the assumptions and beliefs of engineers.
-
The importance of understanding the problem space, in Section 2.2.
-
Analysis of the interaction types, in Section 2.3.4.
-
The interview with Terry Winograd, at the end.
-
Note that he talks a lot about of "people", "products", and "examples".
-
He never mentions "conceptual models", "metaphors", or "analogies".
-
Misses:
-
The misunderstanding of SE.
-
The maltreatment of conceptual modeling -- high on aphorism, deficient on
useful suggestions.
-
Understanding the problem space (Section 2.2).
-
What you should take away from this section are two things:
-
The importance of having a problem to solve.
-
The notion of identifying and challenging your design assumptions.
-
The engineer's common refrain -- "What's the problem here?"
-
You ask this whether you're improving on an existing product, or coming up with
a brand new idea.
-
The bulleted list at the end of the section summarizes some useful questions in
this regard.
-
What problems are you trying to solve?
-
Why do these problems exist?
-
How is your new design going to solve the problems?
-
If you've not identified any specific problems 1, but are designing for a brand new user
experience, how do your ideas make things better than the current way of doing
things?
-
As part of your work on Assignment 2, do the following in a team meeting:
-
Answer each of the questions above, i.e., what's your problem, how are you
going to make things better?
-
Identify the assumptions you're making, and how you're going to validate them.
-
For example, you may identify some underlying assumption about which you
weren't specifically cognizant, and the team may determine on the spot that the
assumption is not valid; this means you should not base any of your ideas on
it.
-
Alternatively, you may identify an assumption you think is true, but you cannot
validate immediately; in this case, come up with some ways to do validation,
such as asking users appropriate questions.
-
Conceptualizing the design space (Section 2.3).
-
The authors need to get straight what we're trying to do. Is it
-
trying to solve a particular problem, or
-
trying to build a product that will appeal to the largest possible user
community, or
-
trying to invent some yet undreamed of new form of interaction
-
If it's the first of these, then the conceptual model is based on a specific
understanding of real and concrete user problems.
-
If the second, then the conceptual model is based on a generalized
understanding of potential users.
-
If it's the last, then the conceptual model is whatever a design team might
dream of.
-
Conceptual models, and examples thereof (Sections 2.3.1 and
2.3.2).
-
To start with, the 1996 Liddle quote (on Page 51) is seriously out of date:
"The most important thing to design is the user's conceptual model. ...
That is almost exactly the opposite of how most software is designed."
-
In modern (post-1996) SE, conceptual models are an important part of even
mundane software products.
-
They start with introductory sections of the requirements document, or in a
stand-alone document such as a "Vision and Scope".
-
Models then pervade the rest of the development, including formalizing the
requirements, specifying software behavior, and defining the program
architecture.
-
A major question that the book does not address is the following:
Is the conceptual model a specific, concrete artifact of the ID process, or
is it embodied in other process artifact(s)?
-
If the latter, what exactly does it look like?
-
In what language or notation is it stated?
-
The best the book can come up with is to suggest that it's expressed in the
"lingua franca used by the design team".
-
What the book fails to recognize is how that "lingua franca" of the conceptual
design is expressed specifically in the the storyboards and scenarios.
-
If you believe in affordance, a concrete user interface should fully embody
and convey the conceptual design.
-
It does so to the end users, as well as to design team.
-
If a concrete interface is not so affordant, i.e., if it fails to make clear
the underlying conceptual model, then
-
it's a bad interface, or
-
it's a bad concept
-
Either way, the interface itself is the artifact that represents the underlying
conceptual model.
-
Direct evidence for this is provided book by authors themselves, in Section
2.3.2.
-
What is the "lingua franca" they choose to convey the conceptual models of the
"best practice" examples?
-
It's pictures of concrete user interfaces!
-
So -- a well-designed user interface fully affords, and hence defines
the underlying conceptual design.
-
The metaphors and analogies should be readily apparent in the
interface layout
-
For example, an electronic spreadsheet looks like the paper ledger it models.
-
The Xerox Star UI looks like a desktop.
-
The screen elements are familiar items from a non-electronic desktop, such as
paper documents.
-
There are desk accessories, such as clocks and calendars, easily recognizable
as such.
-
The conceptual model lexicon is comprised of the words used skillfully
in the display of information.
-
Other aspects of a conceptual model are conveyed most effectively by an
operational prototype.
-
The Xerox Star concept of drag-and-drop is very difficult to convey in any form
other than prototypical demonstration.
-
The direct manipulation behavior of the Star interface far better illustrated
by example than any form of ontology.
-
None of the preceding discussion means that early versions of a concrete
interface need look specifically like the final product.
-
Winograd and others say that designers should not be tied to specific forms of
interface "widgets".
-
E.g., don't get stuck in a conventional menu-based UI, when designing something
that should have a natural language interface.
-
Through an evolutionary process, the conceptual model is conveyed in a
succession of interfaces, from storyboard sketches, to illustrated scenarios,
to interface prototypes.
-
As a thought experiment -- consider how Steven Spielberg presents his
conceptual model for a new picture.
-
Is it with some storyboards and a plot outline?
-
Or is it with some tome about metaphor and analogies?
-
From what I've read, it's the storyboards
-
He leaves it to the movie critics to wax idiotic about metaphor.
-
Or, consider how Frank Lloyd Wright conveyed his conceputal model for a
building.
-
He did it with sketches of the building and its surroundings.
-
It was the civil engineers who did the modeling.
-
Some specific comments on the Johnson and Henderson paper that forms
the basis of Section 2.3.1.
-
Henderson and Johnson profoundly misunderstand conceptual modeling, in two
fundamental ways:
-
the role played by software engineers and others in the development of
conceptual modeling principles;
-
the way that concrete examples define and convey a conceptual model
via affordance.
-
Regarding the first misunderstanding, the authors make the following statement,
in the introduction:
"... our experience with our clients indicates that conceptual models of
this sort are almost completely unknown outside of the HCI community,
especially among Web designers and software programmers."
-
I respectfully submit that their experience is bogus.
-
Conceptual models "of this sort" have been the subject of SE research for well
over 30 years; to whit
-
The use of metaphors and analogies are part of what SEs have long called
domain analysis.
-
Representing concepts as objects and operations dates back as far as the early
1970s, in languages like PSL and SADT, and extends straight through to UML 2.0
today.
-
Relationships and mappings were also fundamental parts of PSL and SADT, as well
as ER diagrams.
-
Artificial intelligence people have been working on similar concepts and
notations for ontologies, for just as long.
-
Johnson and Henderson may find the SE notations stodgy and too "engineered",
but they offer absolutely nothing as a constructive alternative.
-
In the area of modeling, the Johnson and Henderson have more to learn from
software engineers, than the other way around.
-
On the second misunderstanding, they consistently miss the point about the
power of concrete examples.
-
Consider one of the first "concepts" they site -- whether to represent data as
a flat list or hierarchy.
-
If this is a fundamental and high-level concept, then it should be immediately
obvious by looking at some aspect of the high-level user interface, not in some
other "lingua franca" of the designers.
-
In the beginning of the paper, the authors say that "How the system
presents itself to users" is does not convey a conceptual design.
-
If it's does not, then the users have been left out, and by the authors' own
admission, they cannot be.
-
Further, if the authors want to say that a storyboard is not in fact a means to
convey a conceptual design, then they should give some other specific way to do
so.
-
They do not do so, nor do I think they can.
-
Interface metaphors and analogies.
-
They're fine, however:
-
Choose ones that are understandable and compelling to users.
-
Don't over do it.
-
In the book, the part on "opposition to using metaphors" is longer than the
other parts; they got that right.
-
Interaction types (Section 2.3.4).
-
This is some useful information.
-
They present four specific types:
-
Instructing -- users instruct, i.e, command the
system to do things.
-
Conversing -- users have a two-way dialog with the
system.
-
Manipulating -- users open, close, move, edit data
provided by the system.
-
Exploring -- users move through a large space or
virtual environment.
-
These types are definitely not mutually exclusive.
-
An interactive system can, and often does provide more than one of these types
of interaction.
-
Allowing users to seamlessly progress among the different types is an important
part of a well-integrated user experience.
-
Instructing Interfaces (Pages 65-67)
-
Iconic UIs are generally easier to use and less error prone than command-
language.
-
Good reasons to use a command-language UI:
-
The number of instructions is too large to map well to icons.
-
The interface needs to be scriptable, e.g., users can write scripts to perform
repetitive tasks
-
Questionable reasons to use a command language UI:
-
It's easier to implement, e.g.,
-
a small vending machine keypad, instead of a large back-lit iconic keypad
-
a program with a simple text UI, instead of a more complicated GUI
-
It's easer to maintain, e.g.,
-
it's easier to re-map the vending machine code "B2" to a different product;
-
it's easier to maintain a non-GUI program when it's deployed on multiple
platforms.
-
Here "questionable" means that the UI itself is not optimal, but there may be
other trade-offs involved that lead to the selection of a sub-optimal UI.
-
Conversing Interface (Pages 67-70).
-
These UIs involve a two-way conversation, and assume therefore that the system
has enough knowledge to communicate effectively with the human.
-
Good reasons to use a conversing UI.
-
The user has little or no knowledge of the available commands.
-
The system has enough data and intelligence to provide effective answers to
general questions.
-
"Intelligent" agents are both good and bad examples, depending on how able the
agent is to answer a particular user's questions effectively.
-
Bad reasons to use a conversing UI:
-
It's cheap, e.g., it's cheaper to have an automated phone menu than a person or
AI system give an answer.
-
It looks cute and seems intelligent, e.g., numerous online examples
that provide UIs that appear to understand some form of natural language, but
actually do not.
-
Manipulating Interfaces (Pages 70-75).
-
These UIs involve manipulating "real-world" representations of objects,
performing operations with actions that represent real-world manipulations.
E.g.,
-
dragging a file icon into a trash can
-
commanding a robotic device using a joystick
-
The term direct manipulation refers to the form of interaction that is
now ubiquitous in window-based computer UIs.
-
Good reasons to use a direct manipulation UI.
-
An action can more efficiently or effectively be performed, e.g., drawing a
graphic shape with a mouse, rather than typing in it's geometric coordinates.
-
A direct-manipulation UI can be easier to learn.
-
Reasons not to use a direct manipulation UI.
-
It takes (substantially) longer than a simple command, e.g., manual search-and-
replaces versus a "change-all" command.
-
A sufficiently expert user community can be more productive with a command-
language UI.
-
Exploring Interfaces (Pages 75-83).
-
These include virtual environments, or physical context-aware environments.
-
These are relatively new forms of interaction, about which designers still have
much to learn.
-
Virtual UIs have been effective in a number of areas, including games,
architectural exploration, and larger-scale exploration of geographic regions.
-
They have yet to take off in other areas, e.g., "smart homes".
-
Theories, models, and frameworks (Section 2.4).
-
A theory is a high level explanation of human-
computer interaction, based in particular on theories of human behavior and
cognition.
-
A model is an abstraction of human-computer
interaction, typically of a specific aspect, designed to provide the basis for
design and evaluation.
-
A framework is a prescriptive set of principles and
organizational guidelines, designed to provide a broader view of how to
approach design and evaluation.
-
Subsequent book chapters cover these subjects in further detail.
index
|
lectures
|
assignments
|
projects
|
handouts
|
solutions
|
examples
|
documentation
|
bin
|
grades
Footnotes:
1 The engineer would say, "If you don't
have a specific problem, fuhgeddaboudit." OK, so engineers do have their
limitations.