Monday, April 27, 2009

Upgrade done right

Today, I upgraded my Ubuntu machine to Jaunty Jackalope.

There was 1 network problem, which left me having fetched 1124 out of 1125 files. I hit cancel, restarted the upgraded, it downloaded the last file, and the rest was trouble-free. Given that there were probably tens or hundreds of thousands of 9.04 upgrades underway at the time, it's amazing that was the only problem I hit.

I don't think it's a surprise that Ubuntu is both (a) extremely successful, and (b) very easy to upgrade and keep upgrading. When I think about some of the software systems that I've been particularly impressed with over the last few years:
one thing that all these programs have in common is that they take upgrade very seriously. They work hard to make sure that upgrade is easy and reliable for the user, so that users both want to stay upgraded and find it easy to do so. They think about problems such as
  • whether you can skip a version when upgrading several versions at a time,
  • whether you can downgrade back to an old version if the upgrade caused problems,
  • whether you can upgrade parts of your distributed system at different times,
  • and so forth.
Behind the scenes, of course, this requires careful design, attention to detail, and lots and lots of testing. But more importantly, it requires that the community which uses that software must care about upgrade.

There's a great post over in the Google Chrome world about how when they first started, they knew they had to absolutely nail the upgrade problem from the very beginning. Of course Google, being typically awesomely Google, have even open-sourced Google Update itself, together with some design documents which show their perspective on how an updater should behave.

Now, if only all the software in the world could do such a good job.

No comments:

Post a Comment