A Design System’s Impact
How we got (and continue to push for) buy-in at Lyft
I fell into this role following my passion to learn, create, and educate. You can’t exactly study design systems in school, so to be successful in this field you are constantly reaching out to learn from others. Make no mistake, there are no right answers and every company is different. We’re all learning through trial and error, together. The Lyft design system and team, as it stands, is the culmination of trial and errors of others and ourselves:
Our problem
Not every company needs a design system. We are a company in hyper-growth. Our design team grew from a design team of 22 to 100+ in under 2 years. When previously we could all attend a review and agree on a solution, now we’re a building and a country apart.
No rules, just… right?
Multiple designers solve the same problem, unbeknownst to each other. Others see those solutions, adopt and adjust them to their needs. This further results in a disjointed experience for the user. The same button may do different things or the different buttons may do the same thing. We aim to deliver consistency and predictability to our products.
Good will hunting
Copy and pasted code means everything is a one off, which takes time to create. Not to mention if we want to update the style of a button, we need to hunt for every use and adjust it. We aim to reduce design and engineering time and debt.
Swept under the rug
In the past we didn’t put a strong focus on accessibility, localization, and solutions for every state or edge case a component might encounter. Today we aim to raise the quality of our experiences for every person and every edge case.
Lost in translation
Due to fast timelines, our designers usually only hand off iOS designs. Our Android developers look at those designs and make assumptions for how to solve it in Android. Sometimes the standard solution in the HIG or Material Design does not work best for us. We aim to create a universal design system that works best for Lyft on all platforms.
Our product
A design system is a product, best built and maintained by a dedicated team held accountable for the increased performance of others. We are comprised of mobile and web system designers and engineers who contribute to three objectives:
Build (& maintain)
This is what most people think of when they talk about design systems. We build & maintain flexible, universal foundational elements and components to Lyft’s quality standards. We work with teams to prioritize which elements will have the greatest impact. There is a highly collaborative process to make sure they solve the root cause of the real need and work every single time, for every person, and every edge case.
Our components are used everywhere, a bug in one of our components could mean a bug in many features. We address 100% of bugs within a prescribed quality service level agreement.
Contribute
We deliver a consistent user experience for key flows and features by participating in the adoption and migration of current designs and code into the system.
- We promote the adoption of the system elements when teams create new features. We uphold our promise to build flexible, useful elements by measuring how many teams ship all new features using only design system elements — that includes new components created with system foundational elements.
- We migrate features and flows that teams don’t own (or don’t plan to work on) into the system for them. We aim for 100% of use cases in the app to be using the system element.
Support
We educate teams on how to use core elements and apply the LPL principles to build their own. The biggest way we do this is through documentation, which we maintain for 100% of the elements that have been designed and implemented. Additionally we lecture at all-hands and brown bags, teach classes, host office hours, and answer questions on Facebook Workplace and Slack.
Success in support and education could just be proper use of system elements in the app, but we push it further. We encourage designers and developers on external teams to contribute back to the system.
Our end goal
We want our design system to be the canonical way for designing and building UI across all of Lyft.
- Our products have full visual and interaction consistency throughout. Product teams need only a fraction of the time to define, design and implement new features.
- Our library includes mature components & layout features that provide comprehensive functionality such as: accessibility, internationalization, observability, haptics, sound and animation.
- There is comprehensive documentation available for designers and engineers that makes it easy to find and use existing components, extend them or build completely custom designs that fit within system.
- The system continues to evolve and expand including contributions from across the company
Last thoughts
We are constantly reassessing and forming our process. What are your problems? Who is your team comprised of? What is your product and end goal? Excited to hear from you.
I’m Linzi Berry, currently design systems manager at Lyft. I sweat the details so you don’t have to. Please subscribe!