
Most migrations do not fail in the cutover window. They fail six weeks earlier, in the meeting where nobody wanted to say that the dependency map was incomplete.
We have moved somewhere over four hundred workloads in the last five years, and the pattern is remarkably consistent. The technical work is well understood and largely automatable. What sinks a programme is the set of things everybody assumed somebody else had documented: the batch job that writes to a share nobody owns, the licence tied to a MAC address, the reporting process that runs off a spreadsheet on a desktop under someone's desk.
Start with the dependency map, not the target architecture
A migration plan that cannot be reversed on a Sunday afternoon is not a plan. It is a bet.
Move in reversible increments

Wave planning session, week four of a 91-application migration.
What we insist on before the first wave
These five items are non-negotiable in our own engagements, and they are the same five we look for when auditing somebody else's programme:
- A dependency map produced from observed traffic, not interviews.
- A named business owner for every application, reachable on the cutover weekend.
- A tested rollback for each wave, with the test signed off in writing.
- Baseline performance figures, so "it feels slower" can be answered with data.
- A cost model per workload, reviewed monthly for the first two quarters.