The following is a guest post I wrote for the Parallels Blog.
I’m a web developer working at a huge company, and as far as I know, I’m the only one using a Mac. We develop web based software for several clients and naturally maintain a myriad of servers with various staging and development environments. This means keeping local versions of Windows based server software, as well as client code and databases—a difficult task for our company issued Dell laptops—trusty and quick little things, but due to our long upgrade cycles, simply not up to par. I switched over to the Mac world about five years ago, and I’ve been using Parallels for testing websites in Windows for almost that long. Then I had an idea. What if I used my MacBook Pro as my main machine and used Parallels to load the development environments as I needed them? I’m really glad I tried it, because it has given me the best of both worlds.
I started by creating a base installation of our company’s standard image of Windows XP. Included in base install is IIS, SQL Server, ColdFusion Server, PHP, VPN clients and a set of our supported browsers. Once I have a working streamlined version of Windows as a virtual machine, I archive a copy of it and set up our development environments for some of our clients. We have different versions of server software for different clients, so I usually have three or four different Parallels VMs with various configurations.
Using Parallels in this way has almost too many benefits to mention. By setting up shared folders between my Mac and my virtual Windows environment, I can use my familiar IDEs to edit my code, and run Photoshop on my Mac—saving files directly to folders in my Windows environment. I can also use the native Mac mail and calendar apps since they integrate with MS Exchange server so nicely, eliminating my need for MS Office.
Another huge benefit is the ability to quickly setup a sandboxed environment for any given client, simply by adding their code and databases to one of my archived VMs. This entire environment can be set up in minutes and used for myself, or given to another developer to work on, ending dreaded over-the-phone environment configuration. The suspending/resuming speed in Parallels 6 is extremely quick, allowing me to shutdown and resume VMs depending on the client. This quick switch between machines lets me allocate the maximum amount of memory and processing power from my Mac, since I don’t need to run them concurrently.
There’s also the look I get in coffee-shops. I use Spaces in Snow Leopard to switch between my Mac environment and my Windows environment—both of which I keep in full screen mode. On more than a few occasions, people do a double take when they see my Mac laptop instantly swap over to Windows and back. Sometimes I switch back and forth for no reason at all. I’m a show-off.
Finally, and by far my favourite benefit of Parallels, is that I get to use my Mac every day.