Skip to content
MPG

Case StudyFanDuel

Design system alignment program

  • Cross-functional leadership
  • Change management
  • Design systems
  • DesignOps
Company
FanDuel
Role
Lead Designer · Design Systems
Scope
IC / Manager Hybrid
Duration
2024 - Present

The work

Scaling trust,
not just
components

FanDuel's Formation Design System had a solid foundation: a well-structured token architecture, a maintained component library, solid documentation. None of that was really the problem.

The problem was that teams across our product verticals weren't adopting it consistently. And when you looked closely at why, the answer wasn't “bad components.” It was that we, the Design System team, had become too removed from where the actual design work was happening.

So I designed and led the Formation Design System Alignment Program: a structured initiative that embedded DS specialists directly inside product teams through phased engagements, running across five verticals over twelve months.

Embedded DS specialists
3
Product design teams served
5
Designers across all teams
20+
Months of active engagements
12

The problem

The system
was good.
It just wasn't
solving the
right problems

Our team was doing solid work. Prioritising the roadmap, building out libraries, improving documentation. But most of it was happening in relative isolation from the teams it was supposed to serve. We'd ship updates, write guidelines, respond to requests. And adoption still wasn't moving.

When teams couldn't find a component that solved their exact need, they'd duplicate it. When theming felt too complex or the docs didn't match their context, they'd create workarounds: new styles, wrong token applications, quick fixes their engineering teams could spin up in production fast. Not because they were being careless, but because moving fast was their job, and the system wasn't close enough to their reality to help them do it.

We'd got too focused on building the “almost perfect” design system and forgotten that we weren't just solving system problems. We were supposed to be solving the problems of the people using it. Those aren't the same thing.

The consequence was inconsistency compounding across verticals: fragmented libraries, design and code drift, handoffs that needed more back-and-forth than they should. Not a crisis. A slow leak that was getting harder to ignore.

The centralised model had served us well to establish the foundations. But it had a ceiling, and we'd hit it.

The outcomes

The numbers moved.
So did the relationship

We measured each vertical before and after embedding on two axes: System Usability Score and component coverage. Every team went up on both. NPS was captured once at the end, as a read on how the engagement itself landed.

The goal was a usability score of 75 or higher for every team. Three got there. Two finished just short, at 73 and 70, and the lowest NPS (25) showed where the engagement itself needed work. That feedback shaped how later engagements were set up.

Team 01
System Usability Score
73from 55
Component Coverage
72%from 35%
83
Team 02
System Usability Score
80from 57
Component Coverage
60%from 24%
71
Team 03
System Usability Score
83from 62
Component Coverage
85%from 31%
25lowest
Team 04
System Usability Score
87from 63
Component Coverage
100%from 13%
100
Team 05
System Usability Score
70from 54
Component Coverage
100%from 13%
67
Usability (after)Coverage (after)Baseline

Overall System Usability Score

73↑ from 56

Crossed into acceptable range in the first program run

Program Net Promoter Score

64.3

18promoters
10passives
0detractors

The approach

Getting closer to
the work, on purpose

The model wasn't complicated in concept. Embed DS expertise inside product teams, work alongside them rather than in response to them, and leave something behind when you go. The difficulty is in the execution: specifically in resisting the urge to arrive with answers before you understand the problem, and in planning the exit from day one rather than treating it as an afterthought.

I designed the engagement framework and led the initiative across all five verticals. In most engagements my role was strategic: aligning with directors and vertical leads, managing program direction, making sure the embedded designers had what they needed to operate. In one engagement, with our largest vertical and a team being simultaneously reorganised into new pillars, I was closer to the day-to-day: not in the files, but more present in the communications and alignment work. That one was the hardest to navigate and, looking back, produced some of our most self-sufficient champions.

Quality and coverage audit open on a laptop
  1. Phase 1

    Understand the Current State of Play

  2. Phase 2

    Hands-on Collaboration

  3. Phase 3

    Future Health and Continued Adoption

  1. 01

    Listen first

    Each engagement started with the embedded designer joining team rituals and design reviews as an observer. No output, no deliverables pushed, just presence. Understanding how the vertical actually worked and what drove the decisions that drifted from the system. You can't co-create with a team you don't understand yet.

    Phase 1 · Observe
  2. 02

    Build with, not for

    Working sessions on real projects, not hypotheticals. Helping teams swap themes and fix broken Figma style connections, and running Quality and Coverage sessions: file walkthroughs on what was working, what wasn't, and why things had drifted. Sometimes that meant replacing components, sometimes building a domain-specific extension the core system didn't cover yet.

    Phase 2 · Co-create
  3. 03

    Leave them stronger

    Every engagement was planned with a structured handoff from the start. We identified designers who engaged more deeply with the system and gave them more exposure and context. Not gatekeepers, but advocates. Handoff sessions were recorded, Slack support channels stayed open, and the exit was a gradual step back as confidence grew.

    Phase 3 · Hand off

The details

Systems work
is people work
in disguise

A few things worth making explicit about how this actually worked.

  1. 01

    The engagement framework was lightweight by design. Each one started with a kick-off conversation between me, the embedded designer, and the relevant product design director or manager. Not to set rigid deliverables, but to understand their priorities, pain points, and what would actually unblock them. We then aligned with the front-line designers to understand where they felt the gaps in knowledge and confidence. This set expectations for everyone and meant the embedded designer could hit the ground running, rather than spending weeks figuring out what to focus on.

  2. 02

    The Quality and Coverage sessions were deliberately run as conversations, not evaluations. We’d sit with a designer, open their files, and talk through what we were seeing together. Teams often already knew where the drift had happened: “yeah, we know we’re using all different button styles in here.” What they needed was the context to understand why it mattered and a partner to fix it with them, not a report telling them they’d done it wrong.

  3. 03

    Knowledge transfer was built into every exit. Handoff sessions were recorded where possible so future team joiners could benefit too. Slack channels stayed open. Check-ins were scheduled and a governance model was shaped to help teams maintain progress without needing the DS team back in the room.

Design System Core Team

Building global solutions, implementing and sharing design system features

knowledge ↓ · feedback ↑

Embedded Designer

Applies standards, adapts to context, shares insights

knowledge ↓ · feedback ↑

Vertical Product Team

Building products, providing system feedback, sharing learnings

Continuous improvement

I wrote a two-part article with the full breakdown, per-team data, and what each engagement actually looked like.

Read it on Medium

Reflections

Impact

The model worked because it put the right people in the right rooms. Across all five verticals, teams that had been working around the system started working with it.

Design system quality and coverage improved across files. Legacy libraries got consolidated and engineering handoffs got cleaner. And local champions emerged in every vertical, designers who now answered system questions for their colleagues rather than escalating them upward.

What participants consistently named as valuable wasn't a better component library, it was our presence. The program ended with zero detractors and a clear signal: proximity to the work changes the relationship with the system.

On both sides of the fence.

Learnings

  1. 01

    Meet teams where they are

    Starting coverage ranged from 13% to 35% across verticals. A structured maturity assessment at the start of each engagement would have let us calibrate faster.

  2. 02

    Leadership engagement is the multiplier

    Where managers made space and signalled the work mattered, adoption stuck after we left. Where support was inconsistent, momentum faded.

  3. 03

    Embedded work needs a consultant mindset

    The role demanded flexibility, communication and systems thinking that not every designer was ready for on day one. Role-readiness belongs in preparation, not just onboarding.

  4. 04

    Plan capacity and automation, don't assume them

    Embedded designers got pulled deep into engagement work, and manual auditing took more time than it should have at this scale. Future programs need capacity planning and tooling built in from the start.