The FDE as Paid Product Discovery

How field exceptions become platform primitives—without turning your product into a pile of client patches.

Scott Farrell · LeverageAI · Stage A article · Evidence labels used throughout

TL;DR
Designed / Synthetic The three-deployment document-ingestion ledger in this article is a designed mechanism, not an executed multi-client case study. Deployments A/B/C are synthetic. Do not read them as anonymised private clients. Post-promotion metrics are receipt slots and proposed thresholds, not observed numbers.

The tension that does not show up in the backlog

The field team just shipped something that works. Approvals fire. Exceptions route. Someone in the client’s ops team stops re-keying the same form. On the product side, nothing is cleaner. You now have another special case, another “we should really productise that,” another fork that support will meet again in six months under a different industry noun.

That is the operational tension. Palantir’s own framing of the role is still the cleanest public contrast: product engineers optimise for one capability across many customers; forward-deployed engineers (their Deltas) optimise for many capabilities inside one customer.1,2 Someone still has to decide where intelligence belongs in that customer’s real work—and then ship software that carries operational responsibility.3

This article does not re-teach that role. It does not re-teach Product of One. The claim is narrower and harder:

Forward deployment becomes paid product discovery only when field exceptions are captured, compared across engagements, and deliberately disposed of—teaching the platform what should become reusable without turning the platform into a pile of client patches.

The market is already buying the shape of that loop. OpenAI’s Deployment Company describes a cycle of build, prove, generalise: field work that surfaces patterns which become product capabilities.4,5 AWS’s Forward Deployed Engineering organisation says each customer project compounds intelligence for the next, and that customers leave with solutions and engineering capability.6 AWS’s partner motion goes further on ownership: every partner-led FDE engagement should leave a reusable harness the partner owns—ontologies, eval frameworks, tooling, a context graph of choices and domain patterns—while the business outcome stays with the customer.7

What those announcements do not hand you is the boring governance object: a ledger row and a disposition decision you can audit six months later. Evidence gap No public primary source I can cite publishes a five-disposition field-to-platform gate with a longitudinal post-promotion dataset. The mechanism below is built for operators who need that gate—not as a claim that OpenAI, AWS, or Palantir run this exact artefact.

Gravel road and paved road are different jobs

Local delivery can be a gravel road: fast, situated, slightly ugly, correct for this workflow, this retention rule, this approval role. That is often the honest first move. The customer needed a working intervention, not a platform roadmap workshop.

Promotion is a paved road. It has a different burden: recurrence, strategic fit, measurable reuse, clean ownership, de-identification and contract clearance, operability, documentation and versioning, accountable support, and a plan to observe what happens after the promotion. Treating those as one job is how platforms become museums of client patches.

In the language of Experience Is Compressed Priors, the field produces two learning streams at once: domain priors (what tends to be true about systems like this) and process priors (how you discover what you still cannot specify).10 Product discovery fails when you only ship the local code and lose both streams—or when you promote domain noise as if it were a product invariant.

Doctrine, not automatic climb. In forward-deployed practice design, reusable learning moves upward only after de-identification, abstraction past one client’s fingerprints, confidentiality checks, transferability (“would this help another account?”), and a human gate. Automatic upward movement is not a feature; it is a breach of the architecture.8

What an FDE must record besides the local intervention

If the only artefact is “we built a connector for Client X,” you have a services receipt. You do not have product discovery. For each candidate field pattern, the ledger should preserve enough to decide—and later audit:

That is the field-pattern ledger. Not a mood board. A decision record.

The five dispositions (and how to tell them apart)

Every candidate ends in exactly one of these final dispositions. Ambiguous “maybe later” is not a disposition; it is a deferred decision with a revisit trigger.

1. local-only

Use when: the value is real only inside one client’s context; the pattern is unlicensed or unsafe to generalise; fingerprints cannot be removed without destroying meaning; or promotion would create a confidentiality/IP problem.

What ships: client-owned code, config, or process. Not a product promise.

What you still keep: the process prior (“how we found this”) and a rejection-of-promotion reason so the next FDE does not re-litigate blindly.

2. configurable

Use when: the capability is stable and shared, but legitimate variation belongs in data, policy, or configuration—not in forked codepaths per client.

Test: can two deployments share one implementation and differ only by config/policy tables without copy-paste modules?

Failure mode: “config” that is actually a programming language in YAML, with no owner and no tests.

3. internal primitive

Use when: the asset helps FDE/delivery teams repeatedly (harness, eval suite, discovery checklist, exception taxonomy, scaffold) but must not be sold or supported as a customer-facing product promise.

Why it exists: many of the most valuable field lessons are delivery infrastructure, not SKUs. Calling them “platform product” creates the wrong support contract.

4. supported platform

Use when—and only when—all of the following clear:

If any of those are missing, you do not have a supported platform capability. You have hope with a release tag.

5. reject

Use when: the request or abstraction should not be built or promoted—wrong layer, unsafe, uneconomic, off-strategy, or a one-client vanity feature dressed as a platform need.

Critical: preserve the reject. Do not vanish it as a deleted backlog ticket. Rejected requests are learning: they teach domain boundaries and process priors (“we keep being asked for X; here is why X is a trap”).

Worked artefact: field-pattern ledger across three synthetic deployments

Designed / Synthetic Document-ingestion is a useful teaching sequence: formats, systems, retention, approval roles, and exception routes vary locally, while a candidate shared shape can still emerge—provenance, exception routing, human approval. Deployments A, B, and C are synthetic. Scott did not execute these deployments. No private client identities are implied.

Candidate pattern under comparison

Candidate ID: FP-DOC-INGEST-01 — “Governed document intake with provenance, exception routing, and human approval before system-of-record write.”

Ledger field Deployment A Synthetic Deployment B Synthetic Deployment C Synthetic
Workflow context Insurance claims attachments: PDF + email body; SharePoint + claims core Manufacturer quality packs: mixed PDF/scan/Excel; PLM + QMS Professional-services onboarding: contracts + ID docs; CRM + DMS
Local intervention delivered Intake service + human approve before claim note update Batch ingest + exception queue for unreadable scans Per-matter folder watch + partner sign-off gate
Customer value now Stops re-key; audit trail of who approved Cuts lost packs at line; exceptions visible Faster matter open; no silent writes to CRM
Domain prior “Same as last time” is a first-class exception class Scan quality dominates model error Retention and privilege differ by matter type
Process prior Shadow one claims clerk full day before schema design Golden set must include partial scans Map privilege rules before any extraction prompt
Exception / failure shape Forwarded threads; dual attachments; informal prior approval Illegible pages; multi-part packs; late revisions Wrong matter folder; dual jurisdiction retention
Invariant (shared) Provenance record + typed exception route + human gate before system-of-record mutation
Local variation Claims schema; Slack approve QMS codes; shop-floor tablet Matter taxonomy; partner dual-control
Evidence / receipts slot: A-eval-suite, A-run-log slot: B-eval-suite, B-run-log slot: C-eval-suite, C-run-log
Confidentiality / de-ID Client-local PII; pattern only after strip Plant photos restricted Legal privilege — strict local-only on content
Recurrence Seen once Same invariant Same invariant; new variation surface
Strategic fit Core to product thesis: governed intake Yes Yes for invariant; privilege rules stay local
Reuse forecast Unknown Harness parts reusable Platform candidate for invariant only
Support burden (forecast) High if platformed early Medium if config-led High if privilege logic productised
Promotion owner Platform PM + FDE practice lead (named seats, not “the team”)

Disposition decisions for pieces of the same work

Designed / Synthetic One engagement produces multiple candidates. That is the point. Do not force a single disposition onto an entire deployment.

Candidate slice Disposition Reason (audit line) Revisit trigger Post-disposition evidence (slots)
Client-specific claim codes / plant codes / matter types local-only Fingerprints; no shared meaning without client schema If a multi-tenant ontology becomes a product bet
Approval role mapping, retention class, channel (Slack vs tablet vs dual-control) configurable Stable capability; variation is policy/data If config becomes Turing-complete escape hatch config_escape_rate
Exception taxonomy + discovery checklist + eval harness scaffolds internal primitive Speeds FDEs; not a customer SKU Quarterly: is it still reducing time-to-oriented? time_to_oriented, esc_by_class
Provenance object + exception router + mandatory human gate API supported platform Recurrence A/B/C + strategic fit + ownership + operability plan + counterfactual pass First post-promotion deployment; 90-day support review reuse_no_fork, defects, support_load, adoption
“Auto-post to system of record with no human gate for all document types” reject Irreversible risk class; fails placement judgment; customer asked, field correctly refused If evals show a narrow, bounded document class with dual control and rollback Preserve reject rationale in ledger forever

Notice the structure: the same three deployments can yield all five dispositions. That is healthy. Product discovery is not a funnel that ends only in “ship to core.”

Premature-promotion counterexample

Designed / Synthetic Counterexample for teaching—not an executed incident report.

Suppose after Deployment A only, the loudest stakeholder demand—“just make it work like our Slack approval”—is promoted into the core platform as a hard dependency. Deployments B and C then inherit Slack-shaped approval, even where shop-floor tablets and dual-control legal gates are the real workflow. Teams fork the “platform” to escape it. Support now owns three approval runtimes. Recurrence of pain increases; recurrence of a clean invariant never gets a chance to surface.

That is not product discovery. That is importing one client’s interface politics into everyone else’s operating system. The gravel road was fine. The paving was premature.

Supported-platform gate checklist (printable)

If any box is empty, disposition is not supported platform. Choose local-only, configurable, internal primitive, reject, or defer with a revisit date.

Post-promotion proof (measures, not fake numbers)

Evidence gap A real operator would collect these after promotion. This article does not invent values. Use blank slots, proposed decision thresholds, or illustrative formats only.
Measure Receipt slot Proposed threshold (decision, not fact)
Later deployment cycle time / time-to-oriented pm.cycle_time Set baseline on pre-promotion engagements; require directional improvement on next like-for-like deployment
Reuse without fork pm.reuse_no_fork Target: default path is shared module + config; forks require ADR
Defects / failure categories pm.defect_taxonomy New classes must map to eval cases; unknown class → demotion review
Support load / on-call burden pm.support_load If on-call pages concentrate on the new primitive, reclassify or harden
Configuration escape-hatch usage pm.config_escape High escape rate ⇒ you shipped a false abstraction
Central specialist escalation by class pm.escalation_by_class Fossilised classes should fall; if not, write-back failed
Adoption / use in later deployments pm.adoption Unused “platform” is inventory theatre—demote

Demotion and reclassification are first-class outcomes. A paved road that fails is allowed to return to gravel or to internal-only use. That is governance, not embarrassment.

The disposition council (make it concrete)

Do not leave disposition to the loudest account channel or a lonely product manager after midnight.

Who attends

What inputs they see

What comes out

Cadence can be lightweight—biweekly triage of nominations—as long as supported-platform decisions are never silent merges.

When “paid discovery” is a lie

Customers are not roadmap-research subjects. Discovery is only paid in an honest sense when the exchange is reciprocal.

Reject the “paid discovery” label when any of these are true:

The honest exchange:

If you cannot write those two sentences into the SOW, you are not running paid product discovery. You are either doing honest services, or you are socialising R&D cost onto a buyer who did not agree to fund it.

How this sits next to Product of One

Product of One is the per-engagement move: service economics with inventory left behind; context, inventory, and verification compounding together.9 This piece is the multi-engagement product-company move: when several inventories and field exceptions exist, how do you decide what becomes platform without losing coherence?

Related siblings if you need the surrounding architecture: placement judgment in the field, and the practice-scale write-back system (including the hard line that engagement two—not the case study from engagement one—is the transfer proof).8

Observed / Executed Those sibling URLs resolve live as static articles (verified at writing). That is not the same as claiming the synthetic ledger was executed in production.

A practical test (not an inspiration paragraph)

This week, run one nomination end-to-end:

  1. Pick one exception you already handled in the field (or one you are handling now).
  2. Fill a single ledger row—including domain prior, process prior, invariant vs variation, and receipt pointers (empty pointers are allowed if you confess the gap).
  3. Hold a 30-minute disposition council with at least field + product + ops.
  4. Force one of the five dispositions. If you choose supported platform, complete the gate checklist or admit you cannot.
  5. Write the revisit trigger and the post-disposition slots you will fill later—even if every number is still blank.

If you cannot dispose the candidate without inventing metrics or hand-waving ownership, that is the finding. The platform does not need another heroic customisation. It needs a decision record.

Designed / Synthetic Reminder: the A/B/C document-ingestion ledger is a designed teaching artefact. Use it as a template. Do not cite it as executed multi-deployment proof. Public sources corroborate that serious FDE organisations intend field-to-product compounding; they do not publish this five-way gate or a post-promotion dataset matching these receipt slots.

References

  1. Palantir. “Dev versus Delta: Demystifying engineering roles at Palantir.” — “You can think of a Dev’s focus as ‘one capability, many customers,’ while a Delta’s focus is ‘one customer, many capabilities.’” https://blog.palantir.com/dev-versus-delta-demystifying-engineering-roles-at-palantir-ad44c2a6e87
  2. Palantir. “A Day in the Life of a Palantir Forward Deployed Software Engineer.” — FDSEs “focus on enabling many capabilities for a single customer.” https://blog.palantir.com/a-day-in-the-life-of-a-palantir-forward-deployed-software-engineer-45ef2de257b1
  3. Scott Farrell / LeverageAI. “Someone Has to Decide Where Intelligence Belongs.” — Field placement of intelligence as the scarce act; operating map and Audit → Evals → Deploy loop. https://leverageai.com.au/wp-content/media/articles/163-someone-has-to-decide-where-intelligence-belongs.html
  4. OpenAI. “OpenAI launches the OpenAI Deployment Company.” — Learn faster, “generalize the most effective solution patterns,” and bring lessons to more organisations. https://openai.com/index/openai-launches-the-deployment-company/
  5. OpenAI Deployment Company (Deploy). Official site. — “This cycle—build, prove, generalize—connects deployment to product development…” https://deploy.co/en-US
  6. Francessca Vasquez / About Amazon (AWS). “AWS invests $1 billion to embed AI forward deployed engineers with customers.” — “Each customer project compounds intelligence for their next”; customers leave with solutions and engineering capabilities. https://www.aboutamazon.com/news/aws/aws-1-billion-forward-deployed-ai-engineers
  7. AWS Partner Network Blog. “Introducing Forward Deployed Engineering for Partners.” — Partner-owned reusable harness (ontologies, evals, MCP, context graph); “The delivery IP stays with the partner.” https://aws.amazon.com/blogs/apn/introducing-forward-deployed-engineering-for-partners-winning-the-future-of-enterprise-ai/
  8. Scott Farrell / LeverageAI. “Forward-Deployed Practice OS.” — Human-gated promotion; de-identify/abstract/transferability; engagement two as transfer proof. https://leverageai.com.au/wp-content/media/articles/167-forward-deployed-practice-os.html
  9. Scott Farrell / LeverageAI. “Product of One.” — Parent article; per-engagement inventory; evidence package and compounding context/inventory/verification. https://leverageai.com.au/wp-content/media/articles/129-product-of-one.html
  10. Scott Farrell / LeverageAI. “Experience Is Compressed Priors.” — Domain priors vs process priors; dual-stream compounding test. https://leverageai.com.au/wp-content/media/articles/150-experience-is-compressed-priors.html