Most CIOs and technical managers think of virtual machine (VM) software like VMware as a server consolidation tool. While it’s great for server consolidation, I’ve been advising many clients to start putting VMware on every software engineer’s and quality assurance engineer’s workstation as well. Having used it for many years, I find that I can’t live witout the ability to run multiple virtual machines within my single workstation. My Windows XP workstation has 2GB of RAM, dual monitors, about 400GB of disk space, and dual CPUs so that dealing with VMs is a piece of cake. I have differerent virtual machines for the following purposes:
I keep a VM per customer so that if a customer requires a special desktop or VPN connection I can keep the VPN connection going while continuing to do my normal work on other networks. Each customer provides me special VPN software and that VPN software often restricts network connectivity to my default network so using a VM for each client allows me to isolate their work.
I keep a separate VM for trying out new software. This way, if something breaks, I simply “rollback” the VM to the previous state by using VMware’s snapshot mechanism. It’s much safer than just installing it on my physical machine and easier to undo anything that breaks.
I keep a VM for testing software that I write. This keeps a “pristine” machine so that if anything breaks, it’s unlikely to be some rogue DLL. I keep a fresh machine with no other software other than what I am testing for QA purposes and it allows me to test in a much more controlled manner.
Even though I spend most of my time on my Windows XP box, some of my clients expect me to use Linux so I’ve installed a virtual machine for RedHat, Mandrake, and Debian. Works like a charm!