Strategy: Legacy Modernisation
Legacy systems are often the backbone of the organisation: they have run reliably for years, are difficult to understand, expensive to maintain, and block the introduction of new features. Modernisation does not necessarily mean replacement, but a conscious decision: replace, rebuild, or retain?
The most dangerous pattern is the unplanned big-bang rewrite: expensive, risky, and frequently a failure.
Modernisation Strategies (The 6Rs)
- Retire: Decommission the system because the value no longer justifies the effort.
- Retain: Consciously do nothing. The system works; the effort of modernisation outweighs the benefit.
- Rehost (Lift and Shift): Move infrastructure to the cloud without code changes. Fast, low risk.
- Replatform: Targeted adjustments for managed services (e.g. database migration). Medium risk.
- Refactor/Re-architect: Significant code restructuring. Demanding, but maximum long-term benefit.
- Replace: Replace custom development with commercial standard software or SaaS.
Decision Criteria
- Business Criticality: How critical is the system to ongoing operations?
- Technical Debt: How high are current maintenance costs?
- Business Growth: Does the system block new features or integrations?
- Available Expertise: Do we have the knowledge to modernise the system?
- Migration Path: Can the strangler fig pattern be applied?
Focus: Step by Step, Not All at Once
Incremental modernisation using the strangler fig pattern minimises risk and delivers productive value throughout the entire migration.
FAQ
When is a full rewrite justified?
Rarely. When: (1) The system is no longer maintainable and no developer understands it any longer. (2) The technology is obsolete (e.g. no security support remaining). (3) A clear scope and a transition strategy are defined.
What does legacy modernisation cost?
That is the wrong question. The right question: what does it cost not to modernise the legacy system? Lost features, higher failure risks, inability to grow.
Reference Guide
- Cloud Adoption Framework (AWS/Azure): The 6Rs as a migration framework. docs.aws.amazon.com
- Strangler Fig Pattern: Methods: Strangler Fig
- Working Effectively with Legacy Code (Feathers): O'Reilly