Environment tiers, from development to deployment - what works best?
So I do development for in-house web apps, C#. We've always had a problem with developers tripping over each other since we typically don't set up more than a *shared* "development" environment and a "production" environment. I want to end that, 'course, but would like some feedback on how to do it. **What's the best way you've found to develop, integrate, test, and deploy your applications?** This is a Microsoft environment, but of course general advice is helpful.

I'm thinking...Windows Server 2008, Hyper-V'ed desktop machine to run local dev environments, then maybe a beefier server for virtualizing a staging tier (basically integration of developers' code together), a testing tier (for our end users to poke around on after some internally-tested code), and then the production tier. Has a four-tiered solution like this worked well? Is virtualizing that much a good idea?
Environment tiers, from development to deployment - what works best?
===

So I do development for in-house web apps, C#. We've always had a problem with developers tripping over each other since we typically don't set up more than a *shared* "development" environment and a "production" environment. I want to end that, 'course, but would like some feedback on how to do it. **What's the best way you've found to develop, integrate, test, and deploy your applications?** This is a Microsoft environment, but of course general advice is helpful.

I'm thinking...Windows Server 2008, Hyper-V'ed desktop machine to run local dev environments, then maybe a beefier server for virtualizing a staging tier (basically integration of developers' code together), a testing tier (for our end users to poke around on after some internally-tested code), and then the production tier. Has a four-tiered solution like this worked well? Is virtualizing that much a good idea?