Is it wrong to customize Microsoft Dynamics 365 CE?

Dynamics 365 CE customization is always a topic of discussion for all the projects and the following questions are asked by most of the stakeholders

“Should we customize Dynamics 365 CE? If yes, how much?

In this blog, I will share my experience with customizing Dynamics 365 CE.

Lets start with definition – What is customization in Dynamics 365 CE?

Microsoft Dynamics 365 CE offers out of the box customizing capabilities which includes

  1. Creating and configuring Entity and Fields (Tables and Columns)
  2. Configure Views and Dashboard
  3. Validation check through business rules and guided business process flow etc

Along with this, the platform also offers extensibility of application through custom code components such as

  1. Webresources – JavaScript, html etc
  2. Plugin
  3. Custom controls – PCF

Above capabilities are the recommended customization by Microsoft which allows us to extend the application functionality based on the business requirements.

Should we go with above customization always?

I would say No, even though the customizations are as per the Microsoft recommendation it is not a good idea to go for it always as it will increase the maintenance efforts and cost to manage the custom code in future.

To understand in a simple way, I came up with a decision tree which can help every project to make a decision – whether we should go for customization?

This decision tree doesn’t cover all the aspects of customization request such as ribbon buttons, custom control requirement etc but can be the guidance for most the request.

As I have highlighted earlier, if the business requirement is critical we should definitely go for customization but this should be done in defined boundary by Microsoft. Unsupported customization is not at all acceptable as it will not guarantee that those changes would work in future (with upcoming Dynamics 365 product or browser upgrades). Refer this article with the list of unsupported customization from Microsoft

Also, it is always recommended to validate the customization via “Solution Checker” to make sure we are not doing any unsupported customization.

Another question which is frequently asked while doing customization

Will Customization impact application performance?

There is no direct answer to this as it depends on the “How have we implemented these customizations?” There is no adverse impact on application performance if we follow the best practices while implementing the custom code. Always refer the best practices during implementation, some of them are as below –

  1. https://docs.microsoft.com/en-us/powerapps/maker/model-driven-apps/optimize-form-performance.
  2. https://docs.microsoft.com/en-us/dynamics365/customerengagement/on-premises/developer/best-practices-sdk

In summary, customizing the Dynamics 365 CE is not a good idea unless there is a critical business requirement to be fulfilled and always follow the Microsoft recommendations to make sure your application is future proof and there is no adverse impact of those customizations.