I have a desktop application that has the ability to automatically update itself on the next restart (without the user’s consent – but this is another issue altogether). Assuming that the user would never notice anything related to application updating (such as a progress bar, or pop-up requiring restart), and that our server would support the request spam load, is there any reason why it should not check for updates in less than 20 hour interval?
The reason I’m asking this is because all applications that I know that have auto-update capability check for update every 20 to 24 hours and at startup. I was just wondering if there was an ethical rule about it, or simply because of the risk of overloading the server.
11
You probably don’t want to do an update that frequently.
With a daily update, you run the risk of hosing ALL your users if there’s a problem in your update (I’m looking at you, Microsoft). And then you get to deal with the resulting complaints and support issues. If you make the frequency of the checks lower, if a problem does occur, it will affect a smaller portion of your customers, and you’ll likely be able to catch it and fix it before it becomes a larger problem.
In my Windows apps, they check for updates (if enabled) on program launch only if they haven’t checked in the past 14 days. That seems to work well. It just records the last checked date, and only does another check once its been 14 days, regardless of how often the program is launched. And, if the user wants, they can also manually check in the ‘About’ window.
Consider two points:
-
Privacy. If the application sends information to you every time I’m launching it, it says too much about me. If I start your application very often, you can gather some statistics which I would consider too intrusive of my personal life. Over a few months or years, you’ll know statistically when do I use my computer from Monday to Friday, and when do I use it on weekends. You’ll be able to know that on May 9th, I launched the application sixteen times, or that I was on holiday from March 12th to April 4th.
-
Impact on server. If your app is actively used, the impact of checking for updates every time it starts may be important. Reducing it to one per day per user is not too bad.
Note that contrary to what we could think, it wouldn’t affect peaks too much. For example, an application used by accountants in USA would see the highest number of requests in the morning, when accountants come to work and launch the application.
As for the point of view of users themselves:
-
if the users of your app are system administrators and IT professionals, then Balog Pal already gave you enough information. Always give a possibility to either disable the updates or make them manual or discard them in some way.
-
if the users are simple people with no much knowledge in IT, they don’t care if you update your app every thirty seconds or once per month. What they care about is that some apps ask them to do the updates: a process which they don’t understand and which they consider being a waste of time. That’s why the model chosen by Google Chrome is so excellent and should be used in every application.
Indeed it’s the current mania, and it PITA. After every install I have to run hijackthis and weed out parazites. Or set firewall to tame programs that I installed to say edit a picture, but they think to own my network connections, and do whatever stuff they feel like.
No, it is not okay for a program to check for updates without user’s consent and agreement in 20 hours, or even in 20 years. You want to play fair, implement an option where the user can set his preference.
If you ask the question differently, whether it’s okay to offer that as default, I’m not against.
1
You should consider having a “criticality” level of the automatic update. If it is a security update you could make it a forced update, but if it’s a functionality or less-critical bug fix update then let the user decide. The frequency doesn’t sound bad because if there is a security update you might not want to wait until the next reboot or restart of the app. Even if the update is non-obtrusive users can get annoyed because of change in features.