Complete the lesson quiz and earn 250 XP.
How an organization structures its design system team directly impacts its speed, adoption, and longevity. Nathan Curtis identified three primary team models:
Pro Tip: As companies scale past 50 engineers, the Hybrid model almost always outperforms purely centralized or purely federated approaches.
In mature engineering organizations, any significant change to the design system begins with an RFC (Request for Comments). An RFC is an open design document that describes a problem, explores alternatives, and proposes a specification before writing code.
The lifecycle of a design system RFC typically includes:
Not every component belongs in the global design system. If a team includes every one-off component in the core library, the system bloats into an unmaintainable monolith.
To decide whether a component belongs in the system, ask three fundamental questions:
How does an experimental idea become a canonical design system component? Mature teams use a staged Incubation Pipeline (often modeled after Node.js or TC39 stages):
@system/lab package. The API is tested in production with early adopters.@system/react package.Design systems export code packages (npm, CocoaPods, Maven) and Figma libraries that other teams depend on. To prevent breaking hundreds of apps, releases must follow Semantic Versioning (MAJOR.MINOR.PATCH):
1.2.1 $\rightarrow$ 1.2.2): Backward-compatible bug fixes or accessibility improvements that require no code changes from consuming squads (e.g., fixing an internal focus trap bug).1.2.0 $\rightarrow$ 1.3.0): New backward-compatible features, components, or optional props (e.g., adding a new size="compact" prop to Button).1.0.0 $\rightarrow$ 2.0.0): Breaking changes requiring manual squad refactoring (e.g., renaming prop onDismiss to onClose, or removing a deprecated component).Pro Tip: In Figma, treat library updates with the same gravity as code releases. Pushing a breaking component change without warning can disrupt dozens of designers mid-sprint.
When you modify a foundational token like $space-8 or a base button CSS rule, how do you verify that you haven't unintentionally broken 40 other components that rely on it?
Manual checking cannot scale. High-performing design systems use Automated Visual Regression Testing in CI/CD pipelines:
A design system without an active internal community becomes an unapproachable bureaucracy. Great governance pairs formal code reviews with informal human connection:
Vague release notes like 'Miscellaneous bug fixes and improvements' destroy trust in a design system. Product squads need to know exactly how a release affects their work.
A high-quality design system changelog should always include:
Consider a high-growth fintech with 150 engineers across 12 product squads. The checkout squad needs a customized 'CountdownTimer' component for flash deals within two weeks.
Applying our governance principles:
color-bg-warning-subtle, space-12, font-mono-tabular).@system/lab. During review, the marketing and travel squads confirm they also need flash-sale timers.