As I explained in the previous post, the purpose of the "Anamnesis" phase of a Dynamics CRM performance optimization engagement is to understand the essence of the performance complaints. Based on a detailed understanding we can follow with the right diagnosis of the problem. So what does it mean "understanding"? In order to understand, you must do following:
We need to talk to our primary customer contact person, but also to the end users from whom the complaints are coming. We need to see the behavior directly on the computers, where it happens. If the poor performance is observed only on remote locations we need to ask the customer to demonstrate it using whatever technology available – conference call, remote access to the computers etc. Further, it is essential to understand if the behavior is role-specific / user-specific and if yes, what the characteristics of the roles or users having performance issues are.
At the end of this "anamnesis" exercise, we will have a list of different findings typically falling in one of following 2 major categories:
In the following part I will give you an overview of typical performance issues from both categories which should be considered as an guidance for subsequent engagement phases:
In the following table I will present you the most typical user interface performance issues:
Overall poor performance
This is a very generic issue and must be further analyzed if it can fall into other – more specific category
All users?Selected user groups?
Entity form slow load time
This is definitely the number one in all hit-lists and the most frequently complained performance issue of all. The reason for this is, that loading of entity forms is something, the users do most of the time and the expectation for good performance is very high.
All users?All entity forms?Selected users groups?Selected forms?
Entity form slow save time
Slow saving time is less frequent due to some specific implementation reasons, but also due to lower performance expectations (Broadly accepted expectation is, that saving does "something" in the background and needs some time for that)
All users?All entity forms?Selected users groups?Selected entity forms?
Entity view slow retrieval / Advanced find slow retrieval
If this issue occurs we can observe following:
- A waiting time before the view rendering starts
- The view rendering runs slower than expected
All users?All entity views?Selected users groups?Selected entity views?
Slow rendering of reports
Typically rendering of reports should not be much slower than a couple of seconds. Everything above is recognized as an issue
All users?All reports?Selected users groups?Selected reports?
Slow rendering of dashboards
Dashboards are composite UI constructions, so a longer rendering time can be expected, but if some of the dashboard elements are rendering too slowly the whole user experience suffers.
All users?All dashboards?Selected users groups?Selected dashboards?
Outlook client starting slowly / freezing
In most of the Dynamics CRM implementations the Outlook Client is the preferred client-side solution thanks to the synchronization function and offline capability. It is very annoying if users observe significantly lower Outlook performance or even freezing issues after installing the Dynamics CRM client.
All users?Selected user groups?Dependency on Outlook version?
Slow SharePoint integration
Typically SharePoint folders integrated on Dynamics CRM forms should not render much slower than any other usual sub-grid.
All users?On all entity forms?Selected users groups?On selected entity forms?
In the following table I will present you the most typical backend performance issues:
Slow workflow execution
Dynamics CRM users typically expect, that the workflow triggered by a user interaction is executed latest "in a couple of minutes". Anything between "more" than a couple of minutes and hours/days may be a serious issue, especially when business processes depend on finished workflows.
All users?Selected user groups?All workflows?Selected workflows?
Slow incoming data integration
Almost every large Dynamics CRM implementation contains a large portion of integration with surrounding systems. Incoming integration is mostly implemented as:
In both cases users expect the data to be in Dynamics CRM "in time", when they need them.
All data?Selected data?
Slow outgoing data integration
The outgoing integration is mostly implemented as real-time, so the user's expectation is the same as in previous.
Slow server-side E-Mail integration
If server-side integration with a messaging system is implemented, users expect same behavior for Dynamics CRM E-Mail activities as for E-Mails themselves – very fast sending out or delivery.
All E-Mails?Sending only?Receiving only?
Slow initial data load
This is a very specific issue, which does not directly touch end users, but rather the implementation team and is a one-time issue. But never then less, it can be a major show-stopper, especially if a prescribed time slot is given to the implementation team to import huge amounts of initial data.
In the next part I will start the most interesting topics around diagnosing the reasons for poor performance, so stay tuned!
Robert Rybaric is an architect in the Microsoft EMEA Dynamics Center of Excellence