Modernising a legacy system without a big-bang rewrite
Full rewrites fail often enough that the default should be against them. The safer path is to move one capability at a time while the old system keeps running.
Start at the edges
Reporting, exports and integrations are usually the easiest things to move first, and doing so proves the new platform can read the old data. Each successful move reduces dependence on the legacy system without touching its core.
Define parity before you start
For each capability, write the acceptance criteria that prove the replacement behaves correctly, including edge cases the old system handles by accident. Run both systems in parallel until those criteria pass.
Plan the data migration twice
Once as a trial, once for real. The trial migration will surface duplicates, orphaned records and fields that were used inconsistently for years. Budget for cleanup as a project in its own right.
Common questions
- When is a rewrite the right call?
- When the platform is unsupported, the data model cannot represent the business, and maintenance consumes more than a replacement would. Even then, migrate in stages where possible.
- How long should a modernisation take?
- Expect the first capability to ship in weeks and the full migration to run across quarters. A plan that claims otherwise is underestimating the data work.
Next step
If this question is live in your business right now, describe the situation and you will get a written view on the options, including whether you should build at all.
Discuss your projectRelated notes
All insightsWhen spreadsheets stop being enough
The signs that a spreadsheet-driven operation needs a real system, and the cheapest first step that is not a full ERP implementation.
ReadCustom softwareHow to justify an internal tool
A simple model for calculating whether an internal tool pays for itself, using hours recovered, error cost and the value of visibility.
ReadCustom softwareIntegrating systems without creating a spider web
How to connect CRM, ERP, payments and internal tools with clear ownership of data, retries and error handling.
Read