When should an MVP be rewritten, and when should it be rescued?
I do not rewrite because code looks ugly. I consider rewrite when the core system can no longer carry the product reliably and incremental repair stops reducing total risk.
Starting over is attractive because it promises a clean slate. It also means rediscovering production edge cases, migrating data and running two realities during transition.
Rescue signals
- Core data model is mostly sound.
- Problems cluster in a few domains.
- Consumers can migrate incrementally.
- Production behavior can be measured.
Rewrite signals
- Core model cannot represent the product.
- Security boundaries cannot be introduced safely.
- Every small change creates unpredictable regression.
- Platform constraints block the core requirement.
const rewriteCost = implementation + dataMigration + regressionDiscovery + parallelOperation + userMigration + releaseRisk;Rewriting an unvalidated product can be nothing more than rebuilding uncertainty with cleaner code.
From Prototype to Production
Turning a working MVP into a dependable product: production checks, modular refactoring, data migration, audits, rewrite decisions and release gates.