Platform IntelligencePlatform Intelligence

Modernisation

Why Software Rewrites Usually Fail

A pragmatic look at rewrite risk, when rewrites are justified, and safer alternatives like incremental replacement.

Software rewrites are attractive because they promise a clean start.

The current system is messy. Delivery is slow. The architecture feels dated. Engineers are tired of working around old decisions. A rewrite seems like a way to leave all of that behind.

The problem is that rewrites often replace visible technical debt with hidden product risk.

The Old System Knows Things

Legacy systems contain more than code. They contain business rules, customer exceptions, operational workarounds, integration behaviours, reporting assumptions, and years of product learning.

Much of that knowledge is not documented anywhere else.

When teams rewrite from scratch, they often discover that the old system was handling edge cases nobody remembered. Those details reappear late, when the replacement system is already expensive and politically difficult to change.

Rewrites Create Parallel Burden

A rewrite usually means maintaining two systems at once.

The old system still needs support. The new system needs design, implementation, testing, migration, and rollout. Product work does not stop while this happens. Customers still need features. Incidents still occur.

This parallel burden is where many rewrites lose momentum.

The Target Keeps Moving

Software products do not freeze while a rewrite is underway.

The business changes, customers ask for new features, competitors move, and regulations shift. The new system starts by trying to replace the old one, but the old one keeps evolving.

By the time the rewrite is close, the target has changed.

When Rewrites Are Justified

Rewrites are not always wrong.

They can be justified when the existing platform cannot meet essential requirements, when the core technology is unsupported, when security or compliance cannot be fixed incrementally, or when the product has changed so fundamentally that the old model no longer fits.

Even then, the decision should be evidence-based.

Incremental Replacement Is Usually Safer

Most organisations need a migration path rather than a rewrite event.

That may mean extracting one workflow, routing a subset of traffic, replacing an integration, creating a new reporting layer, or isolating a business capability behind a clearer interface.

The goal is to reduce risk while continuing to deliver.

Rewrite Decisions Need Exit Criteria

If a rewrite is approved, it needs explicit success criteria:

  • What business outcome must improve?
  • Which behaviours must be preserved?
  • Which customers or workflows migrate first?
  • How will progress be measured?
  • What triggers rollback or course correction?

Without those criteria, a rewrite becomes a belief system.

The better question is not "should we rewrite?" It is "what is the smallest change that reduces the most risk and creates the most future optionality?"

Back to blog posts