Drew Stauffer

LinkedIn Email Modus Flows
Case Study 01 · Oracle Fusion Marketing

Building toward a system that didn't exist yet

The hardest systems work is building for a standard that hasn't shipped, so the gap never reaches the user.

How I rebuilt an enterprise authoring tool onto a design system that was still being invented, one release at a time.

RolePrincipal UX Designer
ProductMessage Designer
OrgOracle Fusion Marketing
FocusDesign systems · Enterprise authoring

Context

Message Designer is an enterprise email authoring tool, a visual builder where marketers compose the emails and templates their campaigns run on. The work was building it on Oracle's emerging Redwood Design System (RDS), a system that barely existed when the work began.

Before RDS there was no shared standard to inherit. UI was assembled by hand, team by team. RDS itself arrived in pieces: it started with components, and there was a long lag between seeing a component announced and being able to build with it. The Canvas Page Template, the template we'd eventually need, wasn't even announced when the rebuild started. We began with the RDS components that existed, and once the template was announced and confirmed, we pivoted toward it, even though only its header had actually shipped.

The rest we had been shown, not given.

The state we started from
Shown,
not given.
Of the Canvas Page Template we pivoted onto, only the header had actually shipped. The rest existed as demos.

The Redwood Design System, as it arrived

01
Components
button, input, states
02
Composite components
a toolbar as one unit
03
Full page templates
data and layout templates
04
Canvas Page Template
the one we needed
Roughly two and a half years from the first components to the template the rebuild actually required.

The Tension

Build it to behave like a system that didn't exist yet.

Path A
Wait for RDS

The build can't move forward. Blocked on a system still being invented, on a schedule no one downstream controlled.

Dead end
Path B
Go pure-custom

Technical debt from day one. Off-standard, and stuck owning accessibility yourself instead of inheriting it vetted from RDS.

Dead end

The only way through was to build for a target still being drawn. And the target kept moving.

01Where complexity should live

Build placeholders shaped like the future

Oracle's doctrine was to use the largest possible asset: start at the template level, because its accessibility was already built and tested, and only drop down when a level couldn't do the job. Never go custom.

Use firstTemplateaccessibility built in, tested
ThenCompositeonly if the template can't
ThenComponentonly if a composite can't
NeverCustomoff-standard, and you own everything RDS guarantees

So the placeholders were never free-form. They were assembled from the RDS components that did exist, arranged to stand in for the Canvas Page Template sections that didn't yet, so that when the real section shipped, convergence would be a swap, not a rebuild.

AHeader with actionstitle, primary + secondary actions
BToolbar, eight slotsactions and layout slots
CLeft panel navigationstructure and sections
DGlobal panelnavigation sub items + controls
EMain canvasdesign area
FOptional properties panelcomponent properties + controls
The tradeoff

More work up front, building to a spec I didn't control and couldn't yet touch, in exchange for a clean migration later instead of a teardown.

Cost nowGain later
02Designing for a known sequence

Phase the build to the RDS release schedule

RDS shipped by releases. We would be told what a component could do now, and what it would gain one and two releases out. So I built with what existed and planned for what was coming.

24C - Canvas Page Template
Expandable Menu
25A - Canvas Page Template
Menu button in header
Configuration Drawer
25D - Canvas Page Template
Diagram integration (controls/zoom)
Tabs in Property Panel

The harder part was never the building. It was the conversation. Every feature carried a version of it: what could ship now, and what had to wait for a later release.

I was the translation layer between RDS's release schedule and our product's roadmap.
Decision 02 · keeping everyone's expectations synced to a sequence
The tradeoff

Accept shipping partial capability now, betting on a release schedule I didn't own, in exchange for never having to tear down and rebuild as the system matured.

Cost nowGain later
03The seam you only find inside the system

Close the design-to-engineering gap

The swap was never truly clean. Oracle ran on two front-end platforms, OJET and Spectra. RDS components were only somewhat aligned across both, and depending on the section, one or the other had to be used. That ambiguity is exactly what led engineering to build with the wrong one.

First, the manual fix
Point to the proof

Identify the correct component for the platform that section required, point engineering to the exact documentation, then review the build together so nothing was left to guesswork.

Then, the systemic fix
Embed the spec in Figma

Place the component, the specific options in use, and a link to the exact documentation right beside the design. Engineering could click straight through and verify.

Component spec with embedded documentation callouts, Release 25D

What this really was

The RDS team was learning their own system as they built it. Ours was learning it as we consumed it.

Designing well under that meant treating them as partners working a hard problem in parallel, not an obstacle whose unfinished work was slowing us down. And it was the earlier decisions that made the empathy affordable: because we had built placeholders and phased to the schedule, an RDS shift was a swap, not a catastrophe.

The Honest Outcome

01
Convergence worked, but not seamless

As RDS shipped, placeholders were swapped for real components. The OJET/Spectra split made every swap a verification job, not a drop-in. But the migration held, and the tool ended up on-standard.

02
Roadmap-phasing saved the rebuild

Because we had built to the known release schedule, maturing the product mostly meant swapping pieces in, not tearing anything down. The forward-compatible bet paid off.

03
The documentation practice spread

The forms and landing page designers adopted the embedded-documentation step into their own work. It closed a gap that wasn't only mine.

04
It became the foundation the AI work stood on

The consistency built here is why the AI pattern later carried cleanly across Message Designer, the landing page designer, and the forms designer.

Build toward the standard before it exists, and when it arrives, there's nothing to tear down.