The pattern perspective
The Performance Technologies Group
Category: current-papers | Author: Jalal Radwan, Systems Engineer | Date: 01/09/2006
What are patterns?
Patterns have had a profound impact in the Information Technology and Software Engineering industry. In software development a pattern can be thought of as a well established design or template that can solve a common problem. The use of patterns in software development has provided many advantages such as an improvement in code standards, scalable designs, readability and the reduction in development time.
The practice of capturing design solutions in the form of a pattern began in the Architectural industry in the late 70's and was pioneered by Christopher Alexander. Alexander used the concept of patterns to communicate ideas about living and work environments and his book A Pattern Language is reputed to be the best-selling treatise on architecture of all time, with more than 10,000 copies a year to this date. A pattern is an optimal solution for a common problem. As common website problems are discussed in the user interface (UI) community and resolved, common solutions emerge. These solutions are refined to become a design pattern.
Patterns in UI design
Patterns are now being used in the UI design process. In the context of UI Design, Granluad, Lafereniere & Carr (2001) state that "The primary goal of patterns in general is to create an inventory of solutions to help UI designers resolve UI development problems that are common, difficult and frequently encountered". They also describe the advantages of patterns over guidelines by stating that guidelines provide possible solutions, but are generally viewed as difficult to understand and apply. This is because a pattern is a generic design solution which is more consistent and conveys knowledge in format that can be understood by different stakeholders with different knowledge and experts. The general format of a UI pattern consists of a pattern name, a description of the problem in a certain context, a solution, a prototype and rationale. A common pattern is the navigation tabs pattern which solves the problem that user needs to locate information on a website that consists of many categories or complex hierarchy.
More importantly, patterns can reinforce fundamental usability principles such as consistency in a design. This greatly improves the quality of UI design processes carried out by both experts and novices. PTG Global's UI designers believe that having access to patterns can reduce up to 50% of the time required to design a UI. This has prompted PTG Global to investigate and develop a Pattern Library application to capture and enhance the reuse of well established patterns. The Pattern Library was developed internally using our own XPDesign methodology. The result is a highly usable interface with rich functionality that allows users to access and add UI patterns efficiently and effectively.
Using patterns to create predictable applications
The general perception espoused by Roosen, Susanne & Kellogg (1998) is that building Human-Computer Interaction (HCI) is complex, unpredictable and a source of enormous variability. However, we do not believe this is to be true, provided a systemic approach such as XPDesign is used in the design process. This complexity and variability is experienced because of the lack of effective communication framework between customers, users and software developers. This leads to miscommunication resulting in ambiguous requirements, a UI that does not work and ultimately an application that has serious deficiencies.
The current UI design process is based on an ad-hoc iterative prototyping approach which will not result in the most effective UI. This is because the fundamental design of the UI may not be based on scientific or proven design knowledge. In addition, the software industry does not make use of a scientific and a repeatable methodology for user interface design. This forces software developers experienced in the computer science domain, to make decisions without consideration for the users' cognitive processes. Something they are unlikely to have been trained in or have little knowledge of.
I am currently a software developer at PTG Global and have encountered the complexity associated with building a high performance UI during the development of the Pattern Library. The use of XPDesign methodology to design the UI allowed me to be more comfortable that the UI works before writing a single line of code. Therefore, design decisions were made earlier in the UI development process, rather than later when iteration would have been lengthy and expensive.
Conclusion
Patterns can contribute greatly to the usability of applications while also reducing design time. It is important to note that making the decision to use patterns in general can be a complex process without a systemic design methodology to help the designer choose the right pattern to use. It is time now to replace trial and error UI design with a systematic design process supported by proven UI design patterns. This is an initiative PTG Global has already taken and succeeded in with its XPDesign methodology.
References
Alexander, C., Ishikawa, S. & Silverstein, M. 1977, A Pattern Language: Towns, Buildings, Construction, Oxford University Press, New York.
Erickson, T. 2005, 'Pattern Languages as Languages', [Online], 10 November 2005, Available at: http://www.visi.com/~snowfall/PatternLasLanguage.html.
Granluad, A. , Lafereniere, D. & Carr, A. D. 2001, 'A Pattern-Supported Approach to the User Interface Design Process' HCI International 2001 9th International Conference on Human-Computer Interaction, New Orleans