← All writing

Writing  ·  16 September 2026

How do you introduce design governance without everyone hating it?

Don't try to fix everything.

Design governance Design debt Design systems Fix forward

Design debt doesn't announce itself

I've seen variations of the same problem across product teams for years.

Design debt rarely arrives as a big decision.

Nobody says:

Let's create four versions of this component and make them behave slightly differently.

It happens one perfectly reasonable decision at a time.

A deadline is tight, so something gets copied.

The copy needs a slight variation.

Another team finds that variation and uses it somewhere else.

The original changes.

The copies don't.

Six months later there are several versions of supposedly the same thing and nobody is entirely sure which one is right.

Individually, every decision probably made sense.

Collectively, you've created a system nobody intended.

The obvious response is governance.

The less obvious question is how you introduce it without creating another problem.

Please stop building while we fix everything

Once an organisation recognises design debt, the natural reaction is to audit it.

Find every inconsistency.

Document every component.

Create the perfect design system.

Retrofit the product.

Then tell everyone to use it.

Lovely.

Except there's still a product to build.

Roadmaps don't disappear. Features still need shipping. Customers still expect things to work.

Every hour spent retrospectively fixing something has to compete with something the business already wants.

And the bigger the clean-up becomes, the more organisational support it needs.

So perhaps the first principle of introducing design governance should be:

Don't try to fix everything.

Stop creating tomorrow's debt

Instead of starting with everything that's already wrong, start with whatever you're touching next.

If a page changes, improve the patterns on that page.

If an existing component is needed, reuse it.

If the component doesn't support the requirement, ask whether the shared component should evolve before creating another version.

If something genuinely needs to be different, make that decision deliberately.

The principle is simple:

If you touch it, leave it better than you found it.

The existing debt doesn't disappear.

But you stop knowingly adding to it.

And normal product delivery becomes an opportunity to gradually move the product towards the standard rather than further away from it.

No six-month clean-up programme required.

Local decisions create global problems

Fix forward creates another problem.

How does anybody know what's changing?

Most design-system problems aren't caused by obviously bad decisions.

They're caused by perfectly sensible LOCAL decisions.

Someone needs something.

They solve it.

It works.

Ticket closed.

The problem appears when you zoom out.

So changes to shared patterns need somewhere to become visible beyond the person or team making them.

That doesn't necessarily require a governance board.

It could be as lightweight as a shared space where changes are surfaced.

New component?

Surface it.

Changing an existing one?

Surface it.

Found a use case the system doesn't support?

Surface it.

The mechanism isn't particularly interesting.

The change in question is.

Instead of:

How do I solve this?

You start asking:

How should WE solve this?

A library nobody uses isn't a design system

Having a design system and using a design system are two different things.

You can have immaculate design libraries, beautifully engineered components and comprehensive documentation.

Then somebody copies a component.

And modifies it.

Nothing breaks.

Which is precisely why it's dangerous.

The copy now has its own life.

The original changes.

The copy doesn't.

Someone copies the copy.

Congratulations.

You now have a family.

So governance needs a fairly boring default:

Use the system first.

Does it already exist?

Can the existing component accommodate the requirement?

Should the component evolve?

Is the requirement genuinely different enough to justify something new?

Only then create.

This isn't about protecting the purity of a design system.

It's about making divergence deliberate rather than accidental.

Finding problems at the end is expensive

There's another trap.

Waiting until something is finished before checking whether it's right.

Design creates something.

Development builds it.

Someone reviews the implementation.

Then the discrepancies appear.

Technically, the quality check worked.

Practically, it happened at almost the most expensive possible moment.

The work has already been done.

Now somebody has to explain what's wrong and somebody else has to change it.

There's a simpler answer.

Move the conversation earlier.

Review things while they're being built.

Does the implementation still match the intent?

Has a technical constraint changed the solution?

Is the intended component being used?

Has development uncovered something the design didn't account for?

Now the conversation isn't:

That's wrong.

It's:

This isn't quite working. What should we do?

Small difference.

Completely different dynamic.

The later a discrepancy is discovered, the more expensive, and usually more awkward, it becomes to resolve.

Congratulations, you've created a bottleneck

There's an obvious way for governance to go wrong.

Everything starts needing approval.

Every component.

Every variation.

Every decision.

Initially, this can look like success.

Look at all this governance happening.

Except nothing can move until the person responsible for governance has looked at it.

You've solved inconsistency by creating bureaucracy.

That's not much of a win.

Good governance should distribute decision-making, not centralise it.

Design needs engineering.

Engineering needs design.

Both need to understand why the standards exist well enough to challenge each other when something doesn't make sense.

Eventually, the person who introduced the process shouldn't need to be involved in every decision.

That's not losing control.

That's the point.

Documentation isn't evidence

It's very easy to prove you've introduced governance.

Here's the documentation.

Here's the process.

Here's the component library.

Here's the place where decisions get discussed.

None of those prove it's working.

Look at what people actually do.

Do people check the system before creating something?

Are changes surfaced rather than silently introduced?

Are conversations happening earlier?

Are inconsistencies being questioned outside design?

Are fewer problems making it all the way through delivery before somebody notices them?

Those are much more interesting signals.

Because governance isn't really the process you've documented.

It's the behaviour the process creates.

Make yourself unnecessary

Put all of this together and a fairly simple model starts to emerge.

Don't start by fixing the past.

Start by stopping the future getting worse.

  • Fix forward.
  • Make changes visible.
  • Use the system before creating something new.
  • Move quality conversations earlier.
  • Give design and engineering shared ownership.
  • Then watch whether behaviour actually changes.

None of those ideas are particularly complicated.

The difficult bit is getting them to become the way people naturally work rather than another process somebody has to remember to follow.

And perhaps that's the most useful test of whether design governance is actually working.

If consistency only exists while somebody is watching, you haven't built governance. You've built supervision.

Get in touch

Introducing governance to a team that already ships?

Get in touch →