Get weekly design system tips and tricks, directly to your inbox.
If you’ve ever flown on an airline, you know the standard process.
Book a ticket
Check-in on the airline’s app
Visit your airline’s kiosk at the airport to check any bags
Go through security
Find your terminal
Get on the plane and play around with the fancy screens
At each point, you’re interacting with some sort of digital interface somebody has built. Typically, at big commercial airlines, these interfaces are almost always designed and built from scratch in a one-off manner — no planning or reference to other digital interfaces, wasting a ton of time and money by the company to build a consistent user experience.
If these airlines were smart and hired me (and one of them has), we would cut back on all of this and build a design system instead.
Defining design systems
We’re still in the early stages of “design systems,” “component libraries,” and “style guides,” and as a result, the industry still hasn’t dialed in specific definitions. Until they do, I’ll use the ones that best fit and most appeal to me.
My favorite illustration is a lot like how a first-rate chef would stock their food truck. Creating and implementing a design system is essentially the process of building all of the items you plan to sell from your food truck during that specific outing.
And what you don’t bring along is arguably as important as the ingredients you do include.
Where teams go wrong
If you’re operating a Mexican food truck, you wouldn’t want to take up space with all the ingredients and spices to make an Indian dish like Chicken Tikka Masala.
So what you don’t build into your design system — at least not yet — is as important as making sure you have everything it takes to build the functionality you need.
Just as importantly, you want each ingredient in your design system to be tried and true. Will these elements work together?
We built it — why doesn’t it work?
Inside the walls of a design team, they’re putting these pieces together. They’re spending time tweaking everything until they’re good enough. When they’re finally done, they’ve convinced themselves they’ve built an excellent design system — that everyone will use and love.
Nope. That’s not how it works.
Why?
That would be like you or I launching a product into the world without marketing, researching, user-testing, or, simply put, getting anyone’s outside opinion on whether this product is something anyone actually wants!
Coming back to our food truck analogy, you’d probably want to have your friends try your tacos before you buy enough ingredients to make 5,000 of them.
Just like a startup, there’s so much more involved in design systems besides the actual design. You have to test its usability and appeal. You have to talk to customers about it. You have to market it. You have to use it with different features.
This seems obvious, but this is the process I see time and time again.
Without fail, it fails every time.
Who matters more — designers or engineers?
I'm a designer, so I can get away with saying this: Nothing happens without the engineering team.
We can spend days and weeks designing a gorgeous interface but until an engineer breathes life and functionality into the interface, our work is nothing more than an idea.
This typical waterfall approach — where the designers design and then pass to the engineers to engineer — is the leading cause of inefficiency when it comes to building and implementing design systems.
As a designer, once we get a project going, my job is to continually ask the engineer, "What do you need next?"
For instance, when the engineer asks me, "What did you have in mind for this element?"
Rather than going back to my desk and pounding out a 10-page set of instructions, I should be able to answer that question quickly. Maybe I open my iPhone, head over to the app store, and say, "This. This is what I have in mind. Kinda like this."
This hot potato approach works much better. Designers put together the smallest unit of a product and then hand it off to the engineers, who put together the early iteration of the project. From there, designers and engineers work collaboratively throughout the development process instead of a frustrating cycle of back and forth.
Having a better process for both creating and implementing design systems not only makes life easier for teams working on them — it also allows you to create better experiences for your customers, too.