← All work

Case study · Design Systems Governance

Operationalising the design system.

I take a drifting component library and turn it into a governed system that streamlines delivery across all 10 product teams at Nextens. The method is three steps in a fixed order: consolidate, connect, govern.

Overview

When the work starts in December 2022, Nextens has two component libraries. One lives in Figma, the other in code, and they drift further apart with every release. Nobody owns them. No rule says how a component may change, so teams build around the gap.

I start with the foundations and work up to components. By Q1 2024 all 10 product teams build with the system, and a lead developer maintains Storybook together with my team. The next step makes the system readable for AI.

CompanyNextens / LexisNexis (RELX)
ProductB2B tax compliance SaaS
RoleOwner · Senior UX Designer, UX Lead from Oct 2024
TeamUX team and a lead developer
PlaybookConsolidate → Connect → Govern
PeriodDec 2022 to present
SkillsConsolidation · governance · Storybook · AI readiness
01Context & challenge

The old Figma library shows the problem at a glance. Button versions V1 and V2 sit side by side, next to frames marked work in progress. The secondary button is blue in one version and red in the next. In total there are 20 button variants and more than 20 dropdowns.

The code library is a separate set again, and nothing keeps the two in step. Every release widens the gap between what is designed and what ships.

User problem

Inconsistent components give inconsistent screens, in a product where clarity is a compliance matter.

Business problem

Drift between design and build costs engineering time on rework and adds refinement rounds to every feature.

Team problem

Nobody owns the system and no rule says how it changes, so people work around it.

02My role & the playbook

I own the system end to end: the consolidation, the workflow and the governance. The hard part is adoption by teams that do not report to me. So the system has to fit the way engineers already work, or they will route around it the way they route around the old one.

Complexity has to earn its place. When a simpler version gives most of the value, the simpler version wins, because adoption is the measure.

Step 1

Consolidate

Cut the variants down before you add a single rule.

Audit · foundations first · configurable components
Step 2

Connect

One workflow from design to build, with an owner on each side.

Shared workflow · documentation checklist · publish to Storybook and Figma together
Step 3

Govern

A clear rule for every new component.

Contribution decision tree · local exceptions · announcements to developers
03Key decisions

Three principles carry the playbook. Each one has a cost, named under it.

Consolidate before you govern

The first design system meeting, in December 2022, is about typography. From the foundations I work up to components. 20 button variants become 4, and more than 20 dropdowns become one configurable component. Size, state and icons turn into properties of a single component.

Trade-off: short-term disruption to work in progress, in exchange for a system small enough to govern.

One workflow, two owners

Every component moves through the same workflow. The UX team takes it from task to ready, and ready means documented. A product team builds it, UX and QA review it, and it ships to Storybook and Figma at the same time. A lead developer maintains Storybook with my team.

Outcome: engineering co-owns the system, so using it is the easy path.

A rule for every new component

Before anyone builds something new, a decision tree asks three questions. Does a similar component exist? Can it be adjusted? Should the adjustment be available to everyone? A component that only one context needs stays local. Everything else goes through the workflow.

Trade-off: real governance overhead, justified by the drift it prevents.

04The playbook in practice
Step 1 · Consolidate

From a drifting library to a governed system

The before and after in one picture. On the left, the variants that teams pick from in 2022. On the right, the system they build with today: four button types, one configurable dropdown, and one workflow between Figma and Storybook.

Before and after: a drifting library becomes a governed system. Buttons 20 to 4, dropdowns 20+ to 1, two libraries become one workflow with two owners BeforeA drifting component library AfterA governed system BUTTONS 20 variants Button Button Button Button Primary Secondary Tertiary Ghost One component. Size, state and icons are properties. 4 variants DROPDOWNS 20+ variants 1 configurable component LIBRARIES AND OWNERSHIP Figma library Dev library drift No owner. No change rule. Each team works around the gap. Figma Storybook one workflow Owned by the UX team and a lead developer Every new component follows the contribution rules.
Before and after, rebuilt from the old and the new Figma library.
Step 2 · Connect

One workflow, two owners

New ideas land on the UX backlog as a component. The UX team designs it, reviews it as a team and documents it before it counts as ready. Before the sprint, the delivery manager and the developers decide when it gets built. After UX review, QA and code review, the component goes live in Storybook and Figma together, and the developers hear about it in their channel.

One component workflow with two owners: the UX team takes a component from task to ready, a product team and the lead developer take it from backlog to publication in Storybook and Figma DESIGN · UX TEAM Task Design Team review Ready Ready means documented: naming, states, responsiveness, accessibility and content Before the sprint, the DM and developers set the priority BUILD · PRODUCT TEAM AND LEAD DEVELOPER Backlog Build in theproduct team UX reviewand QA Code review Publish toStorybookand Figma Announce todevelopers A gap in review sends the component back to design
The component workflow, from idea to announcement.
Step 3 · Govern

Contribution rules and a clear definition of drift

The contribution rules decide what enters the system. Reuse comes first, then adjustment, then a new component. A component that one context needs and nobody else can reuse stays a local exception, outside the library.

Drift has one definition: a component that enters the product without going through the workflow. That definition makes drift countable. Last year there is one incident, where drift used to be routine.

05Impact

What the playbook delivers at Nextens.

20 → 4
Button variants, with size, state and icons as properties
20+ → 1
Dropdown variants replaced by one configurable component
1 → 10
Product teams building with the system by Q1 2024
1
Drift incident last year, down from routine
Delivery

Delivery speeds up as teams reuse components and page layouts. Together with pre-refinement, refinement rounds on larger features drop from about 12 to about 4, and on small features from 3 to 1, by team count. The other half of that story is in the UX function case study.

06What comes next

In 2026 I audit both libraries again, this time to see what an AI tool can understand. Storybook holds 99 components, 97 of them active. Figma holds 87. 51 of those match Storybook one to one. 4 exist only in Figma, and 32 are uncertain.

That gap matters more now. Figma Make reuses a pattern only when it understands what the pattern is for. So the next phase is a semantic model of the system: what each component means and when to use it, before any decision about tokens. Designers validate every meaning. The AI does not decide them.

The baseline is done. The semantic model is in progress.

07What travels

Governance is a human problem. The components are the easy part. The system lasts because it fits the way engineers already work, and because a developer co-owns it. Consolidate, connect, govern works in any product organisation with one component library and more than one team.

Formalise the contribution model earlier. The decision tree arrives after the first wave of components. In place from day one, it lets the system grow its maintainers as fast as its users.