I really cannot emphasize this enough, but this is your chance to fix all of your code and architecture issues.
You are taking the time to, in most cases, upgrade your hardware platforms, move the databases around, etc., so why would you not spend time fixing code that has existed for years.
The chances are that the business that existed when the code was originally written, is not the business that exists today. Maybe you need to take a long and hard look at how your Dynamics CRM system is working and ask yourself, “Does the current design of Dynamics CRM meeting our needs?”
I have had several customers who asked that question and came up with the answer of, “No.”
Their decision was to start with a clean slate, design a system that met their current business needs, then use a tool like Scribe or the Kingswaysoft SSIS Connector to move the data from the old CRM system to the new.
Every system, no matter how well-designed, suffers from “feature creep” over time. In the case of a Dynamics CRM system, you will find entities and fields added for specific purposes at the time, but which have little or no value in the current business environment. By starting from scratch, the organization only has to move the relevant data over to the new system.
Just a few things to keep in mind as you move forward with your 2013 or 2015 upgrade.