January 2006 (Vol. 7, No. 1)
1541-4922/06/$31.00 © 2006 IEEE
Published by the IEEE Computer Society
Published by the IEEE Computer Society
Book Reviews: Applying the Power of Patterns to the Web
PDFs Require Adobe Acrobat
A Pattern Language for Web Usability
By Ian Graham
Pearson Education, 2003
With the vast amount of talent and experience that has gone into today's Web site development, there must be a way to leverage the best and avoid the worst when building new sites or individual pages. In A Pattern Language for Web Usability, Ian Graham makes a serious attempt at this goal by marrying the reuse concept of patterns for the Web with the human computer interaction concept of usability. The notion is brilliant, and the book does hold some gems. Overall, however, the book's execution of this marriage fails.
The first question I always ask when reviewing books is who is the target audience? Graham targets Web designers and Web site development project managers. The content certainly sounds as if it were aimed at the practitioner, whether neophyte or Web design master. Sadly, the book doesn't hit this market. As an introduction to patterns, I wouldn't recommend it. While it offers a reasonable historical account of patterns, far better introductions are available. Also, the book's introductory discussion of how you should use patterns is insufficient.
The second area of concern is how to access and apply the knowledge the patterns contain. Before I go any further, I should acknowledge that this book and many of its patterns do embody the genius, and often the simplicity, of what makes some Web sites so successful through their usability. This book is worth reading if only to pick up on some of these nuggets of insight.
Graham handles each pattern consistently and provides the pattern number and name (and alternatives in some cases) and an image or diagram supporting the pattern. In many cases, he helpfully includes a screen shot of a well-known Web site that has a feature embodying the pattern he's discussing. He also gives information on each pattern's context and refers to other relevant patterns. He then describes the pattern and covers the problem and reasoning around what the pattern embodies. If it's not a terminal pattern, Graham provides references to the patterns that you should apply next. These individual pattern descriptions are very insightful.
As to how you would embody all the patterns or at least validate your design decisions, Graham assembles the patterns into four groups: "Getting started on your site," "Enhanced usability," "Adding detail," and "Dealing with workflow and security." Within each group, he provides a flowchart that shows how the patterns link within that grouping. Working through the flowcharts should help you validate your Web design against the patterns provided. From a validation standpoint, this might let you find errors in your design and chip away at flaws in your design. For smaller Web projects, this approach would even let you build a Web site with best-practice usability features. However, for large-scale Web development projects where you must apply a standard development life cycle, validation is all this process could give you. Integrating these usability patterns into an SDLC would enhance this process's applicability enormously.
The first two chapters provide a very brief introduction to patterns and designing user interfaces. The third chapter, which makes up the bulk of the book, describes usability patterns and their application. Graham provides light examples of using the usability patterns in the fourth and final chapter. An associated Web site ( http://www.wupatterns.com) enhances the use of this pattern language. In many ways, the Web site is probably the preferred way to navigate the patterns and apply the design validation once you've read the book and are ready to apply it.
For a commercial environment where you're continually trying to combine repeatable processes with best practices to ensure high-quality results, incorporating patterns and usability into Web site construction is a laudable goal. Although this book takes great strides toward this goal, it doesn't quite reach the mark. As I stated earlier, the gems in this book would improve many Web sites and could warrant purchasing it. It would be great for the truly novice Web designer, but if you're after that repeatable process that you can plug into your development life cycle, you might want to wait for future versions of this book. I'm sure this topic will continue to evolve and improve.
George Semeczko is the chief technology officer at Royal & SunAlliance Insurance Canada. Contact him at firstname.lastname@example.org.