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?