---
title: "Brownfield Factories: Keep Existing Promises, Then Build the Demand Factory"
speakers: "Justin McCarthy (Diffusion)"
duration: "17:43"
source: transcript.md
video: "https://www.youtube.com/watch?v=y9JtCCZP2MQ&t=23650s"
themes: [close-the-loop, less-harness-more-model, decision-load]
reader: "Will and his clients: why agentic factories belong on existing brownfield systems with clear promises first, and why cheap code forces teams to build a companion demand factory"
built_from_notes:
  - notes/inbox/2026-11-12T1521-diffusion-company-name-pun.md
  - notes/inbox/2026-11-12T1523-different-things-for-different-modes.md
  - notes/inbox/2026-11-12T1524-something-we-could-work-on-and-sell.md
  - notes/inbox/2026-11-12T1526-promise-as-a-type-of-invariant.md
  - notes/inbox/2026-11-12T1527-loop-then-continuous.md
  - notes/inbox/2026-11-12T1528-continuous-background-promise-keeping.md
  - notes/inbox/2026-11-12T1530-credit-to-the-models-things-will-simplify.md
  - notes/inbox/2026-11-12T1531-spacex-metaphor-for-simplification.md
  - notes/inbox/2026-11-12T1533-customers-may-want-something-else.md
  - notes/inbox/2026-11-12T1534-that-means-we-have-a-new-job.md
  - notes/inbox/2026-11-12T1535-start-working-on-the-demand-factory.md
  - notes/inbox/2026-11-12T1537-expansion-of-the-brand-envelope.md
  - notes/inbox/2026-11-12T1538-look-up-diffusion-papers.md
built_from_photos: 8
notes_frame:
  spine: "Brownfield promises & continuous loops vs. greenfield discovery (5 notes: 1523, 1524, 1526, 1527, 1528; 2 photos: PXL_20261112_232412481, PXL_20261112_233242374)"
  clusters:
    - "The demand factory & expanding the brand envelope (4 notes: 1533, 1534, 1535, 1537; 3 photos: PXL_20261112_233528265.MP, PXL_20261112_233651471.MP, PXL_20261112_233826254)"
    - "Factories simplify over time via model progress — Raptor 1→2→3 (2 notes: 1530, 1531; 1 photo: PXL_20261112_233028749)"
    - "Diffusion opening pun, agent-channel QR & published brownfield papers (2 notes: 1521, 1538; 2 photos: PXL_20261112_232236736, PXL_20261112_233840456)"
  skipped: "Dual-channel closing pitch details on DM/email contact (folded into closing notes); PXL_20261112_233528265.MP.jpg is an earlier build of PXL_20261112_233826254.jpg so the complete labeled slide is used in the rail"
key_points:
  - "Stop subjecting greenfield product discovery to factory automation when you don't yet know what you want; point software factories at brownfield systems where paying customers already define the spec (00:02:12, 00:03:18)"
  - "Encode existing features, cost, and security guarantees as 'promises' (invariants) inside closed-loop, 24/7 continuous background factories that make the system faster, cheaper, and safer in a week (00:04:52, 00:06:30, 00:10:27)"
  - "Just like SpaceX Raptor 1→2→3, model improvements simplify skills and harnesses over time without rewriting your factory—leaving teams with a new job: building a Demand Factory to expand their brand envelope (00:08:09, 00:13:17, 00:15:32)"
kind: talk-story
status: draft
---

# Brownfield factories and the demand factory

Justin McCarthy—who led the StrongDM Software Factory work before founding Diffusion (`00:00:00`, `00:00:52`, `2026-11-12T1538`)—opens a keynote titled *"Brownfield Factories"* by telling the room to **stop building software factories** when they don't yet know what they want (`00:02:12`). Software factories shine on **brownfield** systems where paying customers and runtime telemetry already define every promise (`00:03:18`, `00:04:52`); once continuous background agents make existing systems faster, cheaper, and safer (`00:06:30`, `00:10:27`), the bottleneck flips from code supply to building a **Demand Factory** that expands your brand envelope (`00:13:17`, `00:15:32`).

*Framing note: this story is framed from thirteen inbox notes and eight slide photos taken on the Mainstage (`3:22–3:38 pm PST`). Quotes preserve the local Qwen3-ASR 1.7B transcription verbatim, including `"round field"` / `"ground field"` / `"foundry factory"` (brownfield / brownfield factory), `"cloud code"` (Claude Code), `"T5"` (GPT-5), `"Astro, Table, and Carbon"` (frontier model families), `"the Asian Channel"` (the Agent Channel), `"Volpocalypse"` / `"bomb apocalypse"` (slopocalypse), and `"Diffusion Factory"` (Demand Factory). Tokens flagged as transcription-prompt bias (`"Justin McCarthy"`, `"Diffusion"`) are never quoted. Research context from `notes/inbox/2026-11-12T1538-look-up-diffusion-papers.md` and `links.md` (`diffusion.io/brownfield`, StrongDM's factory write-up) is labeled explicitly. `"From the notes"` and `"The reading"` boxes are editorial synthesis.*

## From StrongDM’s Rube Goldberg factory to mode discernment

McCarthy opens with a deliberate pun on his company's name—diffusing model capabilities across the global economy (`00:00:00`, `2026-11-12T1521`)—and frames the talk as a dual-channel transmission: human ideas on stage, plus a closing QR code (`diffusion.io/brownfield`) packed with technical papers for your agents (`00:00:00`, `links.md`). Tracing the arc back to July 2025 on Claude 4 models, early factory loops required massive token burn and fragile hand-wired plumbing (`00:00:52`):

> “You know, even then, we could see glimmers that this thing was going to work. But at tremendous token expense, and only in the presence of a real. Rube Goldberg action.”
> — 00:00:52

By November 2026, software factories have entered the conference zeitgeist (`00:00:52`, `PXL_20261112_232236736.jpg`)—yet treating every problem with the same factory machinery is a mistake (`00:02:12`). Different modes of engineering require different loops:

> “Begin to use some discernment about whether we're discovering product market fit, we're breaking new ground. We're conquering new territory, or whether we are doing something that, you know, already has a precedent and is already working.”
> — 00:02:12

**Key points**

- What took heroic Rube Goldberg duct tape in July 2025 now runs reliably enough to enter mainstream practice (`00:00:52`).
- Discernment comes first: product discovery mode and existing-system mode should never run on the same process (`00:02:12`, `2026-11-12T1523`).

<div class="reading"><b>From the notes:</b> “Diffusion is the name of the company, which is a big pun.” (<code>2026-11-12T1521</code>) and “He's suggesting that we need different things for the different modes we're working in.” (<code>2026-11-12T1523</code>). <b>The reading:</b> Having popularized the “Dark Factory” at StrongDM (<code>factory.strongdm.ai</code>), McCarthy immediately pushes back against cargo-culting dark factories onto unvalidated ideas.</div>

**Visual:** photo `photos/PXL_20261112_232236736.jpg` (*"Software Factories And The Agentic Moment"*, StrongDM Feb 2026, Ethan Mollick, Garry Tan, Simon Willison, and Dan Shapiro's Five Levels)

## Why greenfield factories stall and brownfield wins

When creating something brand new, people rarely know what they actually want—like asking for a faster horse when the real problem is a long commute (`00:02:12`, `PXL_20261112_232412481.jpg`). Applying industrial automation to an ambiguous spec only manufactures the wrong software faster (`00:02:12`):

> “So that's of course the time for me to say, please stop building software factories.”
> — 00:02:12

Brownfield systems flip that equation completely (`00:03:18`). You already have paying customers, live runtime behavior, support tickets, and production signals showing what works (`00:03:18`). As Jarred Sumner demonstrated earlier in the day with Bun and Claude Code (`00:03:18`), teams can rewrite legacy bottlenecks and clear long backlogs without guessing at demand:

> “Is it's something that we're already being paid for. It's something where customers are saying with their dollars and their and their utilization. Like yeah, this works for me. I like it. I want more of this.”
> — 00:03:18

> “What I'm using is what I want. Okay, so we know what to build. We build we build the existing thing.”
> — 00:03:18

**Key points**

- Industrializing uncertain greenfield specs wastes time and budget because discovery is not a factory problem (`00:02:12`).
- Brownfield systems come with an oracle already running in production: customer dollars, usage logs, and existing behavior (`00:03:18`).

<div class="reading"><b>From the notes:</b> “This is another thing that we could work on and sell.” (<code>2026-11-12T1524</code>). <b>The reading:</b> For Will and TheFocus.AI, brownfield modernization is an immediate client service wedge: clients don't have to gamble on greenfield specs when existing revenue-generating systems carry clear behavioral oracles ready for automated rewrites.</div>

**Visual:** photo `photos/PXL_20261112_232412481.jpg` (*"... we rarely know what we want!"*, showing the commuter thinking "my commute is too long" while asking for "a faster horse" alongside a Word spec)

## Promises as invariants inside continuous, background loops

To clean up a brownfield codebase without breaking what customers pay for, Diffusion models every core expectation—features, unit cost, price, security—as a **promise** (`00:04:52`, `2026-11-12T1526`). Promises are invariants you refuse to regress on, encoded into closed feedback loops (`00:04:52`). Like an amplifier block diagram, cutting the feedback leg turns the loop into a noise machine (`00:04:52`):

> “Feature is a promise. You know the cost and price of a thing is a promise.”
> — 00:04:52

> “As many of you know, this is the sort of idealized block diagram amplifier, and if you cut that feedback leg. You're just going to amplify noise, okay?”
> — 00:04:52

Once promises are wired into loops (`2026-11-12T1527`), execution moves out of human work-hour seasonality—daily spikes and weekly cycles—into a flat, 24/7 **continuous, background** stream (`00:06:30`, `2026-11-12T1528`) that constantly asks whether the system is slightly slow, slightly insecure, or drifting:

> “So another way to summarize that is, you know, my brownfield factory on an existing set of promises, it should just be. Continuous. It should be background. It should be keeping those promises.”
> — 00:06:30

**Key points**

- Treat product guarantees (features, latency, cost, security) as non-negotiable invariants ("promises") rather than ad-hoc tickets (`00:04:52`).
- Never cut the feedback leg: runtime telemetry and verification must feed back into the loop or agents amplify noise (`00:04:52`).
- Shift from human commit seasonality to continuous, 24/7 background promise-keeping, freeing people to focus on discovery (`00:06:30`).

<div class="reading"><b>From the notes:</b> “They use 'promise' as a type of invariant: things that don't get iterated on.” (<code>2026-11-12T1526</code>), “That's under 'loop', but the next thing is 'continuous'.” (<code>2026-11-12T1527</code>), and “Continuous, background, and promise-keeping.” (<code>2026-11-12T1528</code>). <b>The reading:</b> This maps directly onto Ankit Jain's review invariants and Dexter Horthy's automated backpressure, then pushes them from PR-time gates into always-on background maintenance.</div>

**Visual:** diagram “Promises as invariants inside continuous, background loops (feedback leg prevents noise amplification across 24/7 commits)”

## Factories simplify over time: the SpaceX Raptor progression

Teams worried that building a brownfield factory locks them into brittle Rube Goldberg scaffolding miss a structural shift of the current model era: **factories simplify over time** (`00:08:09`). Skills are shrinking, harnesses are becoming more general, and credit goes largely to the models themselves (`00:08:09`, `2026-11-12T1530`):

> “The skills are getting shorter. Harnesses are getting more general, of course, and a lot of this again is credit to the models themselves.”
> — 00:08:09

McCarthy illustrates this with SpaceX's **Raptor 1 → Raptor 2 → Raptor 3** engines (`00:08:09`, `PXL_20261112_233028749.jpg`, `2026-11-12T1531`). Raptor 1 worked despite a tangle of external tubes; Raptor 2 and 3 delivered higher performance with dramatically fewer moving parts (`00:08:09`). In traditional aerospace, that simplification took rocket scientists years—whereas software teams have frontier models as built-in allies stripping away complexity release after release (`00:08:09`):

> “We have been allies in the simplification of work because we have Astro, Table, and Carbon. Right, and so they are trying to take our factory from version one to two to three.”
> — 00:08:09

**Key points**

- If you can barely get a brownfield factory working today, the next model generation will strip moving parts out of it for you (`00:08:09`).
- Expect shorter skills, thinner harnesses, and higher throughput without proportional human redesign (`00:08:09`).

<div class="reading"><b>From the notes:</b> “A lot of the credit goes to the models; things will simplify over time.” (<code>2026-11-12T1530</code>) and “SpaceX metaphor for how things simplified.” (<code>2026-11-12T1531</code>). <b>The reading:</b> Matches Philipp Schmid's “I deleted 90% of my harness” and Lance Martin's thousand-agent setup—invest in clean promises and verification, not over-engineered orchestration scaffolding that next month's model makes obsolete.</div>

**Visual:** photo `photos/PXL_20261112_233028749.jpg` (*"Factories Simplify Over Time"* showing Raptor 1, Raptor 2, and Raptor 3 shedding plumbing from left to right)

## The one-week playbook: faster, cheaper, safer

What instruction do you actually hand a brownfield factory? **The same, but faster, cheaper, and safer** (`00:10:27`, `PXL_20261112_233242374.jpg`). Notice what is deliberately excluded: *"better"* requires human taste and judgment (`00:10:27`), whereas staying on the Pareto frontier—never trading safety for speed—gives any organization an uncontroversial target (`00:10:27`):

> “So, so it should be faster. It should be cheaper. It should be safer.”
> — 00:10:27

Standing up a baseline brownfield factory on your existing commitments takes roughly a week (`00:10:27`)—and the closing companion page (`diffusion.io/brownfield`, captured via `PXL_20261112_233840456.jpg` and documented in `2026-11-12T1538`) collects the exact verification literature behind safe rewrites: comparison and replay (characterization tests, differential random testing, shadow mirroring), generated inputs (fuzzing, property-based testing, deterministic simulation, digital twins), mutation testing and test integrity, specification proofs (including AWS Cedar), simulated users, and canary cutovers:

> “So I think everyone should have the ground field factory. You should have it for your existing commitments. You should have it. It should become better, faster, and cheaper over time. I find that this takes like a week.”
> — 00:10:27

**Key points**

- Aim brownfield loops at **faster, cheaper, safer** without sacrificing safety along the Pareto frontier; save "better" for human judgment (`00:10:27`).
- Back rewrites with differential replay, fuzzing, mutation tests, and digital twins—documented in Diffusion's `diffusion.io/brownfield` companion library (`links.md`, `2026-11-12T1538`).

<div class="reading"><b>From the notes:</b> “Look up the papers they've published.” (<code>2026-11-12T1538</code>) and “This is another thing that we could work on and sell.” (<code>2026-11-12T1524</code>). <b>The reading:</b> The <code>diffusion.io/brownfield</code> library is a ready-made technical curriculum for client engagements: shadow replay, property-based testing, mutation checks, and canary cutover replace manual rewrite anxiety with mechanical proof.</div>

**Visual:** photo `photos/PXL_20261112_233242374.jpg` (*"Brownfield Factories: Faster / Cheaper / Safer"* assembly line slide)

## Elevate your ambition: the demand factory and the brand envelope

Brownfield factories work, and they are becoming *"too easy"* (`00:12:03`). Now teams face a glut of working software—only to discover that shipping more clicks and screens was never what buyers asked for (`00:12:03`, `2026-11-12T1533`):

> “They actually, they actually weren't asking for software. They were asking for more gross margin. They were asking for more customers. They were asking for more brand differentiation, okay, and just giving them more windows to click on, and buttons to click on. That's not doing it for them anymore.”
> — 00:12:03

Because engineers fluent with models can now build supply almost on demand, they inherit a **new job** (`00:12:03`, `00:13:17`, `2026-11-12T1534`): building a **Demand Factory** (`00:13:17`, `2026-11-12T1535`, `PXL_20261112_233826254.jpg`) that rate-matches market discovery to software production rather than spilling unasked-for features onto the floor (`00:13:17`):

> “So that means like we have a new job now. We have to figure out how to build a demand factory. Because our brownfield factory can't build the moat. Right. All it can do is keep our existing promises running well.”
> — 00:13:17

A Demand Factory uses agents to ask sharper market questions, synthesize responses overnight, re-rank priorities, and allocate finite experimental bandwidth (such as price elasticity tests) (`00:13:17`). That lets a company fill its **brand envelope** (`00:15:32`, `2026-11-12T1537`): like Spindrift sparkling water adding caffeine to launch an energy drink (adjacent and credible) instead of motor oil (rejected), expanding toward more customers, share of wallet, SKUs, product lines, and eventually acquiring slower competitors (`00:15:32`, `00:16:12`).

> “And then figure out what is the maximum extent of what I can possibly promise to the market, and that's my brand envelope.”
> — 00:15:32

> “Maybe you can't sell motor oil, but maybe you can sell an energy drink. So figure out what your energy drink is and start selling it now.”
> — 00:15:32

**Key points**

- Customers buy gross margin, new customers, and differentiation—not extra buttons (`00:12:03`).
- A Demand Factory pairs high-volume market signal with fast experiment allocation to rate-match software supply (`00:13:17`, `00:16:12`).
- Map your brand envelope—find your adjacent "energy drink" line and expand wallet, SKUs, and product lines before competitors catch up (`00:15:32`, `00:16:12`).

<div class="reading"><b>From the notes:</b> “It could be the case that the customers weren't asking for this software” (<code>2026-11-12T1533</code>), “That means we have a new job.” (<code>2026-11-12T1534</code>), “Start working on the demand factory.” (<code>2026-11-12T1535</code>), and “Expansion of the brand envelope: interesting concept.” (<code>2026-11-12T1537</code>). <b>The reading:</b> This is the business counterpart to Ishaan Dey's “Judgement is the Last Job” and Steve Yegge's “Trash Mountain”: when building is abundant, knowing what adjacent promise your brand can credibly sell becomes the scarce moat.</div>

**Visual:** photo `photos/PXL_20261112_233826254.jpg` (*"Build Your Demand Factory"* showing High volume/high quality signal feeding back into SW Factory -> Demand Factory -> More Customers, Wallet, SKUs, Product Lines, M&A; earlier build in `photos/PXL_20261112_233528265.MP.jpg`)

## Lower-latency competition and the first-mover edge

Even when every competitor has access to the same frontier models (`00:13:17`), moving first on low-latency demand response creates an edge (`00:13:17`, `00:16:12`, `PXL_20261112_233651471.MP.jpg`). When companies say *"yes"* faster, customers stop self-censoring requests and reveal adjacent needs (`00:13:17`)—and teams that max out their own brand envelope end up on the acquiring side of consolidation (`00:16:12`):

> “I think your demand factory helps you ask better questions of your market. Because the agents can help prioritize what to ask next.”
> — 00:13:17

> “Okay, and if you get started now, you're going to be the one doing the acquiring.”
> — 00:16:12

McCarthy closes with three concrete calls to action echoed on Diffusion's companion site (`00:17:07`, `2026-11-12T1538`, `PXL_20261112_233840456.jpg`): stand up your brownfield factory, build your demand factory, and **reboot product management and wake up your executive team** (`00:17:07`).

**Key points**

- Saying "yes" to customer requests with lower latency uncensors latent demand that slow roadmaps never hear (`00:13:17`).
- Access to identical models still rewards the first team to couple continuous delivery with rapid market experimentation (`00:13:17`, `00:16:12`).

<div class="reading"><b>From the notes:</b> Ties the whole keynote together for TheFocus.AI (<code>2026-11-12T1524</code>, <code>2026-11-12T1535</code>, <code>2026-11-12T1538</code>). <b>The reading:</b> A sharp client pitch emerges straight from this sequence: stabilize existing brownfield promises in one week, then deploy a demand factory so clients capture adjacent revenue instead of drowning in unused features.</div>

**Visual:** photo `photos/PXL_20261112_233651471.MP.jpg` (*"Lower latency response to demand / Game theory optimal competition"* sailboat slide; closing QR slide in `photos/PXL_20261112_233840456.jpg`)
