Operations5 min read
The Best Migration Is the One Nobody Notices
June 2026 · Jake McFadden
Most migrations are pitched the same way. Build the new system in parallel, pick a cutover date, train everyone, and flip the switch. It is clean on a slide. It is also how a large share of migrations fail, for a reason that has nothing to do with the code: the operation cannot stop, and a cutover asks it to.
A cutover date is a bet that reality will hold still.It will not. On the day you flip the switch, the new system meets every edge case at once: the malformed file that shows up quarterly, the manual adjustment nobody documented, the workflow the schedule quietly depends on. The old system absorbed all of that through years of human workarounds. The new one meets it cold, in production, on the worst possible day to find it. The team’s instinct is correct and fatal: they fall back to the old system, and the migration stalls with two systems running and nobody trusting the new one.
There is a better shape, and it is quieter.
Keep the surface. Swap the engine. The tool people use is rarely the problem. The thing underneath it usually is. So leave the surface where it is and rebuild what sits behind it. In finance, that often means analysts keep working in Excel while an add-in connects their sheets to a governed database. To the person doing the work, nothing changed: same grid, same muscle memory. Underneath, a fragile pile of standalone workbooks has become a real system of record with validation, versioning, and access control. The migration happened; nobody had to stop to let it.
Move one workflow at a time, and run both until the new one is trusted. Pick the single most painful job the operation does and give the new system that one, end to end, in production. Leave everything else exactly as it was. Run the old path and the new path side by side and compare them until the new one has earned the work, not because a plan says it is ready, but because it has produced the right answer next to the old one for long enough that the team stops checking. Then take the next workflow. Value migrates incrementally; risk stays small because only one thing is ever new at a time.
This is slower than a rewrite, and that is the point. You carry two systems for a while. You resist the urge to do it all at once. In exchange, failures surface small and early — a single workflow, caught in parallel, while the old path is still there to fall back to — instead of arriving together on a cutover day. For an operation that cannot pause, that trade is not close. The patience is the strategy.
It is also how adoption actually works. The hard part of a migration was never writing the new system; it was getting people to run their real work through it. Meet them in the tool they already trust, take one painful job off their plate, and let the new system earn the next one. A migration people never had to brace for is one they do not resist. The best sign it worked is that no one can point to the day it happened.
If your operation is staring down a big-bang cutover with a date circled on a calendar and a training plan attached, that date is the risk. The move is to erase it: keep the surface, swap the engine underneath, and migrate the work one painful job at a time.
Staring down a cutover the operation can’t afford to get wrong?
Book a call