Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Erin Malone
Design Director
Yahoo! Inc.
emalone@yahoo-inc.com
Chanel Wheeler
Developer
Yahoo! Inc.
chanel@yahoo-inc.com
Our Problem
Yahoos multiple business units, each containing decentralized user experience teams, have a natural tendency to
design different solutions to similar problems. Left unchecked, these differences would weaken the Yahoo! brand
and produce a less usable network of products. Designers and managers have discussed standards as a way to
solve this problem but this standards content (often contained only in the memories of designers) has never existed
in a commonly accessible format.
Our Goal
Our first goal was to find a way to communicate standards for interaction design to increase consistency,
predictability, and usability across Yahoo! with the ultimate intention of strengthening the brand. This aligned with
the business goal of increasing both the number of return visits and the average number of products used per session.
Our second goal was to increase the productivity of the design staff by reducing time spent on reinventing the
wheel. If we were successful, other designers could re-use the solutions contained in the library, reducing
development time.
Our Solution
We designed and built a repository for interaction design patterns, created a process for submitting and reviewing
the content, and seeded the resulting library with a set of sample patterns. We organized the content to make it
findable, structured the content so it was predictable, and tested and iterated the design of the user interface of the
tool to make it usable. Throughout this process, we introduced incentives for participation for both the contributors
and management to encourage submissions and support.
We took the following approach, broken down into the following stages:
1. Understanding and agreeing on the problem
2. Developing a workflow
3. Generating organizational buy-in (evangelizing)
4. Selecting, designing, and building a application
5. Using the pattern library as a body of standards
Developing a Workflow
Before we could build an application for managing the patterns, we needed to determine where the content would
come from, how it would be reviewed and published, and who would maintain it. To that end, we designed a
workflow noting the prerequisites for each step as well as the participants and their responsibilities. We vetted the
proposed process with each user experience team before moving on to building the application. Wherever possible,
we attempted to build hooks into Yahoo!s existing design process. For example, we knew that new interaction
design solutions are often identified during design reviews, so the step of identify pattern was added to our
existing process.
Peer Recognition. Presently, were considering adding functionality so that users of the library can rate each
patterns usefulness. Once we know which the most useful patterns are, we can recognize their authors.
Performance Evaluation. Perhaps the most compelling incentive is to write job descriptions so that contributing to
the library is on each designers list of quarterly goals. Were currently in the process of defining this and pitching it
to the design management team.
How extensive are the classification tools? How many vocabularies are supported? Does it support parent/child
relationships?
How does it handle rights? Can we set different rights for contributors, editors, and administrators?
How easy is it to customize and extend?
Ultimately, we chose Drupal because of its breadth of capabilities, powerful taxonomy, and extensibility.
Figure 3 The paper prototype used to test the pattern library tool
Title. Usually the name of the problem, solution, or element type in question.
Author. Each pattern has one principal author.
Contributors. For when there are co-authors.
Problem. Written in user-centered terms, i.e. what is the problem presented to the end user?
Sensitizing Example. A single screen shot to serve as the picture worth a thousand words. Additional images
may be added to the other fields; this is the one that really needs to count.
6. Use when. A statement to describe the context for the problem/solution pair.
7. Solution. A prescriptive checklist of to-dos. We found that this format was the most easily consumable by our
time-pressed audience.
8. Rationale. A set of statements that reinforce the solution above. We separate all rationale information from the
solution to make the solution easier to scan and consume. This field can also be used to summarize the forces
that other pattern languages describe.
9. Special Cases. Known exceptions. Often these exceptions warrant their own patterns.
10. Open Questions. Unknowns. Useful for documenting areas that require further research.
Leacock, Malone, Wheeler
These categories didnt spring forth from the forehead of Zeusthey emerged after studying sample content and by
listing the content we anticipated. Several of the vocabularies that were initially suggested had to be scrapped. In
particular, we found it was counter-productive to classify patterns by their product type, location, or language. In the
future we may add additional vocabularies, for example to distinguish patterns that are relevant only to double-byte
character sets.
Because most of the patterns submitted are individual articles, not extensive families, one of the challenges to date is
creating a coherent language that ties the patterns together so that the collection is greater than the sum of its parts.
The librarys editor attempts to group and cross-link patterns using broader (parent), narrower (child), sibling, and
related relationships. Because of the large number of authors, creating these relationships can be arduous, however.
In addition to navigating the patterns by category or by their relationship to other patterns, we also present the
contents in a number of lists:
Table of contents an alphabetical index of the broadest patterns with the narrower patterns shown indented
below their parents
Sortable index (planned)
By title
By author
By rating
Whats new
Recently submitted
Recently modified (planned)
Recently commented upon (planned)
Recently rated (planned)
Review queue shows the patterns under review
ware solutions. We did, however, collect a half-dozen patterns that we were able to include at launch and it wasnt
long before additional contributions began to roll in.
This common set of criteria helped normalize the ratings. Pattern ratings that are all over the board (some 1-bar
ratings, some 4-bar ratings, for example) are marked as contentious and the median rating is not exposed in the
application. Weve yet to have a contentious pattern. Our current algorithm permits votes that are one bar above or
below the median, and up to one vote that is two bars above or below. If we do have contention, the plan is to use
our regular monthly meeting to come to a consensus (or at least give those with outlying ratings a chance to be
heard). Once an agreement is reached, votes can be amended and the median rating will appear in the application.
We currently collect votes from a team of about two-dozen reviewers, of which about a dozen are active. Once nine
votes are entered for a given pattern, the patterns median rating is exposed. The users of the library can see who has
rated each pattern, but the ratings given by specific individuals are kept hidden. Both of these strategies were put
into place to reduce groupthink.
We decided to separate out visual design and code from the pattern library.
The library of interaction design patterns is only one part of a three-pronged strategy to capture and communicate
standards for Yahoo!. We are also collecting standards for visual design and code samples into their own libraries.
Weve kept these three initiatives separate from each other for several reasons.
First, the standards for interaction design, visual design, and code change at different rates. For example, the visual
style for a button may change more frequently than a solution for paginating search results.
Second, they do not necessarily map to each other. For example, a pattern for Menu Item Order may not require a
corresponding visual standard and there may be a dozen visual standards for typography that do not map to any one
interaction design pattern.
Third, the content for interaction, visual design, and code repositories comes from different sources and the
reviewers of this content have different expectations for compliance:
The interaction design patterns are more of a grass-roots effort, coming mainly from the group of interaction
designers at Yahoo! (bottom-up). This is in part due to the vast number of contexts in which the solutions are
needed and that the central standards group is too small to capture solutions to such a wide variety of problems.
The interaction design patterns are rated by a group of representative interaction designers.
The visual design standards and assets are centrally managed (top-down) and are designed, written, and edited by
a central group. These are tightly managed to allow the stewards of the Yahoo! brand to more easily shape
Yahoo!s online brand identity. The visual standards are vetted in design review but are essentially dictated by the
creative director.
The sample code is contributed by Yahoo!s web development group (bottom-up) but best practices for writing
code are centrally managed (top-down).
Our plan is to maintain these repositories separately but ensure they are heavily cross-linked.
Conclusion
The pattern library allowed our small, centralized group to tap into the broad expertise of the Yahoo! design staff.
What would have been impossible to write (authoritatively) by a small team is now being contributed to and
reviewed by an expert staff. We were able to achieve this by understanding and agreeing on the problem, building a
workflow that fit with the existing design process, generating buy-in by creating incentives for contributors, and by
carefully designing and building an application with attention to user feedback.
We were then able to convert this library of patterns into a workable set of standards by agreeing on an appropriate
rating scale and by assembling a representative group of reviewers who rate the content according to the same
criteria.
Ultimately, we expect that pattern library will result in a strengthened Yahoo! brand and a more efficient design
staff.
References
Appleton, B. (2000), Patterns and Software: Essential Concepts and Terminology
http://www.cmcrossroads.com/bradapp/docs/patterns-intro.html
Brand, S. (1994), How Buildings Learn, pp. 1323.
Mahemoff, M. & Johnston, L. (1998), Pattern Languages for Usability: An Investigation of Alternative
Approaches. http://mahemoff.com/paper/candidate/
Tidwell, J. (1999), Common Ground: A Pattern Language for Human Computer Interface Design.
http://www.mit.edu/~jtidwell/interaction_patterns.html
Van Duyne, D., Landay, J., & Hong, J. (2003), The Design of Sites.
Van Welie, M. & Trtteberg, H. (2000), Interaction Patterns in User Interfaces.
http://www.cs.vu.nl/~martijn/patterns/PLoP2k-Welie.pdf
Appendix
Download our slides, handouts, and more.
This paper, our slides, and printable versions of selected figures are available at http://leacock.com/patterns.
10