Does your business software feel like a house you keep adding rooms to? How do you extend without it turning into an eyesore?
When you’ve installed basic unmodified NAV, you have an enormous number of features out of the box. Yet, you might still find the need to add functionality. How you do that can be detrimental.
To quote Brian Foote, a renowned software researcher: “If you think good architecture is expensive, try bad architecture”. Taking the wrong direction can force you to tear down what you built and start again.
So how do you take the right steps towards an ideal system?
Understand the base system perfectly
NAV comes out of the box with tremendous capabilities. There’s no better way to solve a business process than use the base system from Microsoft. The Dynamics NAV design team has taken great care in providing generic horizontal features. That means the functionality is meant to serve any industry.
Don't be mislead, the feature you are looking for may have a different name than you are used to. Make sure you have exhausted your search in the base application before looking elsewhere.
An example of this is what is commonly called “landed cost”. There is no landed cost by that name in NAV but the functionality is perfectly solved in a generic way using a concept called “item charges”. In fact, item charges do much more than just landed cost.
Working with ISVs
If the standard NAV does not suffice then you should look to established ISVs (independent software vendor). The ISV ecosphere is vast. You need to find partners that have the same basic concept as Dynamics NAV and provide quality support. Those ISVs are usually not afraid to share their code with you and allow you to extend their work. The best of them will also adhere to the architecture of NAV and try to solve business processes horizontally.
Finally, if both base product and ISVs cannot solve the business process you have, your only other possibility is to customize your system. Even though this is the last resort, it is often required. Customizations can be done well and adhere to the same concepts as base NAV and quality ISVs.
In the latest versions of NAV, Microsoft has introduced the concept of events which allows developers to customize without messing with the base product. This allows for easier upgrades and general maintainability of the product.
Following the basic principles of starting with the base product, then looking to ISV’s and finally customizing, is the best practice to get the most out of your business software. It’ll help you avoid ending up with a shantytown-type of software setup which eventually needs to be completely scrapped.