The first thing that we did was create a plan for managing the migration and presented it to Synovos management for approval. The plan included the overall timeframe for the project, which processes could be performed automatically and which ones manually and everything else concerning the overall scope of the project.
Then we created staging environments on two separate servers, one for the 2011 CRM and the other for Dynamics 365. We made a full copy of the database, restore it on the next server and import organization using Deployment Manager. In order to implement certain fixes, we had to write completely new scripts from scratch and improve older scripts as well. After importing everything to the destination environment we applied all the modified customizations (that were made on a separate development environment and tested thoroughly).
When migrating the data between two on-premise environments, we updated all of the custom-created fields using T-SQL scripts, which sped up the process. We updated all of the lookups for all records and updated the statuses by running all the custom scripts copying values. All of the customizations were then applied.
At the current stage, we are making sure that all of the customizations and were imported properly and making any adjustments as requested by the customer.