Ask most implementation partners how to consolidate ERP across a group and the plan arrives with a familiar clause buried in it: a change freeze. For some period — usually longer than promised — the business is asked to stop modifying processes, integrations, and sometimes whole product lines, so the migration can hit a stable target.

For a group running continuous operations across finance, manufacturing, and supply chain, that clause is not a detail. It is an operational risk with a real revenue cost, and it deserves to be challenged.

Why the freeze exists

Freezes exist because point-to-point integration makes systems brittle. When every system talks directly to every other system, changing one mid-migration means re-testing the web around it. The freeze is not a methodology choice; it is a symptom of coupling.

Decouple first, migrate second

The alternative is to attack the coupling before the migration. Introducing an event-driven integration layer — in our recent work, Azure Service Bus — changes the bargain:

  • Systems publish events instead of calling each other. The ERP core, manufacturing systems, and finance tools subscribe to the events they need.
  • Each area migrates on its own timeline. Because consumers are decoupled from producers, cutting one system over does not destabilise the rest.
  • The business keeps moving. Changes elsewhere in the estate ride through the same event contracts rather than breaking hidden dependencies.

Sequence by dependency, not by vendor playbook

The second half of the approach is analytical rather than technical: map the real process dependencies before any design decision, and let that map — not the implementation partner's standard sequence — set the migration order. When every design decision traces to a documented business requirement, stakeholders know what is changing, when, and why. That transparency is what makes a freeze unnecessary.

We delivered a group-wide consolidation this way — finance, manufacturing, and supply chain — with no programme-wide freeze at any point. The pattern is repeatable, and it starts with refusing the default clause.