Recently I sent an email to one of the development teams I’m working with. Because of legacy organizational issues, they were slightly hesitant to adopt Virtual PC as a development tool. What follows are some of the examples I used to express how effective Virtual PC can be. These scenarios apply to any virtual machine product, including VMware.
—
1. For whatever reason, your development box becomes corrupted.
This could happen because of a hard drive crash of some kind, but it’s more likely to happen because of the pounding your box will endure while you’re developing distributed applications. Distributed applications require a great deal of server and supporting software. Further, because you’re doing development, all of this software will endure months of exceptions and process terminations.
There’s no better way to beat up a box than to develop distributed applications on it.
Hardware box solution: Spend days finding the CDs you need to reinstall all of the necessary software, including the day-to-day software and data associated with your email and Office applications.
Virtual “box” solution: Spend twenty minutes creating a fresh development box based on the one we’ve established as a team, another twenty minutes customizing it to your preferences, and you’re back in action.
2. You’re working on more than one project, and the projects have different software requirements. For example, one is a VB.NET application using BizTalk and SQL Server, and the other is a C#.NET application using Windows Workflow Foundation and Oracle.
Hardware box solution: Install all of that software on one machine and pray that 1) the different software installations don’t conflict and create problems and 2) the combination of heavy duty server software doesn’t grind your machine to a halt.
Virtual “box” solution: Create a virtual box for each project without any worries for conflicting software requirements and associated problems. Open and close the virtual boxes as needed.
3. One of the departments you’re developing software for is still using Windows 2000 and an older version of Internet Explorer. They’re reporting some strange bugs.
Hardware box solution: Ask for budget for another computer to use for testing, or use a partition on your existing machine (if it’s available).
Virtual “box” solution: Create a virtual box with Windows 2000 and the appropriate version of Internet Explorer. Run your tests as needed, and deploy the virtual box to the entire team if needed.
4. You’re architecting a distributed application and you want to make sure that you can host the middle tier on one box and the data tier on another box. You expect to test proper interactions between the two boxes throughout the development cycle.
Hardware box solution: Ask for budget for another computer.
Virtual “box” solution: Run two virtual boxes at the same time—they’ll both appear to each other as separate boxes. You’ll need more memory for this solution, but more memory is cheaper (and far easier to manage!) than a second computer.