Upgrading to the latest platform is never something to underestimate with any product. With Dynamics 365 we've experienced such rapid platform changes over the past 8 years we should be all getting used to some of the pieces of an upgrade. 

With the Dynamics 365 V9+ update we have to remember to upgrade our custom code assemblies. This should be fairly straight forward if your using NuGet packages in your projects. Microsoft has invested into lots of different packages like https://www.nuget.org/packages/Microsoft.CrmSdk.CoreAssemblies/

I use Visual Studio for my custom code components like plugins and custom workflow activities.  After opening the project I've selected manage NuGet packages and I get a screen like this:

This update process also helps resolve any dependencies and highlights any errors if they occur. A great example of this is I mentioned before I'm using FakeXrmEasy as my unit test framework. This will need to be updated as well; in this example FakeXrmEasy has dependencies displayed on the bottom for the CrmSdk.CoreAssemblies less then version 9.0.0.

Since we're upgrading into Dynamics 365 V9+ we need to make sure our unit test framework is using the right assemblies. In this case FakeXrmEasy provides a separate NuGet package for Dynamics 365 V9+; we'd simply remove the FakeXrmEasy.365 NuGet package and then install the new one.

Of course after doing this and deploying your assemblies into Dynamics 365 you have to test like crazy. 

The more you know!