Developer 101: CRM and Continuous integration – I need some advice

At the moment I’m involved in a big project. In this project we are using the SCRUM methodology in which we are working in short sprints. At the end of each sprint we have to package our solution and deploy it in the testing environment. Once tested, the solution is deployed in the acceptance testing environment and finally the solution will be deployed to the production environment.

In a nutshell our development process looks like the figure below.


The total number of sprints (predicted) is twelve, which makes the number of deployments about 40–48.  A tedious job as it involves a lot of steps;

  • assemble the solution
  • export the solution
  • import the solution
  • configure the solution
  • write the installation documentation

All steps involve human interaction, the steps are not complex but you need to be focused to avoid mistakes. Furthermore the steps are time consuming.

I really would love to have a set of tools that would allow me to automate the process of exporting/importing and configuration.  I did some research and found out that the object model, allows me to export and import solutions in code (See MSDN Sample: Work with solutions)

A thought that popped up in my mind is to write a basic tool that will export a solution from an enviroment and imports it into the next environment. Schematically it would look as follows:


In the tool I select the environment I want to use, then I choose either Export or Import. When I choose Export, the solution is exported and written to disk. The process stops. When I choose Import, the exported solution zip file is imported in the environment I selected. Once the import is completed the process stops.

I was wondering, is there already a tool out there like that helps me with continuous integration in CRM? How do you manage this process? Are you doing it by hand? Do you use tools? Or do you recommend me to write a tool like this and make it publically available? ;)

I really would love to hear from you…

update 22:06 – I received a nice tweet from @RajYRaman : he pointed me to an awesome codeplex project: