Building design systems
My experience with scaling design systems for small and large teams
5
min read
Background
The teams I have built design systems for have been varied.

Pain points
The problems I have seen repeatedly, and sometimes been hired to precisely solve
Different team members at different stages
Often with team changes a company ends up having no single source of truth. Instead they need to rely on many documents and Figma files with duplicated, inconsistent elements. The same dashboard can end up having 5 different styles of buttons!Multiple sub-apps
A suite of applications by a single brand which needed tweaked branding and served different purposes. A singular design system becomes too monotone and not distinct enough for product verticals.Development and design conflicts
With a growing team, it is much harder to keep UI components in code synced with designs. Getting engineers and designers to speak the same language is difficult.
Solutions
There were some instances where the product was split into 2 or more verticals, with tweaked branding and purposes. In these complex cases, I leaned heavily on Figma's native variables, instance swaps, layered tokens, etc. When time was of the essence, and products much simpler, I adapted and used existing UI kits

Impact
Our product looked more polished and consistent.
Business value was boosted as the product sold itself
Man hours spent on building were reduced by up to 60%
Developers could track changes leading to fewer dev-to-design conflicts or deltas
Who is this advice for?
For everyone looking to
Speak a common (design) language
Manage one or more design systems
Build scalable products
Reduce time-to-market
Learn about the process of setting up a design system
Approaches
How does one go about getting an improved design system?
Adopt an existing design system
Adapt an existing design system
Create your own design system
Conclusion
In my experience with design systems, I have gotten the chance to see up close how it is meant to be different for everyone, there is no perfect implementation.
The design system doesn’t need to be complete for it to be useful
A design system exercise doesn’t need to be a major undertaking, for it to have impact on the team.
Write as much or as little documentation works for you.
A nimble design system that is flexible and useful is the goal

