Rethinking the VM creation experience

About two years ago, we conducted a survey of VMware Workstation users. While looking at the results we discovered that some of the common complaints included being unable to increase the screen resolution of VMs and having no idea how to “ungrab” the mouse after clicking inside the VM’s console. This surprised us because both those issues are solved trivially by the installation of VMware Tools, which includes device drivers for the virtual hardware we present to the guest OS. After some initial head-scratching, we realized that users hadn’t been installing our Tools software! Guessing that users simply weren’t aware that this was necessary for a good experience, we attempted to gently educate them about the benefits of installing VMware Tools and providing more convenient access to instructions for doing so. Although that was a decent stopgap measure for Workstation 6.0, we knew that we could do better.

Meanwhile, in usability studies and during contextual inquiries we kept noticing that being asked to select the guest OS while creating new VMs frequently gave users the impression that the VM would already have the selected OS installed on it at the end of the process. Users kept powering on their new VMs and feeling like something had gone wrong because there was no guest installed on them. Again, we made a small change to the New VM wizard that informed them of the need to install a guest OS on their VM once it had been created. Not long after this, however, VMware Fusion shipped with the ability to install certain new versions of Windows onto a VM automatically. The feature was a big hit and we realized that we could incorporate it into the next release of Workstation as part of our effort to streamline the process of creating new VMs.


First we went through the existing New VM wizard, looking for anything that could be easily changed after creation and didn’t have a major impact on the installation of the guest OS. That resulted in us coalescing the welcome page with the subsequent page that allowed users to choose between the typical and custom paths through the wizard, thereby eliminating one step from the process. Many posters on the VMTN forums had informed us that they usually tend to use the same path every time so we made the wizard remember whether they had last chosen typical or custom and default to that. We also managed to eliminate another step by eliminating the network type page from the typical path and defaulting to NAT.


So as not to annoy our power-users, we were careful not to eliminate any functionality from the custom path while simplifying the typical one. But we knew that many users were resorting to the custom path just to alter one property of the new VM, even though it made them wade through a long series of pages. After much discussion on the best way to give users the flexibility of the custom path without the annoyance of facing so many unwanted choices, I realized that the answer was already there in another part of the UI: we could let them edit the VM before it was actually created on disk, the same way that they could edit a VM that had already been created!


To that end, we added a new page at the end of the wizard. This page displays a brief summary of the embryonic VM’s properties and sports a shiny new button that pops up a simplified version of the existing VM Settings dialog so users can change arbitrary properties (e.g. memory, network type, external storage devices, serial/parallel ports, etc.) before the VM even gets written to disk. We’re hoping you are as excited as us about taking full advantage of this feature to avoid having to go through the custom path unnecessarily.


Having streamlined the existing wizard, we took the library that the Fusion team had been using to automate Windows installations and added it to Workstation along with a new page in the wizard where we could have users provide their license key and user account information. Armed with that information, we can now perform a completely hands-free installation of Windows on the new VM. Even better, we automatically install VMware Tools immediately after that so users don’t need to worry about it. We call this feature Easy Install.


While we were doing all this, one of our amazing interns managed to implement a library that can scan an installation CD/DVD or ISO image and figure out which guest it will install! Excited by the prospect of eliminating yet another step from the process, we enhanced the page where users specify the location of their installation disc (or image) to also guess the guest so users won’t need to specify it manually. Not all guests are recognized yet but we’re working hard to add more to the list.

Anyway, that’s enough out of me. We can’t wait to hear what you think of the improved New VM wizard 🙂