I am currently preparing a new small virtual environment for development and testing with Windows Server + SQL Server + AD + Sharepoint + Exchange + IIS(ASP.NET) + Biztalk + ?, for a small (up to 5) dev team.

What are pros and cons on different approaches, eg. splitting up over different machines or packing everything up per machine.

I your experience what are the best practices I should follow in terms of architecture and various system/servers placement. What to share and what to split per person.

I would like to achieve some flexibility for the dev and testing process (so teammebers would not be steeping on each other's toes) and limit administrative effort needed to propagate settings, integrate work items and revert changes when something breaks up.

It's not supposed to be an everyday development working environment, more a tier 2 developer testing environment, and not yet an integration or QA testing environment with formal change process.

IMO the two borderline solutions are:

  1. creating one all-inclusive machine for each dev team member giving them freedom to manage
  2. creating shared environment managed by the one with somehow formalized change request process

What golden mean would you recommend, and why?

closed as primarily opinion-based by HopelessN00b Jan 21 '15 at 9:03

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.

locked by HopelessN00b Jan 21 '15 at 9:03

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

Read more about locked posts here.


It really depends how the developers will be using this, and how often they are likely to break things. If each of your developers need to deploy their code to eh test environment every day, and are likely to overwrite other developers test setups then you would prob want to consider giving each developer their own test environment. The same goes if a fault with one developers code is likely to affect all the other developers doing there work, is it likely to lock up the whole server etc. If the testers are going to want things in their environment like Exchange and AD setup to their own custom requirements, then again they probably need their own test box.

That said, if each developer is running their own site in IIS, that runs in it's own application pool, and only needs shared access to resource like Exchange and AD, then maybe a single shared environmental. You can partition up AD into OU's so that things like user account creation and deletion do not affect other users etc.

  1. Makes no sense to ahve one for each member, as usage will vary widely. Note and check Visual Studio 2010 (coming REALLY soon) which has a lab management module and best practices.

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