Refactoring & Re-architecting
Changing structure incrementally while the system keeps running.
4 to work through
-
advanced
A high-change application is constrained by its structure. What distinguishes refactoring from re-architecting here, and how do you choose?
2 min answer -
advanced
A team proposes rewriting a critical system from scratch, arguing the existing one is unmaintainable. How do you evaluate this?
2 min answer -
advanced
Six months into a two-year re-architecture you become convinced the target architecture is wrong. Walk me through how you raise it and what you propose.
3 min answer -
advanced
When would you re-architect rather than replatform, and how would you sequence it?
2 min answer
2 terms in this topic
Rearchitecture Threshold
The conditions under which rebuilding a system is justified, given that it is the most expensive treatment and is chosen far more often than it is wa…
practiceRefactor and Re-architect
Changing the application's structure — the most expensive migration strategy, justified only where the structure itself is the constraint.
Neighbouring topics
Legacy Modernization
General material on modernising existing systems.
Legacy Assessment
Understanding what a system does before deciding what to do with it.
The Six Rs
Rehost, replatform, refactor, repurchase, retire, retain — per application.
Rehosting
Lift and shift: fastest, cheapest, and capturing none of the benefits.
Replatforming
Targeted changes that capture operational wins without a rewrite.
Rebuild vs Re-architect
Why greenfield replacement fails, and the narrow cases where it does not.
Strangler Fig
Routing capabilities to new implementations behind a facade, one at a time.
Application Decomposition
Finding seams in a monolith, starting from the data.
Database Migration
Moving engines, versions and schemas without losing data or uptime.
Data Migration Strategies
Backfill, dual-write, reconciliation and verification.
Zero-Downtime Migration
Expand, migrate, contract — and the contract phase that never happens.
Parallel Run
Shadowing the old system to discover the rules nobody documented.
Cutover Planning
Rehearsals, go/no-go criteria and a rollback that has been executed.
Legacy Integration Patterns
Anti-corruption layers, adapters and CDC against systems that cannot change.
Mainframe Modernization
Batch windows, COBOL, and the risk profile of core banking systems.
Migration Risk
Bounding blast radius, staging by cohort, and honest readiness reporting.
Modernisation Business Case
Pricing tail risk so deferred maintenance becomes fundable.
Coexistence Patterns
Running old and new together for years without corrupting either.
Decommissioning
Actually switching the old system off, and proving nothing depended on it.