The many uses of Virtual Machines
My first experience using a VM was with a Virtual PC VHD that Microsoft offered to test IE. Over the years, I've worked with VMWare Player and Hyper-V virtual machines and I love the convenience they provide - so much so that whenever I start a major project, I prefer having a new VM. For those that have not experienced the joy of VMs, here is a list of its uses:
* Save time on environment build-outs - building a development environment from scratch can be a time-consuming affair. With a VM ready, you can instead focus on real work and never worry about any rogue software messing up your environment. With a backup of that VM in hand, you lose no time in getting up and running again.
* Testing new software without disturbing your host environment - whether its beta software or a version of a software that cannot parallely with what's already on the host OS, VMs help you play safe.
* Manage hardware crunches - when you don't have the luxury or budget to have physical machines, VMs are indispensable
* Archive software project environment - even after you've closed a project, you don't know if it may have to be revived in the future. With a VM containing the working software in the environment required for it, you can rest assured. I once worked on a project that utilized a free copy of a limited version of Crystal Reports that was given away with Visual Studio. Years later, when a feature request came up to modify some Crystal Reports code I found to my dismay that a newer version of Visual Studio no longer carried a free license to CR and the ownership of Crystal Reports software itself had changed hands.
* Easy to share - if you have to pass your work around when you're working with a team, it is easy to pass a VHD (virtual hard disk)