Scaling Forma

Governance & contribution models at scale

Company
Forma Labs
Role
Design Systems Lead
Year
2024
Duration
9 months
GovernanceProcessMulti-team

title: "Scaling Forma" tagline: "Governance & contribution models at scale" company: "Forma Labs" role: "Design Systems Lead" year: "2024" duration: "9 months" tags: ["Governance", "Process", "Multi-team"] coverAccent: "var(--color-accent-green)" status: "published"

Overview

Forma already had a design system. It had worked beautifully when the company was fifty people and two product teams. At four hundred people and eight product teams, it was collapsing under its own weight.

The problem was not the design. The problem was governance — or the absence of it. I was brought in to fix the process, not the pixels.

The Problem

Pull requests sat for six weeks without review. Teams were forking components and maintaining their own copies. The system had three nominal "owners" with no clear decision-making authority, which meant any contested PR became a negotiation rather than a decision.

The backlog had 140 open issues. No prioritization framework. Engineers had stopped filing issues because nothing seemed to happen.

Audit Findings

I ran a contribution audit before proposing any changes. Questions: Who had contributed in the last six months? What was the median time from PR open to merge? What percentage of issues were closed without action?

The answers: 23 component forks in active use across product codebases. Median PR review time: 41 days. 64% of issues closed as "won't fix" with no explanation.

System Decisions

Federated ownership model. Each product area (Growth, Core Product, Data, Platform, etc.) has a designated "DS Champion" — an engineer or senior designer with commit rights to their domain. The core team reviews and approves, but champions can merge within their area without waiting for central sign-off.

Tiered contribution model. Not all contributions are equal. We defined three tiers:

Async by default. The weekly all-hands sync was replaced with a monthly review. Day-to-day happened in Notion comments and a streamlined #ds-rfc Slack channel. Open office hours twice a week — 30 minutes, no agenda, come with questions.

Implementation

I wrote the RFC template in week three and ran it by six engineers and four designers before socializing it. The template asks: What problem are you solving? Who else needs this? What does "done" look like? How will you measure it?

The backlog was triaged over four weeks. Every open issue got one of three labels: accepted, declined-with-reason, or needs-RFC. Every declined issue got a written explanation.

The fork cleanup was handled gradually, not in a big-bang migration. Each product area DS champion took ownership of their fork and either contributed it back as a T3 RFC or deprecated it with an official alternative.

Governance Model

The RFC process is now the load-bearing structure of the system. Monthly reviews go through accepted RFCs in priority order. Champions have a voice in prioritization for their area. The core team focuses on T3 decisions and system-wide concerns.

Versioning follows strict semantic versioning: patch for bug fixes, minor for new variants, major for breaking changes. Every major release has a migration guide written before the release ships.

Impact

4 days

Median PR review time (down from 41)

Measured across 6 months post-governance overhaul

2

Active component forks (down from 23)

Remaining forks are intentional divergences under active RFC review

Engineer confidence in the system, measured via quarterly survey, went from 3.1/5 to 4.4/5 in two cycles.

Learnings

Governance is a product. It needs the same care as a component — a clear purpose, a defined API (the RFC process), and documentation that explains not just the "what" but the "why."

I'd start the champion network earlier. Finding the right DS Champions before you have a governance model — people who already care about system quality — makes adoption much faster than training champions after the model is designed.