Almost every established organization relies on at least one ageing system: an application built twenty years ago, a software package that is no longer supported, a database that only two employees still understand. These systems work, but they hold back innovation, cost more and more to maintain and represent a growing security risk.
Why the "big bang" replacement often fails
It is tempting to rewrite everything and switch to the new system on a given date. Yet this approach concentrates all the risk in a single moment: forgotten business rules, poorly migrated data, unprepared users. Projects of this kind frequently exceed their budgets and schedules.
The gradual approach: replace piece by piece
The strangler fig pattern, popularized by Martin Fowler, offers an alternative. An access layer is placed in front of the old system, then its functions are replaced one by one with new services. At each step, the corresponding traffic is redirected to the new component. The old system gradually shrinks until it can be retired.
Key steps
- Map the functions, data and integrations of the existing system
- Document the business rules, often buried in the code
- Put an API layer in place to decouple users from the existing system
- Prioritize the modules to modernize based on their value and risk
- Migrate module by module, with automated regression tests
- Retire the old system once all functions have been replaced
Data migration is a project in itself
Legacy system data contains inconsistencies accumulated over the years. Allow time for profiling, cleansing and validation. Migration rehearsals, performed several times before the actual cutover, help detect problems and accurately measure how long the operation will take.
Key takeaway
Every step of the modernization should deliver value that users can see. That is what keeps executive support throughout a project that may span several years.
Don't forget the people
Users of a legacy system have developed habits and workarounds that are an integral part of their work. Involving them from the design stage uncovers undocumented needs and encourages adoption. The experts of the old system are also invaluable: their knowledge must be captured before they leave.
Modernizing gradually takes discipline, but it greatly reduces risk. It is the approach we favour for our clients' critical systems, especially in the public sector, where service interruption is not an option.