| |
Preface |
Introduction |
Part I: The Goal |
| 1. On Being a Butler (excerpt) |
| Flow, Tolerance Capital, and Ease of Use Features |
| It's the Relationship, Stupid |
How to Collaborate |
| 2. Don't Impose: Respect Physical Effort (excerpt) |
| Treat Clicks As Sacred |
| Some Examples |
| "Do You Really Mean It" Pop-ups |
| Remember Where They Put Things |
| Remember What They Told You |
Stick With a Mode |
| 3. Don't Impose: Respect Mental Effort |
| Use Visual Elements Sparingly |
| Make Common Tasks Visible and Hide Infrequent Tasks |
| Give Feedback; Show Signs of Progress |
| Keep Preferences to a Minimum; Give Smart Defaults |
| Follow Conventions (Even If They're Not Your Ideal Design) |
Look for "Widgetless Features" |
| 4. Be Helpful |
| Offer Sufficient Information Early and in Context; Prevent Errors |
| Solve Problems; Don't Complain or Pass the Buck |
| Be Predictable |
| Request and Offer Only Relevant Information; Don't Mislead |
| Explain in Plain Language |
| Avoid Jargon |
| Don't Blame the User |
| Indicate the Consequences of Options |
Use Common Sense |
Part II: The Process |
| 5. Setting Up: Understanding Users' Needs |
| The Components of User-Centered Design |
| The Role of Hubbub |
| What Is Hubbub? |
| Understanding Users' Needs |
| Specifying the Functional Requirements |
| Prioritizing the Functional Requirements |
| Designing the User Interface First |
| A View from Engineering |
| A Word on Schedules |
Getting into the UI Designer Role |
| 6. Structuring the User Interface (excerpt) |
| The User Interface Spec |
| Start with Tasks |
| Map Priorities to Design |
| Example: "Reverse Designing" Priorities |
| Organize the Tasks into Display Units |
Create a Task Flow Diagram |
| 7. Laying Out the User Interface |
| Communicating Visually |
| Example 1: Focusing on Frequent by Many Features |
| Example 2: Following Platform Conventions |
| Example 3: Designing for Multiple Platforms |
| Example 4: Handling Differences in Platform Conventions |
| Providing the Ability to Mute |
| Providing Status Information |
| Distinguishing Participants' Messages |
| Example 5: Removing a Feature |
Walk Through the Tasks |
| 8. Architecting with the UI in Mind |
| Network Architecture |
| UI Drives Architecture |
| Architecture Drives UI |
| Multiplatform Architecture |
| Palm Client Architecture |
| The Feature List |
| Work in Priority Order |
| Estimate a Schedule Based on Detailed Feature Descriptions |
Plan Time to Polish Each Feature |
| 9. Initial Development (excerpt) |
| Issues Resolved on Engineering Grounds |
| Example: Edge Cases Versus Common Cases |
| Example: Implementation Effort Versus Usability Value |
| Example: Implementation Time Versus Usability Value |
| Example: Expediency Versus Ideal User Experience |
| Issues Resolved on UI Grounds |
| Example: Tedious Work Versus Polish |
| Example: More Tedious Work Versus Completeness |
| Unanticipated UI Issues and Adjustments |
| Example: Designing a Case Not Covered in the UI Spec |
| Example: Handling Small Issues as They Arise |
| Example: Assessing the Impact of a New Design |
| Example: Revising a Design After Implementation |
| Hidden UI Implications |
| Example: Thinking Through Multiple Scenarios When Fixing a Bug |
| Example: Anticipating and Gracefully Handling Any Eventuality |
| Unanticipated Requirements |
| Example: Collaborating With Management |
| Designer Activity |
| Quick and Dirty Usability Testing |
Changes Based On Development Issues |
| 10. Iterative development: Observing Use |
| Using Your Own Technology |
| Fixing Ease-of-Use Problems |
| Polishing Features |
| Changes Based On Our Use |
| Observing Others Using Your Technology |
| Comparing Usability Testing with Usage Studies |
| Running a Usage Study |
| Finding Usage Study Participants |
| Preparing the Technology |
| Installing the Technology |
| Collecting and Interpreting the Data |
| Logging User Activity |
| Formal Observation and Videotaping |
| Informal Observation and Conversation |
| Surveys |
| Interviews |
| Participant Suggestions and Complaints |
| Combining Data Sources |
| Changes Based on the Usage Study |
| Deciding When You're Done |
The Effect of Iterative Design |
| 11. Conclusion |
| Example 1: Forum |
| Understanding the Task |
| Designing the UI |
| Running a Usage Study |
| Example 2: Shopping Web Site |
| Understanding the Task |
| Designing the UI |
| Doing Usability Testing |
Taking a Step Back |
Part III: Appendixes |
A. Guidelines |
B. Recommended Readings |
| Index |