Wiley Publishing, 2007. — 688 р. — ISBN 978-0-470-08411-3.
This book is about interaction design—the practice of designing interactive digital products, environments, systems, and services. Like many design disciplines, interaction design is concerned with form. However, first and foremost, interaction design focuses on something that traditional design disciplines do not often explore: the design of behavior.
Most design affects human behavior: Architecture is concerned with how people use physical space, and graphic design often attempts to motivate or facilitate a response. But now, with the ubiquity of silicon-enabled products—from computers to cars and phones—we routinely create products that exhibit complex behavior.
Take something as basic as an oven. Before the digital age, the operation of an oven was quite simple—it involved turning a single knob to the correct position. There was one position for off, and one position for any oven temperature one might want to use. Every single time a person turned that knob to a given position, the same thing happened. One might call this behavior, but it is certainly quite simple and mechanistic behavior. Compare this to our modern-day ovens with silicon chips and LCD screens. They are endowed with buttons that say non-cooking- related things like Start, Cancel, Program, as well as the more expected Bake and Broil. What happens when you press any one of these buttons is quite a lot less pre-dictable than what happened when you turned the knob on your old gas range. In fact, the results of pressing one of the buttons is entirely dependent on the state of the oven and what other buttons you might have pressed previously. This is what we mean by complex behavior.
This emergence of products with complex behavior has given rise to a new discipline. Interaction design borrows theory and technique from traditional design, usability, and engineering disciplines. But it is greater than a sum of its parts, with its own unique methods and practices. And to be clear—it is very much a designdiscipline, quite different from science and engineering. While it should always be practiced in a rational and considered manner, interaction design is about synthesis and imagining things as they might be, not necessarily as they currently are. Interaction design is also an inherently humanistic enterprise. It is concerned most significantly with satisfying the needs and desires of the people who will interact with a product or service. In this book we describe a particular approach to interaction design that we call the Goal-Directed method. We’ve found that when a designer focuses on people’s goals—the reasons why they use a product in the first place—as well as their expectations, attitudes, and aptitudes, they can devise solutions that people find powerful and pleasurable.
As even the most casual observer of developments in technology must have noticed, interactive products can become very complex very quickly. While a mechanical device may be capable of a dozen visible states, a digital product may be capable of being in thousands of different states (if not more! ). This complexity can be a nightmare for users and designers alike. To tame this complexity, we rely on a very systematic and rational approach. This doesn’t mean that we don’t also value and encourage inventiveness and creativity. On the contrary, we find that a methodical approach helps us clearly identify opportunities for revolutionary thinking, and provides a way of assessing the effectiveness of our ideas.
According to Gestalt Theory, people perceive a thing not as a set of individual features and attributes but as a unified whole in a relationship with its surroundings. As a result, it isn’t possible to effectively design an interactive product by decomposing it into a list of atomic requirements and coming up with a design solution for each. Even a relatively simple product must be considered in totality and in light of its context in the world. Again, we’ve found that a methodical approach helps provide the holistic perspective necessary to create products that people find useful and engaging.
About the AuthorsAlan Cooper is a pioneering software inventor, programmer, designer, and theorist. He is credited with having produced probably the first serious business software for microcomputers and is well known as the Father of Visual Basic. For the last 15 years his software design consulting company, Cooper, has helped many companies invent new products and improve the behavior of their technology. At Cooper, Alan led the development of a new methodology for creating successful software that he calls the Goal-Directed process. Part of that effort was the invention of personas, a practice that has been widely adopted since he first published the technique in his second book, The Inmates are Running the Asylum, in 1998. Cooper is also a well known writer, speaker, and enthusiast for humanizing technology.
Robert Reimann has spent the past 15 years pushing the boundaries of digital products as a designer, writer, lecturer, and consultant. He has led dozens of interaction design projects in domains including e-commerce, portals, desktop productivity, authoring environments, medical and scientific instrumentation, wireless, and handheld devices for startups and Fortune 500 clients alike. As director of design R&D at Cooper, Reimann led the development and refinement of many of the Goal-Directed Design methods described in About Face. In 2005, Reimann became the first President of IxDA, the Interaction Design Association (www.ixda.org), a global nonprofit professional organization for Interaction Designers. He is currently manager of user experience at Bose Corporation.
Dave Cronin is the director of interaction design at Cooper, where he’s helped design products to serve the needs of people such as surgeons, museum visitors, marketers, investment portfolio managers, online shoppers, hospital staff, car drivers, dentists, financial analysts, manufacturing planners, the elderly, and the infirm. At Cooper, he has also contributed substantially to the ongoing process of developing and refining the Goal-Directed Design methods described in this book.
About the Authors
Foreword: The Postindustrial World
Introduction to the Third Edition
Understanding Goal-Directed DesignGoal-Directed DesignDigital Products Need Better Design Methods
The creation of digital products today
Why are these products so bad?
The Evolution of Design in Manufacturing
Planning and Designing Behavior
Recognizing User Goals
Goals versus tasks and activities
Designing to meet goals in context
The Goal-Directed Design Process
Bridging the gap
A process overview
Goals, not features, are the key to product success
Implementation Models and Mental ModelsImplementation Models
User Mental Models
Represented Models
Most Software Conforms to Implementation Models
User interfaces designed by engineers follow the implementation model
Mathematical thinking leads to implementation model interfaces
Mechanical-Age versus Information-Age Represented Models
Mechanical-Age representations
New technology demands new representations
Mechanical-Age representations degrade user interaction
Improving on Mechanical-Age representations: An example
Beginners, Experts, and IntermediatesPerpetual Intermediates
Designing for Different Experience Levels
What beginners need
Getting beginners on board
What experts need
What perpetual intermediates need
Understanding Users: Qualitative ResearchQualitative versus Quantitative Research
The value of qualitative research
Types of qualitative research
Ethnographic Interviews: Interviewing and Observing Users
Contextual inquiry
Improving on contextual inquiry
Preparing for ethnographic interviews
Conducting ethnographic interviews
Other Types of Research
Focus groups
Market demographics and market segments
Usability and user testing
Card sorting
Task analysis
Modeling Users: Personas and GoalsWhy Model?
Personas
Strengths of personas as a design tool
Personas are based on research
Personas are represented as individual people
Personas represent groups of users
Personas explore ranges of behavior
Personas must have motivations
Personas can also represent nonusers
Personas and other user models
When rigorous personas aren’t possible: Provisional personas
Goals
Goals motivate usage patterns
Goals should be inferred from qualitative data
User goals and cognitive processing
The three types of user goals
User goals are user motivations
Types of goals
Successful products meet user goals first
Constructing Personas
Step 1: Identify behavioral variables
Step 2: Map interview subjects to behavioral variables
Step 3: Identify significant behavior patterns
Contents xStep 4: Synthesize characteristics and relevant goals
Step 5: Check for completeness and redundancy
Step 6: Expand description of attributes and behaviors
Step 7: Designate persona types
Other Models
Workflow models
Artifact models
Physical models
The Foundations of Design: Scenarios and RequirementsScenarios: Narrative as a Design Tool
Scenarios in design
Using personas in scenarios
Different types of scenarios
Persona-based scenarios versus use cases
Requirements: The What of Interaction Design
Requirements Definition Using Personas and Scenarios
Step 1: Creating problem and vision statements
Step 2: Brainstorming
Step 3: Identifying persona expectations
Step 4: Constructing context scenarios
Step 5: Identifying requirements
From Requirements to Design: The Framework and RefinementThe Design Framework
Defining the interaction framework
Defining the visual design framework
Defining the industrial design framework
Refining the Form and Behavior
Design Validation and Usability Testing
When to test: Summative and formative evaluations
Conducting formative usability tests
Designer involvement in usability studies
Designing Behavior and FormSynthesizing Good Design: Principles and PatternsInteraction Design Principles
Principles operate at different levels of detail
Behavioral and interface-level principles minimize work
Design Values
Ethical interaction design
Purposeful interaction design
Pragmatic interaction design
Elegant interaction design
Interaction Design Patterns
Architectural patterns and interaction design
Recording and using interaction design patterns
Types of interaction design patterns
Platform and PosturePosture
Designing Desktop Software
Designing for the Web
Informational Web sites
Transactional Web sites
Web applications
Internet-enabled applications
Intranets
Other Platforms
General design principles
Designing for handhelds
Designing for kiosks
Designing for television-based interfaces
Designing for automotive interfaces
Designing for appliances
Designing for audible interfaces
Orchestration and FlowFlow and Transparency
Designing Harmonious Interactions
Eliminating ExciseGUI Excise
Excise and expert users
Training wheels
Pure excise
Visual excise
Determining what is excise
Stopping the Proceedings
Errors, notifiers, and confirmation messages
Making users ask permission
Common Excise Traps
Navigation Is Excise
Navigation among multiple screens, views, or pages
Navigation between panes
Navigation between tools and menus
Navigation of information
Improving Navigation
Reduce the number of places to go
Provide signposts
Provide overviews
Provide appropriate mapping of controls to functions
Inflect your interface to match user needs
Avoid hierarchies
Designing Good BehaviorDesigning Considerate Products
Considerate products take an interest
Considerate products are deferential
Considerate products are forthcoming
Considerate products use common sense
Considerate products anticipate human needs
Considerate products are conscientious
Considerate products don’t burden you with their personal problems
Considerate products keep us informed
Considerate products are perceptive
Considerate products are self-confident
Considerate products don’t ask a lot of questions
Considerate products fail gracefully
Considerate products know when to bend the rules
Considerate products take responsibility
Designing Smart Products
Putting the idle cycles to work
Smart products have a memory
Task coherence
Actions to remember
Applying memory to your applications
Metaphors, Idioms, and AffordancesInterface Paradigms
Implementation-centric interfaces
Metaphoric interfaces
Idiomatic interfaces
Further Limitations of Metaphors
Finding good metaphors
The problems with global metaphors
Macs and metaphors: A revisionist view
Building Idioms
Manual Affordances
Semantics of manual affordances
Fulfilling user expectations of affordances
Visual Interface DesignArt, Visual Interface Design, and Other Design Disciplines
Graphic design and user interfaces
Visual information design
Industrial design
The Building Blocks of Visual Interface Design
Shape
Size
Value
Hue
Orientation
Texture
Position
Principles of Visual Interface Design
Use visual properties to group elements and provide clear hierarchy
Provide visual structure and flow at each level of organization
Use cohesive, consistent, and contextually appropriate imagery
Integrate style and function comprehensively and purposefully
Avoid visual noise and clutter
Keep it simple
Text in visual interfaces
Color in visual interfaces
Visual interface design for handhelds and other devices
Principles of Visual Information Design
Enforce visual comparisons
Show causality
Show multiple variables
Integrate text, graphics, and data in one display
Ensure the quality, relevance, and integrity of the content
Show things adjacently in space, not stacked in time
Don’t de-quantify quantifiable data
Consistency and Standards
Benefits of interface standards
Risks of interface standards
Standards, guidelines, and rules of thumb
When to violate guidelines
Consistency and standards across applications
Designing Interaction DetailsSearching and Finding: Improving Data RetrievalStorage and Retrieval Systems
Storage and Retrieval in the Physical World
Everything in its place: Storage and retrieval by location
Indexed retrieval
Storage and Retrieval in the Digital World
Relational Databases versus Digital Soup
Organizing the unorganizable
Problems with databases
The attribute-based alternative
Natural Language Output: An Ideal Interface for
Attribute-Based Retrieval
Understanding UndoUsers and Undo
User mental models of mistakes
Undo enables exploration
Designing an Undo Facility
Contents xivTypes and Variants of Undo
Incremental and procedural actions
Blind and explanatory Undo
Single and multiple Undo
Redo
Group multiple Undo
Other Models for Undo-Like Behavior
Comparison: What would this look like?
Category-specific Undo
Deleted data buffers
Versioning and reversion
Freezing
Undo-Proof Operations
Rethinking Files and SaveWhat’s Wrong with Saving Changes to Files?
Problems with the Implementation Model
Closing documents and removing unwanted changes
Save As
Archiving
Implementation Model versus Mental Model
Dispensing with the Implementation Model
Designing with a Unified File Model
Automatically saving
Creating a copy
Naming and renaming
Placing and moving
Specifying the stored format
Reversing changes
Abandoning all changes
Creating a version
A new File menu
A new name for the File menu
Communicating status
Are Disks and File Systems a Feature?
Time for Change
Improving Data EntryData Integrity versus Data Immunity
Data immunity
What about missing data?
Data entry and fudgeability
Auditing versus Editing
Pointing, Selecting, and Direct ManipulationDirect Manipulation
Pointing Devices
Using the mouse
Mouse buttons
Pointing and clicking with a mouse
Mouse-up and mouse-down events
Pointing and the Cursor
Pliancy and hinting
Selection
Command ordering and selection
Discrete and contiguous selection
Insertion and replacement
Visual indication of selection
Drag-and-Drop
Visual feedback for drag-and-drop
Other drag-and-drop interaction issues
Control Manipulation
Palette Tools
Modal tools
Charged cursor tools
Object Manipulation
Repositioning
Resizing and reshaping
3D object manipulation
Object Connection
Window BehaviorsPARC and the Alto
PARC’s Principles
Visual metaphors
Avoiding modes
Overlapping windows
Microsoft and Tiled Windows
Full-Screen Applications
Multipaned Applications
Designing with Windows
Unnecessary rooms
Necessary rooms
Windows pollution
Window States
MDI versus SDI
ControlsAvoiding Control-Laden Dialog Boxes
Imperative Controls
Buttons
Butcons
Hyperlinks
Selection Controls
Check boxes
Flip-flop buttons: A selection idiom to avoid
Radio buttons
Contents xviCombutcons
List controls
Combo boxes
Tree controls
Entry Controls
Bounded and unbounded entry controls
Spinners
Dials and Sliders
Thumbwheels
Other bounded entry controls
Unbounded entry: Text edit controls
Display Controls
Text controls
Scrollbars
Splitters
Drawers and levers
MenusA Bit of History
The command-line interface
Sequential hierarchical menus
The Lotus 1-2-3 interface
Drop-down and pop-up menus
Menus Today: The Pedagogic Vector
Standard menus for desktop applications
File (or document)
Edit
Windows
Help
Optional Menus
View
Insert
Settings
Format
Tools
Menu Idioms
Cascading menus
Menus
The ribbon
Bang menus
Disabled menu items
Checkmark menu items
Icons on menus
Accelerators
Access keys
Menus on other platforms
ToolbarsToolbars: Visible, Immediate Commands
Toolbars versus Menus
Toolbars and Toolbar Controls
Icons versus text on toolbars
The problem with labeling butcons
Explaining Toolbar Controls
Balloon help: A first attempt
ToolTips
Disabling toolbar controls
Evolution of the Toolbar
State-indicating toolbar controls
Menus on toolbars
Movable toolbars
Customizable toolbars
The ribbon
Contextual toolbars
DialogsAppropriate Uses for Dialog Boxes
Dialog Box Basics
Modal Dialog Boxes
Modeless Dialog Boxes
Modeless dialog issues
Two solutions for better modeless dialogs
Four Different Purposes for Dialogs
Property dialog boxes
Function dialog boxes
Process dialog boxes
Eliminating process dialogs
Bulletin dialog boxes
Managing Content in Dialog Boxes
Tabbed dialogs
Expanding dialogs
Cascading dialogs
Errors, Alerts, and ConfirmationError Dialogs
Why we have so many error messages
What’s wrong with error messages
Eliminating error messages
Aren’t there exceptions?
Improving error messages: The last resort
Alert Dialogs: Announcing the Obvious
Confirmation Dialog
The dialog that cried Wolf!
Eliminating confirmations
Replacing Dialogs: Rich Modeless Feedback
Rich visual modeless feedback
Audible feedback
Designing for Different NeedsCommand Vectors and Working Sets
Immediate and pedagogic vectors
Working sets and personas
Graduating Users from Beginners to Intermediates
World vectors and head vectors
Memorization vectors
Personalization and Configuration
Idiosyncratically Modal Behavior
Localization and Globalization
Galleries and Templates
Help
The index
Shortcuts and overview
Not for beginners
Modeless and interactive help
Wizards
Intelligent agents
Afterword: On Collaboration
Appendix A Design Principles
Appendix B Bibliography