Are Pattern Libraries Good for Design?
This post originally appeared on the Elevator Up Blog
As designers, the default behavior tends to be that we need to design everything from scratch. That’s what we do. We are, by nature, creators. The free dictionary defines design as:
a. To conceive or fashion in the mind; invent.
b. To formulate a plan for; devise.
For a long time I thought that anything in the design world that was not created from a blank slate was cheap and lacked creativity. Furthermore, I thought that anyone who used a template in their designs that was not original had sold out and probably shouldn’t wear the banner of “designer.”
The more I get into designing experiences and digital products the more I realize that this stance was too harsh. There are many methodologies and practices in the space we work that are about being more efficient, about getting things done, and ultimately about shipping products. The idea of doing something fast to get it out there, and then taking the time to refine it and iterate it over time is scary to a designer who likes to have things planned out and perfected before showing them to the world. It works for development, but can it work for design?
One of the first projects I tackled as a new experience designer here at Elevator Up was designing a pattern library for our team. A pattern library is a collection of user interface design patterns. That sounds an awful lot like a template. Naturally upon hearing this my internal antennae began to stand up and I became uncomfortable. I started to ponder questions like:
“Can I willingly design something that I know is going to be reused on other projects later?”
“Won’t this mean that I can’t design this particular element on a future project?”
“Am I painting myself into a corner that I can’t design my way out of?”
The best way to find out if these things were true or not was to dive right in. Here’s what I discovered.
In the past, programmers would typically work on the back end of a project and spit out whatever they generated onto a blank page. Or worse, they’d add their own design to the output which generally didn’t look good. This led to a significant amount of cleanup work for programmers or front-end developers to match the completed designs, which then led to frustration for all team members. With a pattern library, designers and developers work with a common language during development which ultimately leads to a better end product and happier teams. This also allows designers to spend more time on the details which is what ultimately separates a good design from a great design.
EFFICIENCY AND REUSABILITY
For the most part, a form is a form, a paragraph is a paragraph, and so on. However, when starting projects from scratch we waste a considerable amount of time designing these elements that are more or less the same from project to project. Of course, there are some differences depending on content or context, but these are the details we can focus on with the free time we’ll have from reusing elements in our pattern library.
EVOLUTION AND MAINTAINABILITY
We all know that everything in the digital realm changes at a rapid pace. The nice thing about a pattern library is that it can be revised as needed and added to over time. If a new control comes out, we can quickly add it to the library for use on future projects. If we discover that there is a better way to do something through user testing or insights gained during work on a project, then we can easily edit our library to reflect this new stance.
The good news is that I was completely wrong to think that templates showed a lack of creativity. As it turns out, you can teach an old designer new tricks. Sometimes the design has nothing to do with a product and has to do more with rethinking the standards we create for ourselves. Having a library of reusable elements isn’t a bad thing. It is a powerful tool that allows a team to quickly reference a set of standard elements and reusable components as sane defaults, leading to greater productivity and consistency while also saving both time and money. Pattern libraries are good for design.
Do you use pattern libraries? How have they helped you?