Assess before you move anything
Good migrations start with inventory and dependency mapping. We discover servers, databases, batch jobs, licenses, network flows and integrations using tools such as AWS Application Discovery Service or Azure Migrate, and talk to application owners about business criticality, maintenance windows and compliance constraints, because the spreadsheet never tells the whole story. Compliance and data residency rules are checked at this stage as well, since they can decide the region and the provider before any technical comparison starts.
Each workload is then assigned a strategy from the familiar R framework: rehost, replatform, refactor, repurchase, retire or retain. Lift and shift is faster but carries inefficiencies into the cloud, while refactoring costs more upfront and pays back where scale or release speed matter. Some systems should simply be retired or left where they are. Quick wins are separated from long projects, so the business sees early progress while the harder systems get the preparation time they need.