Dealing with ghosts: managing the user experience of
autonomic computing.
by Russell, Daniel M.^Maglio, Paul P.^Dordick, Rowan^Neti,
Chalapathy
Autonomic computing systems manage themselves, taking self-directed
action when deemed appropriate and making choices about what needs to be
done and how exactly to do it. Choices are made and actions are taken in
the hope of reducing overall system complexity and cost. Yet, this idea
of autonomic computing is not entirely new or surprising. For instance,
computer systems have been managing their resource pools for years:
memory is allocated and freed on a regular basis without human
intervention, program components are brought into service and taken out
of service when appropriate, memory is monitored for errors and
corrected on-the-fly deep within random access memory, and communication
channels are monitored for mistakes, which are automatically corrected
when they arise. Nevertheless, computing systems are now so large and
complex that moment-by-moment human management is often the dominant
cost. (1,2) There is a need for computing systems to take care of
themselves at a higher level, eliminating much of what is done today by
human monitoring, maintenance, and control.
The key analogy of autonomic computing is that of the autonomic
nervous system, which takes care of many low-level functions in animals.
For example, pupils dilate, stomachs balance enzyme and acid levels, and
body posture and balance are maintained under a wide variety of
conditions. Although humans are sometimes aware of the functioning of
the autonomic nervous system, autonomic functions are, for the most
part, unconscious and self-regulating.
Autonomic body functions are implemented by a mostly separate
system of nerves--the sympathetic and parasympathetic nerves, associated
ganglia, and a few others--a system that has been refined and debugged
by evolution. Behaviors created by the autonomic nervous system are
primarily direct responses to internally and externally sensed
environmental conditions. Breathing and heart rate are modulated by
levels of carbon dioxide and other chemical signals in the blood. The
"fight-or-flight" response is a rapid, coordinated release of
hormones to prepare the body for sudden immediate action required in
response to a perceived threat.
Although the autonomic nervous system is finely honed and
wonderfully responsive, it has become what it is in response to
evolutionary pressures. In many ways, it is a system that best fits
hunter-gatherers on an African savanna. The fight-or-flight response, so
useful when confronted with an immediate threat requiring rapid physical
response, is often inappropriate in the modern world. As humans, we
suffer from constant pulls on the chain of our autonomic nervous
system--stressors in our environment invoke this system in ways that end
up causing stress-related disorders. Rather than constantly confronting
relatively short-term physical threats, modern life calls for more calm,
measured responses over a long period, such as those required when
sitting before a computer screen, while driving a car, performing
difficult surgery, or awaiting the results of a grant review. (3,4) Yet
given extended periods of stress, the autonomic nervous system interacts
with other systems, both internal and external, to produce less than
optimal results. Of course, the autonomic nervous system is merely a
metaphor, suggesting sophisticated self-managing and self-regulating
systems, rather than a biologically plausible guide for design. But if
we are not careful in developing autonomic computer systems, we might
design ourselves into the same fate: self-regulating systems that suffer
from unintended and unforeseen interactions that lead to undesirable
results. In particular, we focus here on the human-computer interaction
aspects of this new kind of system, or the user experience of autonomic
computing.
In what follows, we tell our story in four parts. First, we
consider how users might view autonomic systems, arguing that as systems
become more automatic, they often become less understandable. Second, we
describe autonomic computing from the perspective of the system, arguing
that a three-layer model describes nearly all autonomic systems. Third,
we examine several existing systems that have autonomic properties, and
we learn some lessons about what works and does not work from the
user's perspective. Finally, based on this analysis, we discuss
several challenges that will be faced by autonomic system designers.
The user view of autonomic computing: Ghosts in the machine
When systems manage their own very high-level tasks, their
behaviors and the interaction of their behaviors might be unpredictable
and inscrutable, complicated, and hidden from view. From a user's
perspective, an autonomic system might seem to have "magical"
properties, where things happen without apparent or determinate causes.
The basic issue for users of autonomic systems will be
understandability, which depends on the complexity of the system and the
user's trust that the system will behave in the way it has behaved
previously. Complexity results from the interactions of a variety of
systems and unexpected behaviors. Trust reflects the relationship
between user and computer, the history the two share, what the user
knows about the ability of the system to control things, what the user
has seen the system do, and how well the system has explained its
actions and decisions, among others.
Human-computer interaction is a kind of "joint activity,"
just as human-human conversation is a shared activity between
participants in a conversation. (5) To accomplish some computational
task, a person works with a computer, each side--human and
machine--contributing something to the process and over time building up
a shared understanding or common ground. There is recent evidence that
when persons interact with computers at higher and higher levels (e.g.,
verbally), the persons assume "human" sorts of common ground
at the start. (6,7) If this expectation is not met--and yet the computer
seems to be a high-level participant in some joint activity--it might
well seem as though there is a "ghost in the machine," one
that users must understand to be effective participants themselves.
Thus, being "magical" is what is just out of reach of
understanding.
The phrase "ghost in the machine" comes from Ryle, (8)
who pejoratively described the Cartesian view of mental states as the
"ghost" that inhabits physical brains, doing invisible work
with perceivable consequences. In fact, Ryle argued convincingly against
the Cartesian view of a mind-body dualism, showing that the distinction
between mind and body was based on a category-mistake, supposing that
the mind is the same kind of entity as the body or brain and so must be
explained in the same way. Ryle comes to the view that minds are not
like brains but, rather, minds are simply what brains do, made of a
constellation of interacting abilities and skills. Now, Ryle may further
inspire us in the structure of our argument. If a modest goal of
autonomic computing is to eliminate common and time-consuming user
tasks, then computational processes can replace some user tasks. If we
take the supposition further, imagining that the ultimate goal of
autonomic computing is to eliminate all user tasks, then it follows that
user tasks and computational processes are wholly interchangeable; that
is, what users do and what computers do are relatively the same. Is this
a reasonable conclusion? We think not. Though it may be argued that
thought is a computational process and, therefore, that user activities
and computational activities amount to the same kind of activity, from a
human-computer interaction perspective, it may also be argued that users
and computers serve different purposes: computers are tools that enable
users to accomplish certain jobs. In this case, user and computer are
different kinds of entities: controller and controlled. Moreover, if we
suppose that humans and computers have different abilities--do different
things more or less easily than each other--then it is appropriate to
distribute the computational load between users and computers. For
instance, people are good at many kinds of visual pattern recognition,
whereas computers are good at counting and correlating. Given these
different abilities, it might be best to have a computational process
analyze some data and then display the data to users who can easily pick
out patterns. This approach is the one taken by work in data
visualization. The bottom line is that it makes sense to combine the
processing of people and machines to create a more effective overall
computation than can be done by either one alone.
COPYRIGHT 2003 All Rights
Reserved. Reproduced with permission of the copyright holder. Further reproduction or distribution is prohibited without permission.
Copyright 2003, Gale Group. All rights
reserved. Gale Group is a Thomson Corporation Company.
NOTE: All illustrations and photos have been removed from this article.