Forward Deployed Engineering Tutorial · Delivering Value · Lesson 22 of 24
From Prototype to Production
Turn a convincing prototype into a supported production deployment: configuration, reliability, security, monitoring and ownership.
The gap
A prototype proves value with shortcuts: hard-coded credentials, a notebook, one happy-path dataset, no monitoring. Production needs the opposite. Plan the gap explicitly instead of letting the prototype quietly become production.
Production checklist
| Area | Ready when |
|---|---|
| Configuration | No hard-coded values; per-customer config in code or a config store |
| Secrets | In a secret manager, rotatable |
| Reliability | Retries, idempotency, backfill and re-run support |
| Data quality | Validation and quarantine with reports |
| Security | Least-privilege access, reviewed by the customer and your security team |
| Observability | Logs (redacted), metrics, alerts, a status view |
| Operations | Runbook, owner, escalation path, support trained |
| Product | Generic parts upstreamed into the product, customer-specific parts documented |
checklist = {"config externalised": True, "secrets in manager": True, "retries + idempotency": True,
"validation + quarantine": False, "security review": True, "alerts": False,
"runbook + owner": False, "upstreamed generic parts": False}
done = sum(checklist.values())
print(f"production readiness: {done}/{len(checklist)}")
for item, ok in checklist.items():
if not ok:
print(" todo:", item)
Output
production readiness: 4/8 todo: validation + quarantine todo: alerts todo: runbook + owner todo: upstreamed generic parts
Test yourself
A prototype impressed the customer and they want it live next week. What's the right response?
Ship the prototype as-isAgree a short, explicit plan to close the production gaps, with datesRewrite everything from scratch over six monthsRefuse
Show answer
Answer: Agree a short, explicit plan to close the production gaps, with dates
Make the gaps visible and close the critical ones quickly.