Why Legacy Modernisation Fails
The graveyard of failed modernisation projects is vast and expensive. Gartner estimates that 75% of large-scale modernisation programmes exceed their budget by 50% or more, and 30% are abandoned entirely. Having rescued several such programmes, we've identified the three patterns that consistently lead to failure.
The first is the "big bang" rewrite — the belief that you can rebuild a complex system from scratch while the old one continues running, then switch over on a single weekend. This approach ignores the decades of business logic, edge cases, and institutional knowledge embedded in legacy code. The second is "lift and shift" — moving legacy applications to the cloud without rearchitecting them. You end up paying cloud prices for on-premise architecture, gaining none of the cloud's advantages. The third is scope creep disguised as modernisation — using the project as an opportunity to add features, change business processes, and redesign interfaces simultaneously.
The Strangler Fig Pattern: Our Proven Approach
Named after the tropical fig that gradually envelops its host tree, the strangler fig pattern replaces legacy systems incrementally. New functionality is built in modern architecture, while existing functionality is migrated piece by piece. At no point is the old system switched off entirely — it's gradually replaced until nothing remains.
This approach works because it eliminates the single biggest risk in modernisation: the big-bang cutover. Instead of betting everything on a single migration weekend, you migrate in small, reversible increments. Each increment delivers value independently, and if something goes wrong, you roll back that single piece — not the entire programme.
Phase 1: Discovery and Dependency Mapping (Weeks 1-3)
Before touching any code, we map the entire legacy landscape. This means identifying every integration point, data flow, business rule, and dependency. For a typical enterprise system, this reveals 200-500 integration points — many undocumented, some forgotten entirely.
We use a combination of automated code analysis, network traffic monitoring, and stakeholder interviews. The automated tools catch the technical dependencies; the interviews catch the business context that no tool can discover. The output is a complete dependency map that guides the entire migration sequence.
Phase 2: Foundation Layer (Weeks 3-6)
Before migrating any business logic, we establish the foundation: API gateway, authentication/authorisation, logging, monitoring, and deployment pipelines. This foundation serves both the legacy system (via adapters) and the new system, enabling gradual migration without disrupting existing integrations.
The API gateway is particularly critical — it acts as the "strangler" layer, routing requests to either the legacy system or the new system based on migration progress. External consumers don't know (or care) which system is serving their requests.
Phase 3: Incremental Migration (Weeks 6-24+)
With the foundation in place, we migrate functionality in priority order. Each migration follows the same pattern: build the new implementation, deploy it behind a feature flag, route a percentage of traffic to it, validate correctness, then gradually increase traffic until 100% is served by the new system.
Priority is determined by business value and technical risk. We typically start with high-value, low-complexity modules to build confidence and demonstrate progress. Complex modules with many dependencies come later, once the team has established patterns and the foundation is proven.
Phase 4: Decommissioning (Ongoing)
As each module is fully migrated and validated, the corresponding legacy code is decommissioned. This isn't just deleting code — it's removing infrastructure, cancelling licences, updating documentation, and retraining support teams. Each decommission reduces the operational burden and cost of maintaining the legacy estate.
Real-World Timeline: What to Expect
For a typical enterprise system (10-50 integration points, 5-20 major modules), here's what a realistic modernisation timeline looks like:
- Months 1-2: Discovery, architecture design, foundation layer. No visible change to end users.
- Months 3-6: First 3-5 modules migrated. Early adopters using new system. 20-30% of traffic on new architecture.
- Months 6-12: Core modules migrated. Majority of traffic on new architecture. Legacy system handling only edge cases and rarely-used functionality.
- Months 12-18: Final modules migrated. Legacy system decommissioned. Full cloud-native operation.
For our Toyota ERP modernisation, the entire migration took 14 months from first commit to full decommission — with zero unplanned downtime throughout the process. The key was rigorous dependency mapping upfront and conservative traffic shifting at each stage.
Critical Mistakes to Avoid
- Underestimating data migration: Moving code is straightforward. Moving data — with its inconsistencies, undocumented formats, and implicit business rules — is where most projects stumble. Budget 30-40% of your timeline for data migration alone.
- Ignoring organisational change: New systems require new skills, new processes, and new ways of working. Technical migration without organisational readiness leads to systems that are technically modern but operationally unchanged.
- Skipping the foundation: Jumping straight into module migration without establishing API gateways, monitoring, and deployment pipelines creates technical debt that compounds with every subsequent migration.
- Perfectionism: The goal isn't a perfect system — it's a better system. Waiting for the "perfect" architecture before starting means never starting. Ship incrementally, improve continuously.
When NOT to Modernise
Not every legacy system needs modernisation. If the system is stable, meets business needs, has acceptable operational costs, and doesn't block other initiatives — leave it alone. Modernisation for its own sake is expensive and risky. Only modernise when there's a clear business driver: unacceptable operational costs, inability to meet new requirements, security vulnerabilities that can't be patched, or vendor end-of-life.
Planning a Legacy Modernisation?
Get a free assessment of your legacy estate and a realistic migration roadmap.
Book a Free Assessment →