Virtualization is everywhere. We're using it for instancing our development, test, and production server environments. A couple years back, I read a blog post by a development manager who virtualized his developer's PCs. The idea made a lot of sense, so I went to our CIO and pitched the case. We've been running like this for the past two years and it has been working great.
Here are some of the benefits:
- Fault Tolerance. Unlike desktops, a virtualized cluster is built on SAN technology and multiple physical hosts. A disk or server failure won't affect your developer's productivity or uncommitted code.
- Hardware Flexibility. Since it's a virtual machine, it is easy to increase the cores or the memory based on the needs of a given application.
- Instance Flexibility. Developers are no longer limited to one machine or one operating system.
- Eases Upgrades. In our recent migration to VS 2010, we stood up fresh VMs to test out & migrate to the upgraded version.
- Mirror Production. Your production environment isn't running Windows 7. Allowing developers to code & test on a the same server version you're running in production removes on more variable.
- Enhanced Tools. Virtualized infrastructure brings additional tools like snapshots, clones, etc.
Give it a shot! I think you'll like it.