<?xml version="1.0" encoding="utf-8"?>

Creating a design system can transform how teams design and build products, but only if it’s done for the right reasons and with clear expectations. While the promise of speed, consistency, and shared language is appealing, the path to achieving it is rarely straightforward.

Before diving in, it’s essential to evaluate whether a design system fits your team’s maturity, resources, and workflow. A practical first step is to conduct a design audit, which helps reveal inconsistencies, redundancies, and inefficiencies across your product. By mapping every component, flow, and interaction, teams gain a clear picture of what’s working and what needs standardization.

Once a system is in motion, challenges emerge: maintaining it requires continuous attention, cross-functional alignment, and cultural change. Teams must balance initial investment against delayed results, secure leadership support, and prevent the system from becoming outdated or ignored.

This lesson unpacks these hurdles, showing how thoughtful preparation, collaboration, and gradual adoption turn a design system from a theoretical ideal into a lasting advantage for the entire organization.

Exercise #1

Running a design audit

Running a design audit

Before committing to a design system, teams benefit from understanding their current state through a product audit. This process helps reveal how consistent or fragmented the product design truly is.

A good audit follows a clear, step-by-step structure:

  • Gather everything that exists. Collect all design assets, screens, and interface elements currently in use.
  • Find collaborators. Involve cross-functional partners like developers or support specialists to capture overlooked details.
  • Sort and categorize. Group similar items together and label them by purpose, such as forms, headings, or navigation patterns.
  • Identify opportunities. Review your findings to spot redundant, inconsistent, or inaccessible elements that need improvement.

Observing how these elements appear across different pages or devices can uncover inconsistencies that affect both users and developers. Even if a design system is not created immediately, the audit alone provides valuable insight into usability issues, accessibility gaps, and redundant assets that slow down development.[1]

Exercise #2

Understanding the design system process

Building a design system is not a single event but a continuous process that evolves with the product. It begins with aligning the organization on why the system matters and who will contribute to it. Once leadership support and time are secured, the process follows several overlapping phases that guide the system from idea to long-term adoption.

A typical journey includes:

  • Approval. Gaining leadership buy-in to dedicate time and resources.
  • Discovery. Researching existing workflows, running audits, and identifying key challenges.
  • Definition. Outlining contributors, governance, and the overall structure of the system.
  • Building. Designing, documenting, and developing the core components and patterns.
  • Documentation. Explaining how to use each element clearly, keeping designers and developers aligned.
  • Adoption: Supporting teams in using the system through onboarding, examples, and feedback loops.
  • Maintenance. Updating the system as products and technologies evolve.
  • Advocacy. Promoting awareness and adoption across teams to ensure the system becomes part of the company culture.

This process is not strictly linear. Teams often revisit earlier stages when new insights arise or when the system grows beyond its initial scope. Treating a design system as a living product helps it stay relevant, scalable, and valuable to everyone who uses it.

Pro Tip: Include system maintenance in the team’s regular planning, not as ad hoc work.

Exercise #3

Finding inconsistencies across platforms

When products exist across multiple platforms such as web, mobile, and tablet, visual and functional inconsistencies can easily appear. Buttons may behave differently on Android and iOS, spacing might shift between screen sizes, or text styles may not match the brand’s voice. These differences often grow unnoticed over time, especially when teams work in isolation or reuse outdated assets. Conducting a cross-platform review helps expose these gaps early and prepares the ground for a unified system.

To make this review effective:

  • Compare core components and user flows across all platforms and devices.
  • Look at variations in navigation, spacing, animation, and interaction feedback.
  • Pay attention to details such as color contrast, typography size, and icon alignment.
  • Test accessibility behavior like focus states, keyboard navigation, and touch targets.
  • Document your findings in a shared space where everyone can see and comment.

This structured comparison reveals where design and code alignment is missing. With these insights, teams can prioritize fixes and make data-driven decisions about what should be unified through a design system. Over time, this consistency ensures that every platform feels distinct yet clearly part of one product identity.

Pro Tip: Compare real screens side by side to spot hidden inconsistencies that no checklist alone will reveal.

Exercise #4

Collaborating across roles

A design system succeeds only when it becomes a shared responsibility. Designers may create the visual foundation, but developers, product managers, and accessibility experts ensure that it performs well across contexts. Collaboration starts with defining ownership: who contributes, who reviews, and who maintains the system. This clarity prevents duplicated work and keeps design and code aligned as the product evolves.

Cross-functional input is essential during audits and documentation. Developers can highlight gaps between design files and implemented components. Product managers connect design decisions to business priorities, while content and accessibility specialists ensure that copy and interactions remain inclusive. Establishing open communication channels, such as shared documentation spaces, review sessions, or dedicated Slack threads, helps transform the design system from a design initiative into an organization-wide resource. When collaboration becomes part of the process, the system stays relevant, scalable, and trusted across all teams.[2]

Exercise #5

Getting leadership buy-in

Securing leadership support is often one of the biggest hurdles in building a design system. Leaders usually look for measurable outcomes, so explaining its long-term value in clear business terms is essential. A design system saves time by reducing duplicated work, increases consistency across brands, and accelerates development cycles. Yet these benefits unfold gradually, which can make early justification difficult.

To gain buy-in, start by showing evidence:

  • Present audit findings that reveal duplicated components, inconsistent patterns, and inefficiencies.
  • Connect these issues to business goals, such as faster release cycles, stronger brand trust, or reduced QA costs.
  • Highlight team pain points that slow delivery, and show how a shared system can remove them.
  • Start small by proposing a pilot system or limited component library to demonstrate early results.
  • Show success metrics: time saved, fewer design–dev iterations, or improved user satisfaction.

Leaders are more likely to support a project when they see how it improves measurable outcomes and team collaboration. Building trust through transparency and data-backed storytelling helps position the design system as a strategic initiative rather than a design-only effort.

Exercise #6

Building a culture of consistency

Even the most advanced design system fails without the right mindset behind it. True consistency is not only about using the same buttons or typography but about creating a shared culture where every decision supports coherence. Teams need to value reusability, documentation, and collaboration as part of their daily work rather than as extra steps. This cultural shift takes time and continuous communication.

To foster this culture:

  • Encourage shared ownership. Involve different teams early in discussions, so they see the system as theirs, not as external rules.
  • Promote documentation habits. Every new component or update should be clearly described to keep others aligned.
  • Celebrate correct use. Recognize individuals and teams who apply the system effectively to reinforce its importance.
  • Create learning loops. Regular reviews and feedback sessions help surface gaps and align decisions.
  • Embed consistency in onboarding. Teach new team members how to use the system from their first day.

Building this culture ensures that consistency is no longer enforced but lived.

Exercise #7

Balancing customization and standardization

A strong design system provides structure, but too much rigidity can limit creativity. Finding the right balance between consistency and flexibility allows teams to adapt patterns for new contexts without breaking coherence. The goal is not to make everything identical but to ensure that every variation still aligns with shared principles of usability, accessibility, and brand identity.

To maintain this balance:

  • Define clear boundaries. Establish what must stay consistent, such as colors, typography, and interaction rules.
  • Allow guided flexibility. Create variants and tokens that adapt to different products, themes, or platforms.
  • Encourage experimentation. Designers can explore new patterns as long as they document and justify their use.
  • Review before adoption. Evaluate new ideas collectively to decide if they should become part of the official system.
  • Keep communication open. Regularly discuss custom work to prevent teams from diverging unnoticed.

Exercise #8

Learning from design system audits

Audits are not only a starting point but also a long-term health check for any design system. They reveal whether the system still meets its goals, stays consistent across platforms, and supports both designers and developers effectively. By revisiting what has been built, teams can spot outdated components, unclear documentation, or areas where new needs have emerged.

A productive system audit includes:

  • Reviewing component usage. Identify which patterns are widely adopted and which are underused or duplicated.
  • Comparing design and code. Ensure that visual and coded versions of each element match in behavior and appearance.
  • Checking accessibility standards. Verify that updates meet current compliance and usability expectations.
  • Gathering feedback. Interview or survey system users to understand what helps and what causes friction.
  • Prioritizing improvements. Turn findings into actionable next steps with clear ownership.

Regular reviews strengthen trust, promote accountability, and make the system a dependable foundation rather than a static library.

Pro Tip: Treat every audit as a learning moment. The goal is not to judge what’s wrong, but to guide what comes next.

Complete lesson quiz to progress toward your course certificate