I'm an upgrade junkie. I really like having the latest and greatest of every piece of software on my workstation. That having been said, I absolutely hate with a passion having to update the whole lot of it manually.

I just returned to work from a week's holiday. (It was a great holiday, by the way - I did almost entirely nothing - but that's not the point of this post.) Let's go through the list of software that pestered me to update it upon my return:

  • Firefox (Twice - once to 3.5.7 then another to 3.6! What happened there, guys?)
  • Adobe Reader
  • Opera
  • Windows (surprise)
  • Java
  • Forefront
  • Seesmic
  • Firefox (Again!! ("Downloading and installing updates to your add-ons." WTF?)

image image

The list actually goes on, believe it or not, but I'm already fed up with the sight of little scrolly bars.

A plea, then, to all software developers: make your software update itself automatically and silently.

I've been walking around all morning asking people, "Does anyone know what version of Google Chrome we're up to now? Four! Chrome 4.0 and nobody's noticed, because it updates itself silently." As it turns out, we're actually up to version five, and I didn't notice - for the same reason. Chrome team, I take my hat off to you.

Here are a couple of simple questions you should ask yourself as a developer:

  1. Is my software life-, mission- or business-critical? That is, will people die or lose vast sums of money if my software fails?
  2. Are my unit and regression test suites up to date? Will I be able to tell if I've broken my software?
  3. Am I going to change my licence agreement?

If you're writing, for example, an enterprise-grade business intelligence suite, then perhaps you shouldn't auto-upgrade. By all means, make it easy for people to upgrade, but don't do the whole ninja-update-sneak-it-in-at-midnight thing.

If you're writing pretty much any other type of software, here's a tip: users don't care about point releases. They don't care about bug fixes unless it directly impacts them. They don't even really care about major feature additions - they're obviously already using your software, so it must be fulfilling some need for them. By all means, add features, but do it in a way that isn't disruptive to your existing user base.

Users, to be honest, really don't care about anything much, other than how to get their work done - and your stupid "Update Me! Now! Now!" dialog box is just getting in their way.