« Windows Media Player 11: Early bit of Aero | Main | Insert key safely disarmed in Microsoft Word 2007 »

June 25, 2006



And what would you recommend to do in case the current user doesn't have admin rights? Inform the user at some point or leave him/her alone? At best probably default to the later and optionally allow the former...

Alexander Groß

What's even more annoying is software that's trying to update but will eventually fail because I'm running as an unprivileged user. One has either to download the updater manually and do a runas or start the application as an administrative user and trigger the update manually.

Unfortunatly, most products don't detect if they're performing the update in a limited environment and offer an runas-dialog accordingly.

My two cents.



I disagree. Automatic updates, as you describe them, result in confused and unhappy users. Obviously, it would be ideal if every single user wanted to and did keep up to date with the latest versions of all their software, but in the real world this is just not true--and for good reason.

By and large, computer users (especially non-savvy ones) follow the "If it ain't broke..." rule closely. As you note, updating will possibly cause no new problems, but may cause a dozen. Not updating will not cause any new problems--unless Microsoft gets lazy and decides to not support old versions of Messenger (again). (I've never heard a good explanation why this keeps happening. Is IM protocol really that hard to keep backwards-compatible?)

Updating is, generally, good. Not updating, however, is not generally bad--unless your software was bad in the first place. Unfortunately, the best compromise, to me, is the current paradigm, which at the least keeps the user informed and in control over what software and new "features" are being installed on their computer. We should work at improving that experience, and not go behind the user's back in the name of helping them.


One thing I don't like about the automatic updates that programs go through nowadays is the frequency with which they have to be updated. Windows is notorious for this, but Adobe is bad as well (which was mentioned). Why are such frequent updates required? My first conclusion is that the company does shoddy programming. I also wonder how many of these updates are there to fix something from a previous update that wasn't coded well, etiher.

It seems to me that unless they put out a crappy product that needs to be fixed pretty quickly, there's not a dying need to have a new update out every couple of weeks. I'm willing to cut Windows some slack due to the people that will go to their graves trying to destroy it, but everything else seems excessive. Waiting for a couple of months before trying to push out a new update doesn't seem like a bad idea on any level (with the obvious exceptions of accidental bugs that even great programmers make on occasion).

This greatly reduces the different version problem talked about in that blog because there aren't so many updates to provide different versions. As for MSN, pushing out an entirely new update over renaming the audio and video components? Come on! Save useless junk like that for another version when something important needs to be changed.

Users don't want the bleeding edge of a program. They want one that works. I don't know how they figure the problem is how to get updates to users without bothering them. I think the real problem is figuring out how to push out as few updates as possible. If that means we have to wait an extra couple of months for some minor feature, I think I can speak on behalf of the average user when I say that this is quite all right.

Tom O'Neill

Great post. But one advantage of at least telling the user about the upgrade is that it gives them a clue what might be the problem if their computer suddenly stops working.


No. Software should not autoupdate itself, for several reasons.

First and foremost, software runs as a limited user, and updating requires write access to the binaries which is only granted to administrators. Thus, an application cannot do anything but ask the user to ask the admin to update.

Second, updating requires Internet connectivity, and sometimes a substantial amount of traffic. Suppose Microsoft releases an Office service pack of 100 megabytes. Also suppose a local area network with 300 users having the same version of Office. If they all start downloading, it will cause almost 30 gigabytes of traffic, rated $55 per G, for a total of 1650 US dollars. On the other hand, if I bring the update from my work place (where it was downloaded and stored on the server) and offer it to my neighbors, it costs us nothing.

Third, if Office decides to update itself, it might (and most probably would) use up my prepaid Internet limit, which will cause me to be disconnected from the Internet. The update will fail, unless the updater supports resume — and it most probably doesn’t. So I lose my traffic limit — and this means money — for nothing. Also, I lose my Internet access, until I manage to go and pay for more, which may (if it was Friday evening) be two days and three nights later. A weekend without Internet access, what?

Fourth, if software can update itself, it can possibly be tricked into updating itself with a malicious update. On the other hand, if I am told that an update is available, I will visit the vendor’s web site and find out that there is no update. Or I will download the fake update, install it on a controlled machine, see the effects, submit it to my antivirus vendor and not install it anywhere else.

Last but not the least, I have the right to know exactly which version of which software I have installed, if for nothing else than bug reporting. If it autoupdates, I lose this knowledge and have to resort to unhelpful claims like “last Sunday it worked and today it doesn’t”.

No, software updates must be done in a controlled way by the system administrators. Even if said administrator is the same person that ordinarily uses that computer.

Ilya Birman

When you pay per traffic, you never let any program download anything automatically. You must first decide whether you want to pay money for this upgrade. And believe me, if its "Audio was renamed to Voice", it's not worth ANY money :-) I don't want to download some 5 MB (or what) to throw $.6 away just for that.

The only thing I let autoupdate is my virus scanner database.

So I vote for "Update? yes/no" dialogs, where "no" actually exists and means "no" :-)

Michael Zuschlag

Some of comments seem to be comparing auto update with no update or "manual" user-initiated update, but I don't think that's what Jan has in mind. I believe he's talking about comparing auto update with *prompted* update, and here I think auto update makes more sense. What's worse than auto update with a limited user? Prompted update that annoys the user with "Would you like to update?" then after the user clicks OK, says, "Nope. Sorry. Never mind."
That said, auto updates aren't for every update. They probably should be limited to updates that really everyone *needs* to do (e.g., security issues or major-task-halting bugs). If it is truly important enough to demand a prompted update ("Update *Now!* We *cannot* tolerate users who aren't updated!"), then it's probably important enough for auto update.
But "Audio was renamed to Voice"? That probably doesn't belong in either auto update or prompted update, but user-initiated update (that includes: user has issue, checks knowledge base, see patch available, downloads patch). A compromise is to provide the user with the opportunity to subscribe to an email list that sends details of each update as it becomes available.
There are really two rules: (1) Give the user enough information to make an intelligent decision on whether to perform a task or not, (2) Let the user decide *when* to engage in a task that requires his/her interaction. Prompted updates break both rules. Auto updates breaks only (1), and I believe Jan gives examples of when that's okay.

Peter H.

My vote for one of the most annoying instances: the monthly update by Microsoft to install the "Microsoft Genuine Advantage" check. How many times to I have to approve these updates before Microsoft decides I have the real thing?

Massive disagreement with Centaur. Optomize for 80/20. If you're downloading 100 megs, that's a corner case. Windows has way too many dialogs popping up everywhere. And to those who pay by the byte ... you're on the wrong side of a tectonic shift in thoughts about bandwidth.


I strongly disagree with you. Although you are certainly addressing a valid issue, I believe you are trying too hard to solve it.

There are several reasons why applications should _never_ auto-update itself.

1. Trust. Although you might trust companies like Microsoft and Adobe (I certainly don't. WGA phoning home is one good example), how would you feel about your file-sharing app auto-updating itself? Or iTunes auto updating itself in order to give you even better DRM? This isn't necessarily about the risk of receiving malicious software, but how the user feels about letting an application change the permanent state of the computer, possibly breaking it because of a minor bug, without having any idea about when it happened and what caused it to happen. What good does system restore do then?

2. Security. How many of the 20 different auto-update implementations, that is installed on your system, do you think have a bug that allows "bad" people to remotely execute their code on your computer without you ever knowing about it. The nature of this functionality is to execute code downloaded from a server without "bothering" the user. Put the word "malicious" in front of code and you've got every hackers wet dream coming true.

3. Technical issues. What if I am connected to the net through my mobile phone? That small update relative to the broadband standard of today might be pretty expensive then.

4. Resources. When should this update happen? Unless you can make the update happen in a flash, there is no way to do this without annoying a significant percentage of your user base.

5. Unexpected behavior. An update would typically do stuff that the application doesn't usually do. This might conflict with the user permissions, firewall settings, antivirus, and other applications that restricts what an application is allowed to do in an effort to prevent the execution of malicious code. Obviously, this might result in the user being hammered with warnings, for no apparent reason, and might even result in a broken application if the updater is poorly coded.

An application should behave in a predictible manner. It should never go off and do stuff that it doesn't usually do, without asking the user. It should also never alter the permanent state of the computer without explicit user consent. These are basic design principles.

So then what? How can we solve the problem?

Well, the problem here isn't really new. It boils down to being a common task that is implemented in 10,000 different ways, because there's no rules that define how it should be done. The solution is simple; create a framework that developers can use to implement the functionality in a consistent way. The user will as a result easily learn how this works, and the entire notification and update process can be made less obtrusive (which means less annoying).

Imagine an update control panel that gives you an overview of the update status of every application in the system. Notifications might be as unobtrusive as a small icon in the notification tray showing the number of updates that are pending. A stronger notification might be issued if updates have been pending for a month.

Sorry about the article-type length of the comment, but it just had to be said :)

The comments to this entry are closed.