Migrations fail when they are planned as one big switch-over. The old system usually does more than anyone wrote down, the data is messier than expected, and there is no way back once the switch is made. These four steps make the migration a series of small, reversible milestones.

Step 1 — Inventory what the old system really does

Goal: Find every job the system performs before replacing it.

  1. List the screens, reports, exports and scheduled jobs people actually use.
  2. Interview the people who use it daily about workarounds and edge cases.
  3. Map every system that reads from or writes to it.
  4. Record who owns each function after the move.

You finish with: A function inventory with owners and integrations.

Step 2 — Profile and clean the data

Goal: Know the state of the data before moving it.

  1. Export a full copy and measure duplicates, gaps and invalid values.
  2. Agree rules for what to fix, what to archive and what to leave behind.
  3. Write mapping rules from old fields to new ones.
  4. Run a trial migration into a test environment and compare counts and totals.

You finish with: Data rules, field mappings and a verified trial migration.

Step 3 — Migrate in stages

Goal: Move one function or group at a time.

  1. Pick a low-risk first stage, such as one team, region or record type.
  2. Run old and new in parallel for that stage and compare results.
  3. Keep a tested rollback plan for each stage.
  4. Move to the next stage only when the agreed checks pass.

You finish with: Completed stages, each with checks passed and a rollback plan.

Step 4 — Retire the old system

Goal: Switch off safely and keep what must be kept.

  1. Confirm every function in the inventory has a new home.
  2. Archive the old data in a readable format for as long as required.
  3. Remove access and stop licences or hosting for the old system.
  4. Document the new setup and who owns it.

You finish with: Old system retired, data archived and ownership documented.

Common pitfalls

  • One big switch-over with no way back.
  • Discovering hidden functions after the old system is off.
  • Moving dirty data and cleaning it later.
  • Turning off the old system before the archive is checked.

Read as Markdown Milestone & Custom Delivery