Baskets Of Bugs

My life of late seems to be one bug after another. It all starts with my product: Live Mesh for Mac. I haveĀ  set some setting on my Mactop that prevents our Mac client from running on it. No one else has reported this issue, and I cannot reproduce it on any other machine, so it is unlikely to ever be fixed.

My Mactop has thus become my admin machine, which means it is mostly a Windows machine. The VM software I use recently released a new version, which I have ignored as what I have is working well enough.

That all changed, however, when OnlineSoftwareCo sent me an email asking me whether I wanted to renew my maintenance agreement for *the next version* of the VM software. Putting two and two together, I said "Hey! That's right! I have a maintenance agreement for my VM software! You mean I could have been getting free upgrades all these years? Let's upgrade to the new version then!"

And I shot off an email to VMCo saying "Hey, I have a maintenance agreement, give me a license for your new version please!", thinking that since I am registered with them, they must have all the information they need to verify that I do indeed have a paid-up maintenance agreement.

Turns out, though, they *don't* have all the information they need. I did not have any of the information they requested, so I asked OnlineSoftwareCo to send it to me. I ordered the original software and the maintenance agreement from them, so they must have that information, right?

Nope. Thus ensued a long email conversation with VMCo in parallel with a separate long email conversation with OnlineSoftwareCo. Eventually VMCo was able to confirm I did indeed have a current maintenance agreement with them and sent me an install key for the new version of their software.

With my new license key in hand, I downloaded the new version of my VM software and started the upgrade process. I had an hour until my next meeting - that would surely be enough time, right?

The first part of the automatic upgrade process went off without a hitch. The second part figured out I needed to do a bit of manual intervention, told me what to do, and then continued once I had followed its instructions. The third part worked right away. The fourth part, however, chugged along for over half an hour. The upgrade process had warned me it might take a long time, so I went to my meeting.

Four hours later I came back and the fourth part was still chugging along, with no mention of when it might be done. While "a long time" is an ambiguous length of time, I decided four-and-a-half hours was plenty long enough and started poking around the upgrade UI. I found a button for "advanced upgrade mode" and clicked it, wondering what would happen. The upgrade UI replaced itself with my VM, which the upgrade process had evidently been running in the background. Now I could see that my VM was waiting - for the entire four-and-a-half hours, I imagine - for me to tell Windows that I did indeed want the integration tools to install their unsigned drivers. After answering several more messages of the same ilk, my upgraded VM was ready to go. Hooray!

Except I did not have network access. And none of the integration tools seemed to be installed, even though the "are the integration tools installed?" widget at the bottom of the VM's window indicated they were.

No stranger to driver install problems, I uninstalled and reinstalled the integration tools. Still nothing, although I did discover that the network driver was part of the integration tools. I worked on it for a bit longer, then gave up and contacted VMCo's tech support.

And thus began ten days of "uninstall the integration tools, reboot the VM, and reinstall the integration tools", presented in so many different ways I lost count. Finally - right when I was going to give up and reinstall Windows - tech support told me I was being escalated to Tier Two Technical Support. Hooray!

A week went by with no word from VMCo. At first I gave them the benefit of my doubt - they were researching the problem, scouring the code to determine what might have gone wrong, working hard to get my VM working again. Then I got angry. Then I gave up and decided to dual boot my Mac into Windows. And I decided that as long as I was going to be reinstalling Windows, I might as well go whole hog and install the Win7 Beta.

The "Dual Boot Win7 On Your Mac" instructions I found seemed straightforward and indicated that the first step - repartitioning my Mac's hard drive to make room for Win7 - would take only a minute or two. It took me several hours, going through multiple takes of "start the partitioning, have something go wrong, fix the problem, and partition again". At one point the disk partition utility claimed my hard drive could not be repartitioned because it had "missing threads". The disk repair program told me - after chugging along for thirty minutes - that it could not fix this problem unless I booted from CD. When I booted from CD, however, the disk repair program told me everything was fine. And, indeed, the next time I repartitioned the missing threads problem seemed to be resolved.

Once I got past the OS X steps and was on to installing Win7, everything went smoothly. Win7's installer even automatically connected to my wireless network and downloaded a bunch of updates! As I set up my computer, however, I started finding bugs. Windows Explorer crashed an hour in to copying my 70GB music library. On my next attempt, Windows Explorer discovered - again, an hour in - that the resulting file paths would exceed the maximum allowable length. IE8 asked me whether I wanted to turn on Suggested Sites even though I had already turned it on via IE's options. And many more.

The variety of bugs I ran into fascinates me, as does their varied forms. Process bugs prevented me from easily getting the upgraded VM software in the first place. Software bugs made upgrading my VM fraught with difficulties. Process and software bugs in the technical support process led to my giving up on virtualization. Software bugs caused the disk repair program to give me different answers depending whether it was run from disk or CD. Requirements bugs caused the file copy process to check the validity of file paths as it copied each file rather than at the start of the copy process. Requirements and software bugs caused IE8 to ask whether I wanted to set an option I had already set. And many more.

I bet VMCo has never tested their "how do we determine whether this person really has a maintenance agreement" process. I believe they did test the VM upgrade process and simply missed - or decided to not test (or to not fix) - the scenario which my VM encountered. I cannot believe they have tested their technical support process, given my experience with that team. Apple I believe does test their disk partitioning utilities, and simply missed - or decided not to test (or to not fix) - the scenarios I encountered. The Win7 team I know tests their installation and other scenarios, and simply missed - or decided to not test (or to not fix) - the scenarios I encountered. Did they make the right decisions? They likely believe so; I do not.

I know that my customers are encountering bugs in scenarios my team has missed - or decided to not test (or to not fix). Did we make the right decisions? We believe so; our customers likely do not.

Each of you, I am sure, have customers who are encountering bugs in scenarios your team missed - or decided to not test (or to not fix). Did you make the right decisions? How do you know? Let me know: michael dot j dot hunter at microsoft dot com.