A few weeks ago, I attended the UX Book club event here in San Francisco. The book in discussion was A Pattern Language by Christopher Alexander. It was a lively discussion and drifted back and forth between architecture, the Yahoo! Pattern Library, our Social Patterns collection, patterns in interaction design and the motivations behind that versus how Alexander approached gathering and documenting his patterns.
Somewhere in the discussion though, a participant (can’t recall names) asked about the evolution of a pattern language or patterns and wondered about the genetics of a pattern. This question intrigued me and I have been thinking about it ever since.
What causes the evolution of a pattern?
The history of patterns and desire to craft them for the interaction design discipline has come from a recognition of repeatable design solutions that are the archetype for a given problem. The pattern is really a documentation of that archetype.
I would posit that if a pattern library and set of patterns are developed and documented correctly, then the evolution would be a long time coming as the interaction solution should be written in a technology agnostic way. Technology will constantly be a force for moving design solutions forward but the needs of a person and the motivations for what they are trying to do and the solutions for accomplishing that are not necessarily bound by the technology presented to them.
When we set out to write the Social Interfaces book, we approached the topic as a living language with a set of high level principles that arch over all the concepts, and then we drilled down along a set of very large topics until at the very granular level we have the patterns. The patterns attempt to be agnostic about technology, although we do acknowledge that solutions for web are going to be different than mobile or touch screen devices, but the motivations and end goals may be identical for the user.
So back to the question of evolution – I think that over time, some patterns do fade away as new ways to do something appear and new technology makes things easier. For example, in the past you might have had a sequence of clicks and typing and screens and messages needed to leave yourself a note on your mobile phone. Now with the smart phones and lots of expanded functionality, it may be a couple of clicks, a voice message and you are done. The needs are the same, the outcome – a note to myself- is the same, but the pattern of interaction solution is very different.
I think the real point of a pattern’s evolution comes when there are two ways of doing the same thing – perhaps one the old way and the second in a more technically saavy way that allows different interactions towards the same outcome. When these coexist for awhile until the new way spreads throughout the population until it becomes the expected way to do things. Then the old pattern can be retired and the new way takes its place until something better comes along.
Another point of evolution comes when ideas and interactions are adopted from other media or disciplines and integrated into an interaction solution. A few years ago, thinking about timing and transitions in an interaction design pattern wasn’t really on the table (unless you were designing flash). Now with AJAX, and the expectation that the web should work like all the other client applications a user interacts with, timing and transitions, adopted from film, are a key part of a user experience design solution. Page or interface transitions from one moment to the next can make or break an experience. Bill Scott, when he was at Yahoo!, created what he calls Interesting Moment matrix [Drag and Drop Interesting Moments grid], to accompany the design pattern and spec documents. The grid defines the transitions and timing and other important aspects of a rich interaction. This grid is similar to a storyboard and cohesiveness document you might find as a tool in film.
We shouldn’t be afraid of evolving our patterns – they should evolve and iterate as necessary to stay relevant and appropriate. On the other hand though, they should have a longer lifecycle than the standards and guidelines around things like Brand and Visual expression. And in some cases even technology flavor of the day. The fidelity level and prescriptiveness of the pattern as it relates to the technology will dictate how timeless the pattern truly is. If you can use the same pattern for different platforms and code languages, then it really is a pattern and not a pattern+spec.