| || || |
Authors Manuel Imaz and David Benyon argue that the current approach to designing human-computer interaction doesn't serve the purpose well—and will serve it even less as the world becomes ever more digital. The problems arise, they say, as a consequenceof thinking about design in the computer's terms rather than the human terms of interacting with a machine—hence, the current emphasis on computing principles based in algorithms, mathematical theories, and formal notations. Because humans tend to interact through storiesand figurative language, the authors posit that these elements will become critical in HCI.
The first two chapters introduce the field of "thinking and cognition." The authors could have made the material much more palatable for the average reader. They cover the topics well, but the treatment is dissertation-like. I advise you to wade through these chapter, however, because they introduce principles that later chapters reference—for example, the concept of "feeling" whether an interaction is good or bad, activity theory and cognitive frames, and image schemata-source-path-goal, container, link, and so on—as structures for organizing our mental representations.
The meat of the book starts with chapter 3. First, the authors define domains (coherent-activity spheres observed and described at some abstraction level) and metaphors (cross-domain mappings). They differentiate analogies ("is like a") from metaphors, which connote "is a"—as in "Love is a journey." They explain blend as the projection of two input spaces into a new, blended space. For example, "The surgeon is a butcher" is a blend, not a metaphor, because it blends the input spaces of surgical precision and slaughterhouse carnage. Imaz and Benyonexplain the desktop metaphor from the perspectives of office-workspace and computer-command domains. The clear examples in this and subsequent chapters are commendable.
Chapter 4 briefly introduces blends encountered in HCI and software engineering (SE). Software engineers will realize how much SE usesblends and metaphors. For instance, we say, "A program is a virus," thus creating a metaphor between a program and a biological virus. Other examples—"layered architecture," "broker," and the Java "sandbox"—are also metaphors. Using metaphors helps us envision new functionalities and consequently modify requirements of the system being designed.
In chapter 5, "Software Engineering," the authors explore various modeling techniques and artifacts used in SE: entity-relation diagrams, state-transition diagrams, data-flow diagrams, and object-oriented design. Readers can see how the metaphor has changed. When the system is "an industrial plant," data-flow diagrams capture the flow of materials through a manufacturing process. When the system is "a society," an object-oriented view can capture the behaviors of people collaborating in a common purpose. The discussion reveals the gradual movement from a more machine-oriented metaphor to one that’s more people oriented.
Chapter 6 covers HCI, focusing on harmonizing people, activities, contexts, and technology in any given domain. The authors observe how technology changes the nature of the activities it supports, thus leading to changed or new requirements. HCI needs good principles to create good blends. The principles must inform design decisions, not govern them. The compromises are similar to those a software architect makes in system architecture and design. The HCI field is also constantly changing, with new input devices that lead to a plethora of new blends: the mouse, the iPod click wheel, pen computing, and so on. What's paramount in HCI is realizing that people are more interested in attaining a goal than completing a task—for example, they want to talk to someone, not press the buttons on their phone. The authors elaborate on the "persona" concept specified by Alan Cooper and establish goals and personas as the two key elements of a design—that is, purpose and people. They succeed admirably in showing how goal-oriented design is preferable to the task-oriented design that technology-focused designers use.
The "Understanding Requirements" chapter will resonate the most with software practitioners. Traditional SE expresses requirements in terms of system functionalities and features. In HCI, requirements must be expressed as scenarios and user stories that a "persona" will undertake to achieve his or her goals when using the system. This approach allows context to play an important role in requirements gathering during design and analysis. Requirements aren't diluted when someone other than the original requirements gatherer is exposed to them via documentation or verbally. The authors make a strong case for user stories and scenarios as part of requirements gathering and for use cases as simplified views of the tasks. The chapter ends with a section on patterns and how they serve as the "frames" from the OO designer's viewpoint.
The "Designing with Blends" chapter brings together all the concepts from the previous chapters and shows how to apply them to analysis and design. The process is highly iterative and involves constant movement among different abstraction levels. The authors use the design of a home information center as a case study to illustrate the concepts and applications. They show how using scenarios, metaphors, and blends lead to a different design notion than traditional approaches do.
I would have liked extra material on how to evaluate various metaphors in particular contexts. Nevertheless, Designing with Blends is an interesting read. I recommend it to senior software engineers, architects, and interaction designers who are seeking a deeper understanding of why software tends to be designed the way it does. The book is also an eye opener. After reading it, I became conscious of ways I was using metaphors and blends in the design process. The authors hope to improve design by increasing awareness of these HCI-SE elements. This book goes a long way toward turning those hopes into reality.
Sandesh Tattitali is a system architect at Flagstar Bank. Contact him at email@example.com.