I am typing on a new laptop. This laptop came with Windows Vista Home Premium, but I was enticed to upgrade to Windows Vista Ultimate. I bought the Vista Ultimate license online from Microsoft. I followed all of the instructions, upgraded all my drivers, trimmed my nose hair, and ran all the tests and evaluation programs like a good OCD programmer should. I gritted my teeth, crossed my fingers, and started the upgrade.
The upgrade failed. It ran for nearly two hours, showing great progress, and then displayed a dialog box that said, “windows could not configure one or more system components” with a lone OK button. I pondered this for a time, meditating on “Ok”. It wasn’t Ok. No error codes, no help button, no web link, just Ok. So I clicked Ok, and I was restored back to where I started just like the Shute’s and Ladders game.
I searched the Internet for someone who had solved this problem. I checked for error messages in the event viewer. I worked over more drivers, more windows components, and everything else I could think of. Then I tried it again. Two hours later it was Ok and back to where I started from. At this point I began to imagine the trial of the person responsible for that dialog box. I was feeling a little vindictive.
No one is surprised to learn that Microsoft plans to make a lot of money selling Vista. They have a new money making strategy. The strategy is to sell the Operating System once to nearly everyone in the world, then sell it to nearly everyone again a second time. What is more, the price is much higher when you buy it the second time. How are they going to do this, you might ask? Well, first they put in much more license validation so Microsoft gets money from every copy. That gets everyone to buy it the first time rather than using some pirated copy. Then they offer enticing features to get people to upgrade to an improved edition of the software. The upgrade is not offered at an OEM discount price, but you get to pay Microsoft directly the full amount. Their strategy worked on me. Maybe it is time to buy Microsoft stock again. There is only one problem: the upgrade doesn’t work.
Somewhere there sits a programmer responsible for this. This programmer was given the responsibility to validate some windows components as part of the upgrade process. I imagine the code looks something like this: 1) get a list of all the components, 2) check them one by one to confirm they will work with the new OS, 3) display an error message if one doesn’t work. That is about it; it shouldn’t be very complicated. I have only one complaint. If your program knows what component is going to cause a problem, why don’t you let me in on that fact? I might be able to do something to fix the problem!
Widgets are one of the cool features of Vista. They look like oversized icons on your desktop and they display things like speedometers or maps or stock tickers scrolling by. At this point I am thinking someone should write a widget that displays the location of this programmer on a Google map with a little orange balloon following them as they look for a new job.
I called Microsoft support to resolve my Vista upgrade problem. They seemed very familiar with what I was trying to describe. In fact, I asked my friendly Indian support person if they received many calls about this issue. He said, ‘Yes, no problems, it will be ok. Everyone here is talking on the phone solving the same issue.’
I am wondering if this upgrade problem will become one of the great failures in the history of programming. There are several reasons why I think it deserves this distinction. The first is the number of people impacted by this bug. The second is that it really makes Microsoft look bad, with their new money making efforts and all. The third reason is that the problem was made so much worse because some programmer didn’t add just a little information to the error message. It is the third issue I find full of irony.
Error codes have been added by programmers to their error messages since World War II. COBOL programmers used to be famous for their ability to pour through memory dump listings produced when an error occurred. They could find a single problem in pages of green bar hexadecimal listings in seconds as if they were an idiot savant. Error messages are one of the few programmer traditions. Unfortunately, as we all can experience now with a windows upgrade, this tradition isn’t passing on to the next generation of programmers.
Modern programmers have not developed this skill because they don’t have to. We use debuggers, which are a great improvement except for one thing. Debuggers can only be used on a development environment. A debugger can help you find problems when the code is still being developed, but once it is out there in the real world and something goes wrong the developer cannot just show up in the middle of dinner like the cell phone network people and ask to borrow someone’s computer for a few days.
You may be wondering how to make the upgrade work. Here is what worked for me. From the Control Panel, Open the Programs section to Uninstall or Change a program. Then click on Turn Windows features on or off, which is text listed on the left hand side. In the dialog that opens, expand Microsoft .NET Framework 3.0 and uncheck the XPS Viewer option. Next, uncheck Remote Differential Compression. Finally, uncheck Windows DFS Replication Service. You may also want to run msconfig and check the selective startup, then choose not to start any services other than system services. If you have been good about checking all of your drivers, startup services, and stray hairs you just might successfully upgrade your computer.