Yes, You Need a Pattern Library… Just Not Yet.
I feel it all the time, I’m sure you do too. I feel this guilt when I fail to do something that the design community has insisted that all designers must do.
When I jump right into high-fidelity prototypes, I feel guilty. When I rely too much on my own assumptions rather than user insights, I feel guilty. And, when I fail to start a pattern library at the outset of a new project, I feel guilty.
For the first two points, sure, you should feel guilty. These are best practices for reasons I won’t get into here. (Don’t believe me? Take a look here, and here.)
But should you feel guilty for not starting a pattern library?
I’ve realized that the answer is No. You shouldn’t.
I’m not suggesting you don’t need a pattern library at some point. You do. Just maybe not right now. In fact, creating an obligatory pattern library too early in your project could be slowing down your process.
How? Well, at the beginning of a project it’s beneficial to be a little messy. Keeping things loose is key to a Lean UX process as you test assumptions to determine what your users need. Now is not the best time to focus on your pattern documentation.
After a while, though, the strain of not having a pattern library will set in. You’ll know that it’s time to start investing in your pattern library when these four signs emerge:
YOU’RE HAVING THE SAME DISCUSSIONS OVER AND OVER AGAIN
Developers will often tell you they abide by the principle of DRY — Don’t Repeat Yourself. This keeps their code clean, and free of redundancies.
Pattern libraries can help product teams follow this principle as well.
By the time we were a few months into building our app, my team was feeling a sense of deja-vu when discussing our designs. What pattern do we use for opening a modal again? What should the text field look like on this page?
A shared pattern can help avoid these cyclical discussions. Now, when the question of what pattern to use comes up, we have a reliable point of reference.
YOUR TEAM IS REFERRING TO THE SAME PATTERNS BY FIVE DIFFERENT NAMES
“Let’s use the modal that fades as it shoots up and has a typeahead search field.”
Yes, I said this in a meeting. No joke. This was one of those moments when the stark realization of our need for a pattern library set in.
Pattern libraries can help create a common language across your team, and departments. When you say “frying pan”, you can assume I have the appropriate image in my head. In the same way, you could say “Modal List Picker” and your team will know exactly what you’re talking about.
SMALL INCONSISTENCIES ARE MOUNTING
It’s an unfortunate reality, but your app will have a few tiny fissures at the start. An outcast font here, some renegade margins there. That’s OK. You’re still figuring things out.
Over time, though, these tiny fissures begin to add up to more serious cracks in the user experience. Your app may start to feel unpolished, asymmetrical.
Malcolm Gladwell once wrote how people can detect fraudulent art within seconds. You don’t want to risk your users writing off your app in the same, unconscious manner.
The process of creating pattern library can help your team focus on identifying and fixing these inconsistencies before they get out of hand.
NEW TEAMS ARE WORKING ON THE PRODUCT
During the initial stages of a new product, it’s common for a small team to take complete ownership. This keeps everyone focused, so they’re able to react to customer needs and insights as fast as possible.
As the product grows, the amount of teams and contributors will grow as well. Without pattern documentation, new teams may rekindle the pattern debates you thought were over.
A pattern library can help in communicating the what, how and why behind your patterns to new teams and stakeholders.
It’s best to remember that pattern libraries are tools, not dogma. Yet, if you’re designing a product, you’ll feel the guilt. You’ll worry you’ve ignored practical advice and have let your team down.
That’s OK. It’s more important to take some big leaps of faith, watch your ideas fail, and keep on learning and iterating.
You’ll build a pattern library someday, don’t worry. The time will come when you can’t ignore strain. Best of all, it won’t feel like an obligation.
It’ll feel like an epiphany.