For the past several months, I've been working with Alan Cooper and Robert Reimann on the latest version of About Face, Alan's classic book on interface and interaction design. One of the major objectives with this new third edition has been to bring the book up to date with current conversations about the design of interactive products, which has been a great excuse for me to dig into the growing body of literature on the subject.
In particular, the last year saw the publication of three very worthwhile tomes written explicitly on the subject of interaction design. (Those of you who have been in the field for a while probably share my shock to have such a wealth of discourse.) Despite the almost comic similarity in their titles, the three books each cover different ground but are really quite complementary. These three books, along with Mullet and Sano's Designing Visual Interfaces and About Face (naturally) would be a fantastic curriculum for someone interested in interaction design.
Designing Interfaces, Jenifer Tidwell (O'Reilly)
When I started work at Cooper in 1999, there wasn't a lot to read about interaction design. Once I made my way through the few good books on the subject, someone pointed me in the direction of Christopher Alexander, the renowned architectural theorist. In his work, A Pattern Language: Towns, Buildings, Construction, Alexander suggests that architecture largely consists of a fairly limited set of problems and that all kinds of good things happen if effective and appealing solutions to these problems are collected, organized and socialized.
For years, this has been a compelling dream for interaction designers. It certainly seems reasonable to imagine that being able to rely on a pattern library for solutions to common problems would free us up to be really clever and inventive with the more obscure, domain-specific problems upon which the success of our product designs often hinge.
Recently, a few domain-specific pattern library resources have emerged (the Yahoo! Design Pattern Library is one: http://developer.yahoo.com/ypatterns/), but luckily for all of us Jenifer Tidwell has made significant progress on a more universal collection of patterns. Her book Designing Interfaces lays out 94 interface design patterns in a very clear and well-organized fashion. Most of them come from desktop software and the Web, though there is certainly attention paid to mobile devices, as well.
The thematic groupings of patterns that form the basis for the book's organization are useful and purposeful for the practice of interaction design. For example, there's a chapter on navigation, one on actions and commands and one on complex data visualizations. A designer who is inclined to pick up the book to survey possible solutions to a given problem is likely to know where to look.
The patterns themselves are well-written in a standardized format. Each pattern begins with the "what"a statement that describes the solution, such as "Lead the user through the interface step by step, doing the tasks in a prescribed order" (obviously describing the navigation pattern of a wizard). Next, each pattern description includes "use when," which describes the appropriate context for the application of the pattern. This is critical. It is widely agreed-upon by practitioners that context is a critical aspect to any pattern. To quote the Yahoo! Design Pattern Library home page, "a pattern describes an optimal solution to a common problem within a specific context" (italics mine for emphasis).
The pattern description also includes the "why," which explains the reason it is an effective and appealing solution, and of course, the "how," which explains the way a designer should go about applying the solution. Each pattern ends with examples (or sometimes counterexamples) that help illuminate the description.
Tidwell has done a laudable job of writing prose that is clear, scan-able and has just the right amount of character. Despite the rigor, it reads as a design book and expresses which aspects of the patterns are open-ended, ultimately providing opportunities for imaginative application. I really appreciate the fact that she pays such attention to why a pattern is effective. Because every application of a pattern is bound to be slightly different, the discussion of rationale can help a designer stay true to the spirit of the pattern, even as it is subject to the everyday push and pull of design iteration.
If I have any gripe about the book, it's the first section, in which Tidwell lays out a dozen patterns regarding human behavior (as opposed to software behavior, the subject of the patterns in the rest of the book). I don't have a particular issue with the patterns she chooses to discuss ("safe exploration", for example), but I do struggle with one thingthe discussion seems quite limited. I find it somewhat disconcerting that about ten pages of the book are dedicated to the complexities and intricacies of human behavior, whereas about 300 are dedicated to the behavior of software. As someone who spends a lot of time thinking about the users of products we design, this discussion feels quite incomplete to me (though I can also imagine why she didn't take it upon herself to write 300 more pages on human behavior).
Designing for Interaction, Dan Saffer (New Riders)
One of my least favorite things about being an interaction designer is having to explain what I do to people outside the industry. (I can't count how many times someone has asked me my occupationout of politenessonly to turn glassy-eyed at my ensuing long explanation.) However, every now and then, I find someone who is genuinely interested in what we do. These conversations are often great fun. I'm invariably asked, "What can I read to find out more about this interaction design thing?" For those who are familiar with the software industry, I often recommend About Face, but for the uninitiated, I've had to smile wistfully, shake my head and say that there isn't really a good introduction.
That is, until Dan Saffer's Designing for Interaction. Where Tidwell's deep look at design patterns illuminates the fact that we have an increasingly rich vocabulary of idioms from which to create good user experiences, Saffer's book provides a great survey of activities and theories related to the practice of interaction design, highlighting the fact we are all finally working within an established profession.
The first chapter sets out to describe what interaction design is. From there, Saffer jumps into "Starting Points," which is a somewhat curious combination of a discussion of stakeholder interviews followed by a very articulate explanation of four approaches to interaction design (user-centered, activity-centered, systems, and genius design). I gather that this sequence is meant to suggest that a designer may end up choosing the appropriate approach based upon the business goals and project parameters he learns during project definition. I find this curious not because it's necessarily a bad approach, but just incredibly different from the way we do things here at Cooper (where we have firm beliefs about user-centered design being most appropriate for the type of work we do).
Continuing through the book, "Interaction Design Basics" provides a good cross-section of things an interaction designer must consider in her work, from fundamental elements of design (such as space, motion, sound and texture) to guidelines (or "laws") such as Fitt's Law and Hick's Law, to interaction design strategies such as direct manipulation and feedback.
The next several chapters discuss specific methods, activities and work products such as design research, wireframes, testing and visual interface design. Saffer discusses these in a straightforward and well-considered manner. He has a lot of wisdom to share and I appreciate the way he supports the more theoretical subjects with examples and illustrations.
My one frustration with this part of the book is that I don't get a sense of how these disparate activities should be used together to get to a final product design. Saffer does provide a very level-headed academic survey of methods without betraying an agenda, but ultimately I'd be interested to hear, for example, how he thinks use cases and wireframes should be used together.
The last few chapters were the most interesting to me. Here Saffer gets beyond the fundamentals to take a look at more sophisticated topics such as how to design for adaptation and what he refers to as "the new frontier of interaction design": service design. Here Saffer is particularly eloquent and though-provoking. I particularly enjoyed his discussion of "service prototyping," where role-playing and props are used to mock-up, evaluate and refine an entire service ecology, in a manner similar to paper prototyping for screen designs.
Designing Interactions, Bill Moggridge (MIT Press)
Designing Interactions is, more than anything, a history book. It starts in the 60's and 70's with the story of the mouse and the desktop computer and progresses through major developments into the modern day, with the requisite discussions of Google and the iPod. While many of us are familiar with these myths of Silicon Valley, Bill Moggridge tells them from the perspective of an interaction designer (and a charmingly well-spoken one at that). The history is interspersed with interviews with all sorts of luminaries, though there certainly seems to be a slant toward people who have done time at One Infinite Loop (which is not altogether undeserved, as Apple has invested in interaction design innovation as much as any technology company I can think of).
To put it simply, we're all really lucky that Moggride wrote this book. He's one of the true pioneers of our field: along with Bill Verplank, he designed the first laptop and coined the term "interaction design." In these stories, Moggridge does a laudable job of explaining the struggles and decisions of the people who designed many of the digital age's most celebrated products. I found something useful and eye-opening in every chapter and was, in general, struck by the razor's edge that separates a successful product from an abject failure.
One telling example of this is the history of Palm Computing. I've always considered the original PalmPilot to be a fantastic example of digital product design. It had huge impact on the way people worked and people who used a PalmPilot often loved it. (I wish I could be as positive about my Treo. Somehow grafting phone and email onto the device has made it a bit awkward.)
Moggridge's telling of the story starts with Jeff Hawkins' struggles to design software for predefined mobile hardware (something I've certainly found to be a pain), which brought him to the realization that the hardware and software must be designed in concert (something that today we tell prospective clients once a week, it seems). Once Hawkins realized this, it took him a day and a half to define the premise of the product, including the size (that of a shirt pocket), price ($299), key feature (synchronization), and speed (no wait cursors). Moggridge then continues with a discussion of Graffiti (Palm's handwriting recognition technology) and a fascinating account of Rob Haitani's work on interaction design for PalmOS.
The next section of the book, entitled "Adopting Technology," is equally enthralling. In it, Moggridge describes the design processes of several products that represent mainstream digital user interfaces, from cars to cameras to the iPod. This is followed by discussions of toys and games (including an interview with Will Wright, creator of the Sims), service design, the Internet and more cutting-edge and experimental projects such as those undertaken by the Tangible Media Group at the MIT Media Lab.
Of the books reviewed here, I found all three to be well-written and worthwhile. Saffer provides a great primer to those entering the field (as well as some nuggets of wisdom and clear-headedness for those of who have been around for a while). The history of our craft as told by Bill Moggridge should be required reading for all those professing to be interaction designers. As Santayana is oft quoted, "Those who cannot remember the past are condemned to repeat it."
Finally, I must admit that Tidwell's is the book I pull off shelf at least once a week. She says in the intro that "There's nothing new in here," but it's her fresh examination and consideration of these known and familiar interaction idioms that provide new insights into where some of the best opportunities for innovation lie. As many practicing interaction designers know, it isn't feasible or desirable to reinvent the wheel with every aspect of a product. Good design often comes down to skillful and imaginative applications of established solutions, with just the right amount of appropriate novelty. To achieve this, pattern libraries like this book are indispensable.