Methodology

The Real-Tenant Probe

Move the moment of truth forward. Before deep planning, run a two-day probe against a real tenant — and let it cancel the PRD if the foundation isn't there. Cancellation is a successful outcome.

Methodology6 min read

I — Where this comes from

The Pipeline Is a Partnership named the rule: autonomous within a phase, hard checkpoint between phases, with the real tenant as the gate that catches what mocks cannot. That essay fixed when the tenant runs the verdict — between phases of a build.

This essay fixes one phase earlier.

The Redirect Manager build forced the question. PRD-000 (English-only redirect maps) shipped clean. PRD-001 planned the multilingual extension: per-language redirect maps, locale-prefixed source URLs, fallback semantics, the whole shape. The architecture was credible. The task breakdown was credible. The mocks were credible.

Two days into Tranche 1, a real-tenant capture against the stock Sitecore Redirect Map template returned a single inconvenient fact: the UrlMapping field — the one PRD-001 needed to scope per-language — is SHARED on the stock template. Not Versioned. Not Unversioned-per-language. Shared. One value, all languages, no override path that doesn't replace the template.

PRD-001 was cancelled at Tranche 1. Two days spent. Two-to-four weeks saved.

That cancellation is the methodology.

II — The shape of the probe

A real-tenant probe is a short, scripted spike that runs before the architecture-and-tasks expansion, against the single load-bearing assumption the PRD is built on. It has a fixed shape.

Tranche 1 only
two days, hard cap

The probe is not a build. It captures the smallest piece of real-tenant response shape that the PRD assumes works — one query, one mutation, one inspection. Nothing else from the PRD scope ships in this window.

One assumption
the load-bearing one

Every PRD has a single assumption the whole feature pivots on. Find it. Probe it. Multilingual scoping for Redirect Manager pivoted on the field being per-language. Tenant-only entitlement evaluation for Paywall pivoted on the marketplaceAppTenantId being the right key. Each PRD names its own.

Cancel-friendly
three outcomes, equal status

The probe ends in one of three states: green (proceed to full PRD), yellow (proceed with a known workaround documented as an ADR), or red (cancel the PRD, file the captured shape as a reference memory). Red is not a failure. Red is the probe doing its job.

The probe earns the right to cancel by being cheap on entry. If a probe takes two weeks, it has the same blast radius as the build it's meant to de-risk, and cancellation becomes politically expensive — operators won't walk away from sunk cost on a fortnight's spike. Two days is the limit that keeps the cancellation lever functional.

III — What it caught

Two products ran the probe in 2026-Q2. Both got an answer they couldn't have predicted from the SDK type definitions or the prior runs.

Probe · 01

Redirect Manager — PRD-001 (multilingual)

2026-05-13 · Tranche 1, two days

The stock Sitecore Redirect Map template stores UrlMapping as SHARED. Multilingual scoping cannot exist without replacing the template. PRD-001 cancelled at the gate; PRD-000 (English-only) stayed shipped and live.

  • Load-bearing assumption — per-language redirect mapping requires the field to be Versioned or Unversioned-per-language, not Shared. PRD-001 assumed at least one of those.
  • What the probe did — one Authoring GraphQL query against the live template returned the per-field versioning matrix. UrlMapping / RedirectType / three flags all SHARED. __Display name UNVERSIONED.
  • The verdict — red. No workaround was reasonable; replacing the stock template would have orphaned every existing redirect map. Multilingual deferred indefinitely.
  • The cost saved — two-to-four weeks of architecture, task breakdown, implementation, and a smoke pass that would have surfaced the same finding much later.
  • What stayed — the captured field-versioning matrix lives as a reference memory. Any future multilingual proposal starts there.
Probe · 02

Paywall Blueprint — PRD-000 (tenant evaluator)

2026-05-15 · Tranche 1, one day

The probe asked a different question — not 'is this possible' but 'is this key the right key.' The marketplaceAppTenantId proved to be the durable entitlement key; host.user is a separate query. Foundation tranche shipped on the back of that answer.

  • Load-bearing assumption — the entitlement record needs a key that survives across user sessions, tenant re-installs, and seat changes. PRD-000 assumed marketplaceAppTenantId would.
  • What the probe did — a one-day SDK exercise against two different tenants captured the three identity-shaped values the Marketplace iframe exposes (tenant, app, user), and which of them changes when.
  • The verdict — green for tenant-only evaluation as PRD-000. The probe also surfaced that host.user is a separate SDK query, not a property on tenant context — which became ADR-0011 and pushed seat-aware evaluation cleanly into PRD-002.
  • What it enabled — Phase 0 of a four-PRD roadmap could ship as a deliberately minimum-viable foundation. Stripe direct moved to PRD-001 against a verified key.

IV — The contract

Four rules, deliberately small. The probe survives because it stays a spike, not a build.

RuleWhat it means
Two-day capThe probe lives in Tranche 1 and exits in 48 working hours. If it can't be answered in two days, the assumption is too coarse — split it before probing.
One assumption, namedThe PRD declares the single load-bearing assumption up front. The probe targets that one. Probing four assumptions is a build, not a spike.
Three legitimate outcomesGreen / yellow / red, with red as a clean exit. A probe that always returns green isn't a probe — it's a confirmation ritual.
The capture is the artefactWhatever the verdict, the probe leaves behind a captured shape: a real GraphQL response, a real SDK return value, a field-versioning matrix. That capture outlives the PRD it killed or shipped.

The fourth rule is the one that turns a cancelled PRD into a long-term asset. Redirect Manager PRD-001 left a field-versioning matrix that documents the stock template's constraints; any future Sitecore Redirect Map work starts from that document instead of re-discovering the limitation. Paywall PRD-000 left a captured identity table that seat-aware PRD-002 will inherit. The probe never costs nothing — even on a red verdict it produces a reference artefact.

V — Why it works

There are two reasons.

Cancellation has to be cheap. A PRD that took two weeks to plan cannot be cancelled lightly — operators rationalise, scope down, ship the half that works. A PRD that's been probed for two days can be cancelled. The asymmetry is the lever. Move the load-bearing question to before deep planning and cancellation stays in the operator's toolkit for as long as it needs to.

The right artefact is a captured shape, not a memo. Probes that end in prose-only conclusions ("we tried and it doesn't seem to work") get re-litigated six months later. Probes that end in a captured GraphQL response, a captured SDK return value, a field-versioning matrix, do not. The next operator opens the artefact, reads the shape, and either accepts the prior verdict or finds a new question. The artefact is the spec for the next conversation.

VI — Hooks for the next round

Hook 01

Move the moment of truth forward.

The hard checkpoint between phases catches integration bugs. The probe at Tranche 1 catches assumption bugs. Same idea, one phase earlier.

Hook 02

Cancellation is a successful outcome.

Two days spent, two-to-four weeks saved. A probe that never cancels anything isn’t doing its job — it’s a confirmation ritual with a different name.

Hook 03

Name the load-bearing assumption.

Every PRD has one assumption the whole feature pivots on. Probing four is a build. Probing one in two days is a spike. The discipline is finding the right one before you start.

Hook 04

The capture is the artefact.

Whatever the verdict, leave behind a real shape — a GraphQL response, an SDK return value, a versioning matrix. That artefact outlives the PRD and trains the next decision.

Hook 05

Two days is the lever.

If a probe takes two weeks, it has the same blast radius as the build it’s de-risking, and cancellation becomes politically expensive. The two-day cap is what keeps the cancellation lever functional.

The pipeline still runs the build. The dogfood loop still hardens the skills. The partnership still owns the gate between phases. The probe sits one move earlier on the board — the cheapest, sharpest question you can ask a tenant before committing to plan against it.

Related case studies