A short while ago I gave a talk at Create 2009 on “UI Design Patterns for Search & Information Discovery”. Here is the abstract from that talk:
User Interface (UI) Design Patterns are principled solutions to common design problems. Although originally developed and applied within the field of architecture (Alexander, 1977), they have since been applied to fields as diverse as software development (Gamma et al 1994) and more latterly, interaction and user experience design (e.g. Tidwell 2005, van Duyne et al 2006, Scott 2009). This paper examines the role of patterns in designing information search and discovery applications, describes some of the challenges involved in creating the Endeca UI Design Pattern Library (UIDPL), and explores some of the issues involved in maintaining and growing a pattern library as a resource for a company as well as the wider user experience (UX) design community.
I hope to make the slides available shortly, but if you’d like to see further details in the meantime, then read on. Note that this paper was co-authored with my Endeca colleagues David Aurelio and Mark Burrell.
Endeca Technologies is an enterprise software company specialising in innovative solutions for information search and discovery. The Endeca platform provides the ability for end users to navigate and explore complex information spaces via a technique known as Guided Navigation® and related user interface capabilities based on faceted navigation (Hearst, 1999, Tunkelang, 2009). The platform has been applied to support a wide variety of information-based search and discovery applications across a wide variety of business sectors, including eCommerce (e.g. www.homedepot.com, www.borders.com, www.rs-components.com/), media & publishing (e.g. www.newssift.com), product design and parts reuse, knowledge management, enterprise search, and many more.
Designing effective information discovery applications based on faceted navigation (and the capabilities of the Endeca platform) is a highly skilled activity, requiring:
- An understanding of the principles of human information-seeking behaviour;
- Knowledge of how to apply those principles to support diverse user goals and scenarios;
- An appreciation of the user interface – user experience capabilities of the Endeca platform.
The ability of partners and customers to design effective information discovery applications based on the platform is often constrained by the availability of appropriately skilled individuals with this specialized knowledge To mitigate this and to accelerate innovation, we have developed a library of patterns which aim to embody best practice for the design of key elements of the search and discovery user experience.
The Endeca UI Design Pattern Library
In common with other libraries, the Endeca UI Design Pattern Library (UIDPL) describes principled ways to solve common user interface design problems. The patterns do not, however, constitute “finished solutions” to design problems, nor are they a substitute for sound design or user testing – instead, they should be thought of as guidelines for the design of key user interface elements, and interpreted according to the particular user and application context.
The Endeca UIDPL currently consists of approximately 20 patterns focusing on UI challenges unique to faceted navigation and information discovery. Wherever possible, we acknowledge and extend the work of other pattern libraries, such as those of the Yahoo! Developer Network (http://developer.yahoo.com/ypatterns/), Jenifer Tidwell (http://designinginterfaces.com/), Martijn van Welie (http://www.welie.com/patterns/), and Peter Morville (http://findability.org/). The patterns cover a wide variety of user experience elements, ranging from simple interface components such as breadcrumbs, to more complex information structures such as search interfaces, search results pages, Guided Navigation® frameworks, and discovery tools such as comparative views and product ‘configurators’ (i.e. tools to guide the user through a process of configuring a product or service). An excerpt from the pattern for the breadbox (an interactive, breadcrumb-like component which is used to represent the user’s navigational state) is illustrated in Figure 1.
Each entry in the pattern library follows a consistent structure:
- name: a concise label for the problem or proposed solution;
- problem summary: a brief description of the issue or problem that the pattern seeks to address;
- usages: a list of the typical contexts in which the pattern is typically applied;
- constraints and challenges: the main issues that need to be considered when implementing the pattern;
- solution elements: the design guidance that enables the designer to understand and apply the pattern (illustrated with visual examples wherever possible);
- anti-patterns: examples of implementations that seek to address the same problem, but are non-compliant with the design guidance (i.e. one or more solution elements are violated).
Each design pattern may also include references to related design patterns and additional examples.
Creating a pattern library
Ideally, all design patterns would be backed up by an evidence base derived from rigorous primary research and empirical investigation. However, in a commercial setting it is not always possible to perform exhaustive scientific investigation into the rationale for every solution element of every pattern. In addition, the pace of UI innovation and change can also require rapid publication and dissemination of best practice so that applications currently under development may also benefit.
In practice, therefore, the patterns are based on evidence from a variety of sources, including:
- Primary research and user testing performed both internally and by the external academic community;
- Analytical models of human information seeking and discovery behaviour;
- Practical lessons learned from previous projects and implementations.
New design patterns are initiated in a variety of ways. The initiators can be members of the Endeca UX team, software developers implementing Endeca applications, or Endeca clients. Typically, the process begins when an individual examines a solution design and identifies a recurring UI issue for which a best practice pattern is likely to emerge. Candidate patterns may also be identified when project teams make enquiries regarding the best way to design a certain element of the UX, or make observations about an existing UI design.
The sources of evidence outlined above are then analysed and reviewed to abstract out those principles that are sufficiently robust to form generic design guidance, and these are documented as the solution elements of the new pattern. The remaining components of the pattern (usages, constraints and challenges, anti-patterns, etc.) are then populated by the original proposer or the wider UX team.
Although the UI challenges we address are obviously influenced by the capabilities of the Endeca platform, the design guidance provided by the patterns is intended to be as generic as possible, and is phrased at a level of abstraction to be applicable across a broad range of contexts. For example, a solution element might contain guidance such as “Provide users with a control to sort the query results”, without specifying exactly how that mechanism should operate. Depending on the context, therefore, this control might be implemented using either a clickable table header, a drop-down list, or radio buttons. In some cases the guidance offers a list of design options and the criteria by which to select each option, e.g. when to favour radio buttons over a drop-down list.
Maintaining & growing a pattern library
Maintaining and growing a pattern library requires both organisational commitment and dedicated resources. Establishing the library required an initial significant investment of time by key resources with the promise of value delivered for the company, customers, and end-users, Maintaining and growing the library requires an ongoing commitment to harvest, document, and proactively share lessons learned and best practices – in a fast paced and often pressured services and software development environment.
As a group, the UX team critically evaluates candidate design patterns based on scenario-based walkthroughs and best practice reviews, feedback from customers about solution adoption and effectiveness, relevant secondary research, and direct user assessments and testing. The Library is truly a collective and collaborative creation by the UX team and others in the company. Proposed patterns are subject to critical reviews and spirited debates by globally distributed UX team members with a passion and special expertise in information retrieval and discovery applications; sometimes beginning in lively email exchanges followed by real time (distributed) meetings dedicated to specific UI problems and patterns. Existing patterns are periodically revisited or enhanced based on new insights from new design and user research work in the field or questions and observations from project teams and customers.
The pattern library itself is built as a wiki, with write access granted to members of the UX team. Others in the company have read access and the ability to provide comments and questions directly in the Wiki. As evidence and support grows for each design pattern, or as knowledge about the applicability of certain patterns emerges, updates are made to the relevant wiki entry.
The Endeca UIDPL is currently the subject of an ongoing promotional and educational program within the organisation, which has included the following activities: email announcements, a webinar for off-site staff, an in-person presentation, coverage in the Division’s newsletter, and many one-on-one discussions with potential users regarding its availability and content. To maximise adoption, we openly encourage others to submit requests for candidate patterns, and respond to UI design queries by referring wherever possible to the Endeca UIDPL. In addition, we are in the midst of evaluating adoption and impact through a systematic set of surveys and interviews with people across the company. To date, informal feedback has been extremely positive and there are numerous reported instances in which patterns have been used by project teams to help influence and enhance customer implementations by customers and partners.
At present, the Endeca UIDPL is currently only available within Endeca, and as such represents a proprietary resource whose value is realised when applied within customer projects and product development. In this case, the ROI for creating the UIDPL is both direct and measurable. But maintaining the UIDPL as a proprietary resource is just one of many ways to realise value from this investment. A contrasting approach is to make the UIDPL an open resource, accessible to public scrutiny and feedback. In this scenario, the ROI is perhaps less directly measurable, but the benefits are enjoyed more broadly by the wider UX design community and the feedback received both enhances and extends the scope and value of the UIDPL itself. This issue merits further exploration both within the company and more generally, but our current aspiration is to open the UIDPL to the broader community to accelerate exchange, feedback, growth, and UI innovation.
The Endeca UI Design Pattern Library (UIDPL) describes principled ways to solve common user interface design problems related to search, faceted exploration, and discovery applications. It currently consists of approximately 20 patterns focusing on recurring UI challenges unique to faceted navigation and information discovery. It has already shown its value in providing greater consistency and quality in design by embodying best practice guidance that can be adapted to the specific context of each implementation.
At present, the UIDPL is currently available only within Endeca, but our aspiration is to open the UIDPL to the broader community to accelerate exchange, feedback, growth, and innovation.
Acknowledgement: The Endeca UIDPL is the product of the collaborative efforts of the core UX team at Endeca (notably Rebecca Lord, John Fuller, Elisabeth Klann, Dan Andersson, and Lou Wang in addition to the authors of this article) as well as many others inside the company’s broader user experience community of interest.
- Alexander, C., Ishikawa, S. and Silverstein, M. 1977, A Pattern Language: Towns, Buildings, Construction, (Oxford University Press)
- van Duyne, D., Landay, J. and Hong, J. 2006, The Design of Sites: Patterns for Creating Winning Web Sites, Second Edition, (Prentice Hall)
- Gamma, E., Helm, R., Johnson, R. and Vlissides, J. 1995, Design Patterns: Elements of Reusable Object-Oriented Software, (Addison-Wesley)
- Hearst, M. 1999, User Interfaces and Visualization. In Baeza-Yates, R. and Ribeiro-Neto, B. (eds.) Modern Information Retrieval, (Addison Wesley)
- Scott, W and Neil, T. 2005, Designing Web Interfaces: Principles and Patterns for Rich Interactions, (O’Reilly Media)
- Tidwell, J. 2005, Designing Interfaces: Patterns for Effective Interaction Design, (O’Reilly Media)
- Tunkelang, D. 2009, Faceted Search (Synthesis Lectures on Information Concepts, Retrieval, and Services, (Morgan & Claypool)
© 2009 Endeca Technologies, Inc.