Forward-deployed / Learning zone
Technical product managementa standalone module
Lesson 07

Launches, rollouts & migrations

TL;DR

Modern shipping separates two things that used to be one: deploy (code reaches production, dark, behind a feature flag) and release (users actually see it, at a percentage you control). That separation enables progressive delivery — internal users, then beta, then 1%, 10%, 50%, 100% — with metrics checked at every stage and a rollback plan that's a flag-flip, not a fire drill. Launch is the marketing moment, and needs its own machinery: support enablement, docs, comms, and a go/no-go that someone actually owns. The least glamorous, highest-risk work in the discipline is the migration — moving users and data off the old thing. The rule there: the effort lives in the transition, not the destination, and you're not done until the old thing is off.

🎯 For the AI PM

Why it matters — AI features fail in ways staged rollouts are built to catch: quality problems that only appear on real-user inputs, costs that only appear at real volume, and abuse that only appears in public. And the riskiest recurring change isn't your code — it's the model or prompt upgrade, which can silently regress behaviour that worked yesterday.

What it changes in your decisions — Every AI rollout stage gates on quality signals (acceptance rate, eval spot-checks) alongside crashes and latency. Model or prompt swaps get the full migration treatment — offline eval diff, side-by-side shadow run, staged ramp with rollback — never a quiet Tuesday config change.

Ask yourself — "At 1%, what signal tells me quality is wrong — and can I get back to yesterday's behaviour in one action?"

Risk if ignored — A model upgrade that improves the average and breaks a top customer's workflow ships to 100% in one step, and the rollback path turns out to be "re-deploy last month's build under pressure."

Progressive delivery

Progressive delivery

Each stage catches a different class of problem

Issues found at any stage flag back off — the fastest recovery is a flag-flip, not a fire drill.

Dark
deployed behind flag
→
Internal
dogfood
→
Beta
opted-in users
→
Canary
1–5% traffic
→
Ramp
25→50→100%
→
GA
flag removed
↩ issue found at Internal, Beta, or Canary → flag off, back to Dark · regression at Ramp → back to Canary
Rollback is a product requirement: what's the one action that restores yesterday's behavior, who can take it, and does new data still work under the old version?

Each stage exists to catch a different class of problem:

Rollback is a product requirement you own. Before any stage: what's the one action that restores yesterday's behaviour, who can take it, and does data written by the new version still work under the old one? That last question is the sneaky one — a feature that writes a new data format can make "just turn it off" impossible. If rollback is hard, you find out now, not at 2 a.m.

Launch ≠ release

Release is traffic percentages. Launch is the coordinated moment the world is told. The launch machinery PMs own:

Migrations: the transition is the project

Sooner or later you'll run a migration — new billing system, v2 API, re-platformed search, swapped model provider. The pattern that survives contact with reality is expand → migrate → contract:

  1. Expand — stand up the new path alongside the old. Often both run simultaneously (dual-write; or shadow mode, where the new system processes real traffic but its output is only logged and compared).
  2. Migrate — move traffic/users in cohorts, easiest first, watching comparisons. For external users this is where deprecation comms, timelines, and incentives live — you are changing someone else's roadmap, and goodwill is spent or earned here.
  3. Contract — turn the old path off and delete it. The step everyone skips, leaving two systems to run, secure, and reconcile forever. A migration is done when the old thing is off — track that as the milestone, not "new thing launched."

PM-owned migration questions: What breaks for which cohort, and do they know? What's the comparison that proves the new path matches the old (for an AI swap: the eval diff and shadow-run comparison)? What's the rollback at each cohort? And who is watching the long tail — the last 5% of users on the old path who consume 50% of the effort?

Failure modes

Practitioner checklist