Where CRM excels compared to SharePoint…

In my transition from SharePoint to Dynamics CRM, I was looking at the process of developing solutions on Dynamics CRM. It turned out that the process is more or less the same, but that it is much easier on CRM to build a good solution.
Like developing in SharePoint, multiple disciplines are required to develop a solution in CRM. At the basis is it’s datamodel. Unlike SharePoint the datamodel in CRM is a physical datamodel (meaning you have referential integrity, indexes etc).

In order to get a good datamodel, you need someone in a consultant/analysis role to collect the (non)functional requirements. The CRM consultant can build the physical datamodel including all relationships. On top of that the consultant is able to build the basic application (create the forms, navigation and define the business rules).

In SharePoint a functional consultant is able to do this as well to a certain degree, when it comes to making the solution deployable over different environments (DTAP) a developer is required hammering out the previously clicked application into a solution package.
Once the basic application is built, security must be applied. This includes ownership, access rights (on entities / fields) and auditing. All of which is offered out-of-the-box.

In my opinion CRM’s way of authorization is far superior compared to SharePoint. In CRM there is security on entities, records and fields and ownership can be transferred easily, while in SharePoint there is security on entities and records which is hard to manage.

From this point on a developer is required in the process of developing solutions on Dynamics CRM, as the out of the box functionality stops more-or-less from here. Connectivity, advanced reporting (e.g. SQL Server Reporting Services) and custom coding require more technical skills.

In the figure below the complexity of developing solutions is shown for both Dynamics CRM and Microsoft SharePoint. The technical complexity increases when go you deeper in the model. The dotted lines (yellow and red) indicate the point in the development process where a developer is required.

The yellow line is the indicator for CRM, the red line is the indicator for SharePoint. The reduction in complexity with a better way of deployment and management makes why CRM excels over SharePoint when building business applications.