A tale of two upgrades

2007-01-27, , Comments

This week I upgraded my google personal homepage and I upgraded some software on my PC — and the two processes couldn’t have been more different. This post describes my experience. It goes on to discuss the two different models of supplying and upgrading software from both a user’s and a software provider’s perspective.

Google homepage upgrade

The google homepage upgrade was painless. It just happened when I visited the site. Actually it upgraded me and I’m probably being upgraded all the time, it’s just that I don’t usually notice: this time, they’d introduced another folding widget Close widget Open widget, allowing me to preview a syndicated article without having to leave the page.

Incidentally, I don’t even know what version of google homepage I’m using. And I don’t really care. If it’s like most google software, it’s probably labelled as “beta” — despite being rock solid. Whatever version it is, I don’t have any choice in the matter. I get what they give me.

PC software upgrade

The PC software upgrade was less straightforward. As soon as I’d booted up my PC, a host of upgrade agents started distracting me — it wasn’t really how I wanted to start my working day, but I’ve learned that if you try and click away these agents, they’ll only come back and trouble you later at a similarly inconvenient time. The only way to silence them is to obey. Here’s what the first friendly instruction dialog advised:

This update is for MacBook computers with Intel processors only.

Note: Print or write down these instructions before you begin the update.

To update the firmware on your Intel-based MacBook:

  1. Quit all other open applications.

  2. Click Shut Down in the MacBook EFI Firmware Update window and wait for your computer to shut down.

  3. Press and hold the power button on your MacBook until the power indicator light flashes repeatedly to begin the update.

A status bar indicates the progress of the update. Important: Do not interrupt the update. Your computer restarts automatically when the update is completed and opens the MacBook EFI Firmware Update.

  1. Click OK, if the firmware is now up-to-date.

If these instructions appear on your screen again, the firmware update was not successful. Repeat steps 2, 3 and 4.

These are simple enough instructions, but they certainly didn’t make me feel comfortable. They carry a strong hint that something might go wrong:

There’s only one thing for it. You’ll need to send your computer into a coma then prod it until it revives. It’s risky but it’s the only way.

Consider the poor user who doesn’t know what processor they’re running, or what a processor is, or what firmware means? The instructions didn’t pop up in a document with a print button, so even obeying the first note about printing them out needed thought — fortunately I had access to another PC so I just emailled them to myself.

Once I’d upgraded the firmware — phew!, it worked — I dealt with the other software upgrades. They too required me to restart my PC. They weren’t for software I use much.

If it looks like I’m quickly taking back everything I said about Macs a couple of weeks back, I’m not. Upgrade agents on a Windows PC are even more annoying; but what’s far worse is protecting yourself against unwanted software “upgrades” (viruses, spyware, etc.). And the variety of different package management systems on various Linux distributions indicates that they too haven’t solved the problem, though at least the user typically pulls the upgrade rather than have the computer push it at them.

Conclusions: User’s Perspective

It’s a little glib to suggest that providing software as a service, rather than as a desktop application, solves the upgrade problem. For a start, not all software is suited to being run remotely — though as bandwidths increase and browser capabilities improve, more and more will fall into this category.

From a user’s point of view, as I’ve already pointed out, using a remotely hosted software service may seem like a loss of control: What’s to stop google reading my emails? What guarantees they won’t carelessly delete my calendar appointments? Will they suddenly revoke a service I’ve come depend on? Or will they simply auto-upgrade me to a version I don’t like?

When we think more carefully, though, we realise these fears are misplaced and often apply equally to desktop software. A poor quality desktop application can shred your data, and you’re also vulnerable to hardware failures, viruses and burglars. I’m willing to bet google’s backup regime is more rigorous than most domestic ones. Regarding upgrades: you often get trapped in an upgrade dependency cycle on a PC — this package depends on that package, which requires the latest version of another package, and you suddenly find you’re running bleeding edge software when all you wanted was a bugfix to something which basically worked. And in an age when most computers are permanently hooked to the internet, even the privacy argument weakens.

Conclusions: Provider’s Perspective

Things are tough for the software provider too. If you decide to host your software as a web-based service, there are advantages:

  • you retain full control over the version of software you deploy (and which, therefore, your users use)
  • you’re directly connected to your customers; you can monitor use patterns and improve your application accordingly
  • you don’t need to port to a platform you don’t like

With these advantages come responsibilities. You control your users’ data, and it’s your responsibility to make sure it’s secure and that their privacy is protected. You’d better be capable of hosting the service, 24 hours a day, 7 days a week, 52 weeks a year; and you’ll need to be capable of scaling up if necessary — you can’t increase your user-base by printing more CDs.

If, instead, you decide to deliver a desktop application, you need to worry about which platforms you’ll support. Saying you support Windows, for example, isn’t really good enough — you need to consider the various permutations of versions and service packs, and how you’ll test them, and how long you’ll go on supporting them. And you have to think about how customers can upgrade between versions of your software — a problem which I’ll discuss in another post.