Search code examples
tfsdynamics-crmdynamics-crm-2016

How to develope a Microsoft Dynamics solution with multiple teams?


Let me start with telling that I'm not a Microsoft Dynamics CRM specialist. I only have experience with developing .NET solutions without CRM or SharePoint and some experience how to use continues deployment of TFS to release custom applications. But for a current assignment I start with developing for Microsoft Dynamics CRM and I'm not alone.

Here we work with 2 scrum teams. Both have their own Microsoft Dynamics CRM 2016 environment and we use TFS to save our source code. Only source code, no configuration of CRM. When we release software, we need to manually merge the CRM configurations into a third environment (integration environment). This takes a lot of time and everything needs to be tested again.

I've searched on the internet and find a lot of content about customizing CRM but not how to work with multiple teams and get an automatic release pipeline for the changes both in code as in CRM.

Does anyone knows what the best practices is to develop a CRM solution with multiple teams and how to make a continues release pipeline to get the C# code and the CRM configuration automatically to the test, acceptation and production environments?


Solution

  • What I have done was to use the solution packager. The scrum teams would develop against their CRM instances and in a specific solutions.

    They can then (either automatically using scripts and the CRM API or manually) export the solution and extract it to a version control friendly format.

    This can then be committed to the version control system and then (using an automated build) get repackaged and versioned and ultimately deployed to a integration CRM instance as a managed package.

    The use of managed vs un-managed packages is a bit more lengthy topic though