Code Audit
Your company is using Microsoft Dynamics NAV (NAV) or Microsoft Dynamics 365 Business Central (BC) for the accounting and business management of your company. Your solution is customized to fit your business.
The Economics of Quality
Microsoft has in the order of 100.000’s of customers running NAV and BC, and the consequences of a serious bug are huge. Similarly, the best ISVs have thousands of customers. But your customizations were typically only made for you.
You can trust that Microsoft is putting a lot of resources into testing their solution and that Microsoft sets high expectations for their ISV partners doing the same. For example, by asking them to make automated tests that cover most of their code.
The reason why your customizations do not have this level of quality, is simply because you
- didn’t ask for it,
- didn’t know about it,
- didn’t think it was needed,
- didn’t see the value in it,
- didn’t want to pay for it, or
- thought it was included.
Programming Guidelines and Best Practices
Since the very first version of Navision Financials 1.0, Navision provided programming guidelines for its partners and today Microsoft continues to develop these best practices and design patterns.
But unfortunately, these guidelines were often not followed by the developers. For different reasons.
Technological Debt
Customizations typically suffer from these consequences. We refer to this as technological debt.
- You miss out on the benefits from following the standards.
- The code is hard to understand, to maintain and upgrade.
- It is hard to implement quality afterwards. For example, by introducing automated tests afterwards.
- Lack of robustness often leads to run-time errors sooner or later.
- Different coding styles between programmers.
- Quite often bad design also leads to a bad user experience.
- In some cases, we also see issues with performance.
Why do I need to have my solution audited?
If you are a CFO or CIO, you should consider investing in an audit in the following cases:
- You don’t know what you have inherited from your predecessor.
- In general, if you have a doubt about the quality of your solution.
- Before accepting the delivery from your Microsoft partner.
- Testing that it works is not enough to guarantee the quality of the delivery.
- When changing Microsoft partner.
- Before upgrading from NAV to BC.
- Before asking for new functionality from your partner. Make sure that quality is a condition for accepting the delivery.
If you are a Microsoft partner
- When accepting a customer coming from another partner. You want to know the quality of the existing customizations.
- When working with external partners and want to know the quality of their deliveries.
What is the result of the audit
The audit documents the current state of your solution. We try to identify the
- Potential risks of runtime errors
- Performance issues
- Readability
- Robustness
- Critical functions where automated tests could be introduced
In the case of an upgrade from NAV to BC
- What should be changed or rewritten
- Test the upgradability of the code
Contact
Your solution and history is specific to you. So let's talk about it.
Finn Pedersen