we are struggling a little bit with developing SharePoint solutions with more than one developer at the same time. What is best practice?

Our situation: We have 2 SharePoint 2010 standard servers: 1 production SharePoint server, 1 test / development SharePoint server

Currently we are connecting via RDP to the development system. But that is not a good solution, because only one solution can be deployed for debugging to the SharePoint server at the same time. Other developers have to "wait" until the debugging developer has finished debugging.

How do others handle this situation? Does every developer need a virtual machine for developing? How do you handle the licences, when installing virtual machines?

Sorry, if the question is not specific enough, but I don't know how to ask instead.

closed as primarily opinion-based by Robert Lindgren Mar 21 '16 at 12:40

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.


Everyone's going to be a bit different, and as such you'll probably get a bunch of different opinions, so I don't really think there's a 'best practice' when it comes to this.

Personally I run VM's on my laptop to do the majority of my SharePoint dev. With regards to licensing, my work provides me with an MSDN subscription, so I can install the necessary components, Windows Server, SQL server and SharePoint server with no licensing issues.

I generally create a base VM with most of the stuff I need installed, then use linked clones in order to keep disk space down, and to speed up the process of creating a new SharePoint instance whenever I need it (I usually create a new SharePoint for a new client or project).

Keeping RAM usage to a minimum is very important when you are running on a laptop with only 16GB of memory. I create a domain controller that is set to use around 800MB of memory,and then I can use between 8-12GB of memory for a SharePoint Server that has both SQL and SharePoint installed.

I generally only set up SharePoint with only the bare essentials needed for the particular development I'm doing at the time, so if I don't need search, user profiles, managed metadata etc then I don't set those service applications up. Search especially chews up resources, so if you can get away with not setting up, don't. This keeps the VMs running nicely, and I rarely experience performance issues.

You're absolutely right about trying to develop and debug with multiple developers RDP accessing a single server though, I can imagine that would become quite painful quickly!


This is what I recommend:

  • Each developer has their own VM with SharePoint, Visual Studio, and other tools (SharePoint Designer, SharePoint Manager, Fiddler, etc). This addresses the issue with having to wait for another member of your team to finish debugging.

  • The development team has an integration environment. This is where developers test that their work integrates correctly with the work of their teammates.

  • For more complex projects the development team may have a third environment where you can periodically do regression testing for Solutions and Features. You start with a base SharePoint environment and then you use script to install all Solutions, activate Features, and perform any Feature versioning. The base environment can be restored from a backup or created using script.

  • Then you have the standard Q/A, Staging, and Production environments

The closer you get to Production, the more the environment should mirror Production.

IMPORTANT NOTE: Don't forget to test as users with different permissions at all levels - including local developer VMs and developer integration.

In terms of licencing - yes, you need to make sure all the software being used is licensed. From the developer side that generally means ensuring each of your developers has a MSDN license.

Not the answer you're looking for? Browse other questions tagged or ask your own question.