I realized I touched on something in my last post that's quite profound but likely not so obvious:

My only mistake was installing Win 7. I didn't realize Win 8 was already available to MSDN Subscribers (as of Aug'15!) else I'd have just gone Win8 Pro from the start. But it's a quick and reliable upgrade, so I'll fire that off shortly.

Windows' upgrade process is historically one that's avoided like the plague. Windows is complicated and messy, and encouraged developers to do likewise (System32 as a mosh-pit-dumping-ground, among other things). Even upgrading a recently installed, minimally modified Windows could be dicey, so much like uninstall (commonly referred to as "Why do you want to destroy my system?") it was rarely used. I've been using Windows since 2.1x, and I can count the number of times I've upgraded a system via Windows' upgrade on one hand. With most fingers left over. Much like putting your hand on a stove or sticking it in a woodchipper, once or twice and you learn it's a bad idea. And there's plenty of fresh meat, full of youthful exuberance, who gleefully go off and use Windows' upgrade process - and share their horror stories. Windows has taught, well, most everyone, upgrade is just not something you use. Not if you want a working system.

Until Windows 8.

I've had the good fortune to work on Windows 8 from its start. My desktop has been running interim builds for years now. Like most larger developer shops, Windows has a nightly build process, and usually weekly one of the builds has had extra attention and vetting and is blessed 'good' for self-hosting (aka eat your own dog food). After some initial research, I would routinely (and only) install new builds via the Upgrade option. No clean installs.

A clean install means "install as if a virgin machine - preserve nothing". This effectively nukes all installed software and settings. The latter's a hassle (enable remote desktop, tweak UAC, add machine to domain, grant myself admin rights, and a few other things), but the former was incredibly painful. Office and whatever else I had installed went poof. There are times you want a clean install, but typically an upgrade is the right answer. I don't want to scrap my machine and start from scratch, I just want the newer Windows bits.

So I routinely picked the 'Upgrade' option. And it worked. Seamlessly. Flawlessly. Reliably. And utterly safely.

Let me repeat that: Windows 8's upgrade worked exactly as you would expect.

I was amazed. Shocked. And utterly thrilled.

This wasn't a one time fluke. It was the norm.

I did clean install a few times. At certain major transitions, upgrades were disallowed (e.g. upgrading from a build before DP release to a build after), so I couldn't upgrade my desktop. Much wailing and gnashing of teeth ensued. But these were few and far between. [That said, if anyone's listening, it was far, far too often...<g>]

In all the upgrades I ran through, I hit a snag only twice. And both times Windows noticed, mentioned it to me, and rolled the system back to the pre-install state. I was right back where I was an hour earlier, working system and all.

Steve blog'd about this some time back but I'm happy to say it's not just marketing speak. There really has been a significant effort invested into the install process, as well as other less notable changes to facilitate this. This works exactly the way it should. For the first time in my career, I can honestly say Windows' upgrade process not only works, but works in that brain dead utterly reliable way users expect. Like putting your key in the car's ignition and expecting it will start, no questions asked.

This reminded me of my experience upgrading my wife's iMac running Tiger. The process was terribly complicated:

  1. Insert CD
  2. Start install
  3. Answer a couple of prompts
  4. Walk away for 2 hours
  5. Welcome to Leopard

Push button, idiot proof, brain dead simple upgrade.

Now for Windows too! <g>

Now this may seem like a trivial thing, but it's not. It has huge implications. Huge benefits. Removal of the source of major friction and pain. And it's not just good for end users - it's a boon to the process of building Windows. The sheer hours saved not reconfiguring systems across the quantity of people who design, build, test, use and help get Windows out the door... It pleases me as a shareholder, as well as a user.

I believe this 'reliable upgrade' is due to an intentional change of focus. I've had long and fascinating conversations with several folks, some who've been around in Windows a decade or more. And the common attitude was "upgrade = evil; clean install = necessary". Upgrades (especially amongst interim builds, but also in the field) were so less than reliable, folks had been scarred so badly, they'd come to expect upgrades to be bad. The only 'sensible' thing to do was to clean install. That was part of the problem. When people see a problem as a given, so ingrained it's not even questioned anymore, you don't get a lot of 'bottom up' (effective) push for change. And of course it becomes a self-fulfilling prophecy - no one upgrades dogfood builds, so upgrade isn't tested, so upgrade isn't well vetted and has problems, so no one upgrades... I refused to accept the status quo, and I expect several key people in positions to do something about this had the same opinion.

Windows upgrade is now so different from when I started in Windows just a few years back. Windows' upgrade is rock solid reliable. So much so, that even the staunchest defender I knew of "never upgrade" now only upgrades his systems.

My my, how the times are changing.

* I mentioned Uninstall is likewise reliable and trustable, but that's due to AppX and the whole new app model for Metro style appsWindows store apps that I and (many) others helped create in Windows 8. Just like Windows upgrade, "uninstall" should no longer be a dirty word to be actively avoided :-)