dan  /  work  /  aveva
enterprise design system · programme

Unifying 150+ products across five tech stacks

A board mandate to unify a product suite grown mostly through acquisition. No single component library could span .NET, AngularJS, Angular, React and Bootstrap — so the system's authority had to live in the spec, not the code.

ROLE
Senior UX Engineer / DS Lead
SCOPE
Strategy, programme management, adoption
FOUNDATION
Material Design v2 · design tokens · Azure DevOps · SAFe
PERIOD
2015 – Feb 2022
the documented system
design.aveva.com/build
AVEVA Design System Build — home

“Design, Prototype, Build”

The guidelines site was the single source of truth — tokens, components, patterns and documented behaviours. Teams on .NET, AngularJS, Angular, React and Bootstrap each implemented the same spec in their own stack.

01 / the problem

150+ products, accumulated through acquisition, with no shared visual language and no shared implementation. The suite looked and behaved like products from different companies — because it was.

Engineering ran on five different stacks. Several teams had independently adopted Material Design v2 as a reference — but without governance, the same spec produced different results in different products.

.NETAngularJSAngularReactBootstrap

five stacks — no single component library spans them

02 / spec-first, stack-agnostic

The structural decision: make the system agnostic to any one technology. Not a React library — a specification of tokens, guidelines, patterns and behaviours each team implements in their own stack. Authority in the spec, not the code.

THE SPEC
tokens · guidelines · patterns · behaviours
↓ ↓ ↓ ↓ ↓
.NET
AngularJS
Angular
React
Bootstrap
teams implementing the same spec independently converge on the same result

A spec-first system that works across five tech stacks is already platform-agnostic by necessity — adding AI tools as a sixth consumer is an extension, not a reinvention.

03 / extending material

Material Design was built for consumer apps. AVEVA's products are operational software — engineers and operators in high-stakes, industrial environments. I governed the Material foundation and added a documented extension layer for what it didn't cover:

  • Alarm states and operational status indicators
  • High-density data displays for control-room contexts
  • Safety-critical interaction and visual conventions
A control-room demo space with wall-mounted monitors — the operational context AVEVA's products run in
The context these products run in — control rooms, not consumer screens.
Real AVEVA product dashboards — high-density data, incident maps, asset monitoring, production line status
The extension layer in production — high-density dashboards, incident maps and status boards Material alone didn't cover.

The layer said clearly which patterns were Material-standard and which were AVEVA-specific — so teams knew what they were working with, and why.

spec made tangible
component library · component guidance
AVEVA Design System Adobe XD plugin
The Adobe XD plugin — a stack-agnostic component & icon library (141 icons) designers pulled from.
AVEVA Design System Button guidance
Per-component guidance — usage, behaviour and states documented for every team to implement.
04 / tiered adoption

Asking 150+ products to hit full compliance at once wasn't realistic. Teams worked through defined tiers at a pace their delivery schedule could absorb — every team showing measurable progress, none blocked by a single deadline. Progress was tracked at programme level in Azure DevOps.

TIER 1
Visual alignment
foundational colour & type
TIER 2
Component standard
shared components adopted
TIER 3
Full compliance
pattern & interaction parity
levels of adoption, published
/build/overview/adoption
AVEVA Design System adoption levels

Published, measurable compliance

The adoption levels were documented and split for browser-based and desktop/native applications — so every team knew the next tier to reach, and each product's progress could be tracked at programme level.

05 / building the team

The system started as a UX initiative with no dedicated engineering resource. I made the case for a permanent design system engineer to own the implementation infrastructure and bridge spec to code. The role was approved and filled; a dedicated QA resource followed.

The design system moved from a project with UX ownership to a cross-functional team with its own delivery capacity — the organisational foundation that sustained it at scale.

what this
demonstrates

Leading a board-mandated initiative inside a 20-person UX org.

Programme-scale structural thinking: spec-first made the system buildable at all.

Extending a general-purpose system for the demands of industrial software.

Making the case for investment — turning an initiative into a funded team.

06 / contact

Need a design system that ships in weeks? Let's talk.

Permanent, contract, or leadership — open to remote and relocation across the UK and Ireland.

Illustrated portrait of Dan Danowski