
Oh app, for crying out loud, go update yourself - blader
http://miksovsky.blogs.com/flowstate/2006/06/hey_app_go_upda.html
======
vlad
When my software starts, it auto-updates itself if necessary (takes only a few
seconds.) My software also checks for updates every half an hour. If there's
an update, it puts a notification into the status bar (of the program, not
taskbar). It checks to see if the software is idle. If it is, it saves
everything, shuts down, downloads and installs the update, and runs again. It
takes one click to go back to where the user was when they come back from
being idle.

A user is also able to select "don't install updates automatically" in which
case they will still be notified in the status bar and when the program first
starts that they have an old version. By clicking one button, the new version
is downloaded and the program is restarted. So, the user is aware they need an
update.

Finally, the updates themselves add new features and don't introduce bugs.

This works better than iTunes (where you have to redownload the entire
program), the anti-virus definition updaters (that popup a progressbar over
your screen or fill up your system tray), and the Adobe Acrobat Reader
downloader (a crazy screen that tells me to update a program I don't even use
very often.)

The news page that shows when you start the program tells you any news, so the
users are still aware that new features are being added, even though the
process was seamless.

~~~
blader
Sounds like an app I would like to use, and I don't even know what it does.

My only comment is the "and don't introduce bugs" statement ... that is a bit
of a tough guarantee isn't it? =)

~~~
vlad
Thanks! Yes, that's more of the mental state I put myself in. :) But I have to
say that I have developed a pretty good feel about when something is ready for
release.

My program has to run all day. As soon as I release an update, I have to
quickly run the old, installed version of my software to get the current
update. Then, I make sure it actually starts. Let's say I add something that
works great during testing, but crashes with a file access error on startup.
That means the user will come back to the computer and see an error. At least
if I introduce a bug that doesn't keep the program from loading, it means that
I can then release another update later on which the update I just released
will catch. That's what I meant. As long as the update doesn't make the
program crash when it starts, the program will find any future updates to fix
any bug I introduced, seamlessly.

I hope this helps somebody.

------
Tichy
Personally, I categorize every application that updates itself as spyware. At
the very least, the vendor of the software gets to monitor my habits of using
my computer. Also I think this will become hell eventually when all the
zillions of applications installed on a typical system try to update
themselves after their own fancy.

It works so much better in debian/ubuntu, where most update requests go to a
central repository.

Perhaps it would make sense to at least have one common "updater" component
that all applications could use, similar to the way they now all use MS
Installer (OK, sorry, I am still stuck with Windows, against my will). That
updater component could be configured once, instead of having to configure
each application individually. There is also the additional concern of letting
applications communicate through a firewall - if I unblock them so they can
get their bloody updates, who knows what else they will transmit?

------
epall
He's complaining about PCs, but I've noticed similar issues with Mac apps.
They don't have a system tray to go nuts in, but half of the mac apps I run
check for updates at launch and bug me right when I'm trying to opens
something. Some are smart enough to go ahead and do the update and tell me
afterward, but they're in the minority.

This feels to me somewhat like the Vista shutdown menu. The programmers
writing the individual apps aren't asking themselves "what if there were six
apps like ours all asking to update constantly?" Come to think of it, this
tends to be a pretty major theme in software development: ignoring user
experience when other people's code is involved. Opportunity for improvement!

------
blader
This is one of my favorite posts on UI from my favorite UI blog.

