The Upgradability of Customized Dynamics NAV
Webster’s Dictionary defines upgradability as “to improve or replace especially software or a device for increased usefulness.” This concept of upgradability is a hot topic these days in the Microsoft Dynamics NAV world and with good reason. With Azure and Dynamics 2018, there has never been a better time to upgrade Dynamics NAV / Navision.
However, there are some misunderstandings around code merging and upgradability. There is a perception in the industry that the effort to merge NAV code customizations is the single reason for the “high cost” of upgrades. This is false. NAV customizations can be brought forward in an upgrade without breaking the bank.
There is a lot of discussion about “costly” code merging. My theory is that many do not understand what code merging actually is. Code merging happens automatically using tools. Even basic text compare tools come with a merge feature. We use tools that merge with a click of a button. The reality is that merging is a small effort in comparison to other tasks within a Dynamics NAV upgrade project. And yes, there are several tasks to prepare for a merge, such as gathering objects and preparing a merge plan, especially when a large number of add-ons are involved. However, the actual merging of NAV customizations does not necessarily have to add any cost to these tasks.
Within the merge phase, we typically find code that does not merge automatically. Most people might think it is necessary to manually merge conflict objects. That is actually not true. When we have to resolve a conflict, the act of fixing it is called code refactoring.
Code refactoring is the process of restructuring existing computer code—changing the factoring—without changing its external behavior. Refactoring improves nonfunctional attributes of the software. Conflicts are usually due to bad code. And, by “bad code,” I mean code that is non-upgradeable. Refactoring can add cost to an upgrade, but if refactoring is done correctly using best practices and design patterns, upgradability is maximized and the ROI is realized the next time a merge is required.
For more information on Dynamics NAV upgrades, and how we can help you (or your customers) bring your Dynamics NAV customizations with them in an upgrade, please contact one of our NAV Upgrade Specialists.