The technology of moving mailboxes and files is largely solved. Migrations still go wrong — and almost always for human reasons: permissions nobody documented, identities that did not map, and users who were never brought along.
Before you move anything
Inventory the estate. Map identities tenant-to-tenant. Decide what NOT to migrate — dead content is cost, not value. Agree the cutover model: big-bang, phased, or coexistence.
Permissions are the project
SharePoint and Teams permission sprawl is where fidelity dies. Rationalise into governed workspaces before you cut over, not after. Map source permissions explicitly and validate post-move.
Adoption is not a training email
Phased cutovers, champions, and a clear “where did my stuff go” story. Measure adoption after, not just completion.
Do these well and the migration becomes a non-event — which is exactly what a good migration should be.