Build your design system with these 8 real-world lessons
Hearing all the hype about design systems can give you the impression that you just create a design system and *poof* everything comes together. Maybe you write a blog post about it and then you never have to think about design systems again.
I can tell you that that’s far from reality. A design system is a process, and a long one at that. It’s not uncommon to “fail” in your first (or second or third) attempt. How do I know? Because that’s what happened when I set out to create a design system at Instacart.
It took three tries over the course of a few years to build a design system that worked for our teams. And after we found something that worked, we were still fine-tuning it because a design system is a living, breathing thing. There’s no one-and-done.
So whether you’re already off to the races or just starting to think about how to mobilize your design system team, here are some key things to remember along the way.
Treat it like a product
Our design system didn’t truly come together until we saw it as a product with a full design process.
We had to approach it with the mindset of — How would we go about building this if it was anything else we’re working on? If you want to create an effective design system, you can’t treat it like a side project.
Leave breathing room
Your system should be opinionated when possible, but it also needs to be flexible. The point of a design system is to help scale and empower, not lock in.
Thinking about things systematically is always healthy and leads to a better product... until it doesn’t.
For example, during my time at Instacart, we had a new shift in demand from brands on our platform. They wanted to give users coupons, which required new kinds of controls on every product card.
We put meticulous thought into the product cards (they are the lifeblood of the product after all). This new direction couldn’t be an opportunity for us to dig our heels in and oppose. We needed to shift with our business and the ability to rethink components was necessary.
A.B.U. (Always Be Updating)
The biggest mistake you can make when scaling a design system is thinking that you’re done. You can always do something better, and new requirements are always coming out. You need to be in it for the long haul.
Standards change. For instance, Apple’s Human Interface Guidelines gained some new updates this year, and it will probably change again next year. You need to be constantly updating to stay on top of user expectations.
You don’t always need a dedicated team
The problem with all the hype surrounding design systems is that it makes it seem like you need to do it a certain way to achieve results. One assumption is that you need to have a dedicated team. Having a dedicated design system team is a nice thing to have when building a system from scratch, but it’s not necessary.
But, to my previous point, building a system is not a small side project. So if you can’t have a dedicated team, treat it like a product and figure out how many people can commit X amount of hours over the next few months to build it. It just depends on your needs and the size of your organization.
At Abstract, we still have a small design team, so we all contribute to the system. It allows the system to get the resources to grow and change while we keep working on the next exciting update for our platform 😉.
Define the design principles for your design system
When you’re creating a design system, it helps to ask yourself: Why are you doing this in the first place? What are the major goals that need to come out of this?
Talking about the goals of your company and your product will go a long way in helping you figure out how your design system should work. The answers to those questions will become the North Star of your system, guiding the decisions you make, and helping you solve challenges that pop up along the way.
Don’t work in isolation (tempting as that can be)
Building a design system is a masterclass in collaboration. It’s important that other teams build the system with you. Getting input and letting people into that process helps us challenge and overcome assumptions we didn’t even realize we're making.
You need to be as collaborative as possible because so many different people use a design system. What makes sense for you is not always going to be what makes sense for someone else with a different perspective and skillset.
And, at the end of the day, if no one wants or can use your design system, then why did you spend all that time creating it? You might as well be as open as possible to other people’s viewpoints to build a design system they actually want to use.
Measuring the success of a design system looks different for everyone
How do you know if your design system is successful? It’s tempting to make a CVS receipt–length list of key performance indicators (KPIs) you want to hit.
But, in my experience, it’s best to keep it simple. When measuring the success of your system, ask yourself:
- Is it helping or hurting us?
- Are the other folks at my company using what I built or are they choosing to do something custom?
- Is the system being talked about socially, or is it living in obscurity?
Take time to reflect
Creating a design system is a process. And that means you’re always learning as you go, especially when you go down the “wrong” path. This is where reflection comes in.
At Instacart, we didn’t really start succeeding until we started reflecting together as a team, figuring out what was working, what wasn’t working, and why. Working out in the open is the only way you're going to figure those things out. You work with smart people. Include them.