Search code examples
dynamics-crm-2011dynamics-crmdynamics-crm-2013dynamics-crm-2016

How to plan releases for MS CRM 2016 project


We got a couple of enhancements as part of the project on a MS CRM 2016 on prem implementation. The client wants UAT and PRod release after every sprint.

Plus, every sprint is of 3 weeks out of which 2 weeks is (coding + SIT testing) and 1 week of UAT, for eg. Sprint 1 will commence in week 1 and UAT will be in Week 3, But Sprint 2 coding will commence in week 3 (when business is testing sprint 1 in UAT)

Hence i am facing a challenge of how to plan these releases. whether i will need 2 DEV environments or how to do it in 1 DEV environment only. Kindly help


Solution

  • Normally, we plan releases based on deadlines. And based on that we plan both the required CRM environments, and also, very important, TFS branches.

    A typical workflow might go through the following stages: DEV -> TEST (UAT) -> Staging -> Production.

    If you're gonna have concurrent releases where you release Sprint 1, and then Sprint 2, there will be an interim period where Sprint 1 will be in live while still developing Sprint 2. You really need a Staging environment which should mimic production because you might need to fix issues for Sprint 1, which is live, while still developing features for Sprint 2, in other environments.

    Therefore you normally want to keep those in 2 different environments and TFS branches.

    So, for example, while developing Sprint 1 you might be in the following situation:

    Sprint 1

    • DEV (where you actually develop new features)
    • TEST (where you deploy features which are ready for testing)
    • Staging (nothing there yet)
    • Production (nothing there yet)

    While working on Sprint 2 you might have :

    • DEV (where you develop new Sprint 2 features)
    • TEST (where you test Sprint 2 features ready for testing)
    • Staging (which you leave with Sprint 1 only for potential bug fixes)
    • Production (still with Sprint 1 stuff)

    After Sprint 2 release all environments will match, and then start again.

    That was just one example. Depending on the number of dev teams and releases can get even more complicated.