Rant about software updates

by John Merus

 

The law of unforeseen consequences and the Web has transformed all software into Beta software. In the past, when physical media was the choice of distribution, a single error by a programmer could result in sending out floppies or CDs and the loss of thousands, if not tens of thousands dollars. The software industry developed a whole system of patching binary files. A raw new alpha version was vetted by a few, and then the refined beta version was vetted by more. Releases were few and far between, they were documented and tested.

Then came the fast internet and the feasibility of downloading megabytes of fixes easily. More importantly, the type of updating shifted the burden of updates from the company to the user. Moreover, the rise of faster computers and sophisticated automatic testing resulted in a new type of software development known as agile. Agile can be characterized by small frequent releases, exhaustive unit, function and regression testing, and user feedback. Agile is great, I use it to develop my software package Bliss. Why? If done properly, it produces a stable program that the users want. But it also shifts some of the development burden to the users.

The result of fast internet and programming development changes was that everyone now updates there programs frequently. No software has a real vetted release, rather small steps that are usually pretty stable but still a beta. This, by itself is not bad. What is bad is that the burden of installing these updates falls to the user. Because the companies do not pay for user time, the update process is stuck in the 1990’s.

Tortoise SVN is an example of this type of software, frequent releases and requiring a reboot after every update. Now, being a programmer, I understand the necessity of that software rebooting, but the problems is I don’t know if I need to update or not.

The software industry, as well as legal process, must be changed so software updates are transparent. For example, if I choose to install automatic updates for Tortoise SVN, it should just download the update in the background without me asking, and wait for a reboot before installing it. A small balloon could pop up telling me new software is installed but will not be active without a reboot. But under no circumstances should software update every request a new key, license agreement or even to download! It should be transparent to me. I have work to do, I do not need the overhead of updates!

Microsoft updates are a good example of how this can be automated, transparent, reboot at night, and roll backs. The software industry needs to make standard a transparent update procedure, with rollbacks, that everyone, including small programmers like me, can use with little overhead.