Why not cut over all at once?
In a single cutover every department wakes up on the new system the same morning. Every problem arrives at once and there is nowhere to fall back to; because the company still has to trade, the team firefights instead of fixing.
In a wave migration one unit moves at a time. When something breaks the blast radius is small, the old system is still standing, and what was learned goes into the next wave.
How long should parallel running last?
The length is set by a measure, not a calendar: the two systems’ outputs are compared, and the parallel period ends when every remaining difference can be explained. The gap need not be zero, but the reason for each gap has to be known.
This period puts two workloads on the company, which is why everyone wants it short. Cut early, the differences travel into production unnoticed and surface months later as cost.
How much old data should move?
Moving everything is a common mistake. Carrying ten years of dirty data into a new system carries the dirt with it, and inflates both the duration and the risk of the migration.
The split that works in practice: open records move — open orders, current stock, balances, product and customer definitions. Closed history is kept separately as a reportable archive.
Where do migrations break?
On training done after the software is finished. A user who sees the system for the first time on go-live day does not use it; they look for a way around it and return to the old habit.
The second break is naming the receiving team at the end of the project. Formed after development, the handover becomes a document delivery — and documents teach nobody a system.