BLOG@CACM
Computing Applications

On Software U­pdates and Version Changes

Posted
Drummond Ltd. Systems engineer Carlos A. Brewer R.

Software updates are now a standard procedure for software industry; since the first programs where created, developers have constantly added new features or corrected bugs on the software they produce.

Most of these updates are separated in several categories. Personally, I identify two categories: 1. Minor updates that fix small bugs and improve certain features; 2. Major updates that add several new features to the program.

For case 1 software developers normally do not expect a user to pay for it, basically these are errors related to software production processes and are covered by a warranty statement and these updates supposedly should be “transparent” to the end user. 

Type 2 updates are different, in this case program features are enhanced and new ones are added, causing the program to change its behavior or even the way it works, software developers expect a user to pay for it, this updates normally are released each year or two and the software version is changed to a new one.

These updates normally starts with a special window that shows up in the middle of the computer screen warning the user that changes will be applied to their machines supposedly to “protect ” or “add new features” to current software programs they have installed; problem with this is that not all users take the time to read what this window is saying to them, they just click on one of the several buttons the application offers expecting that annoying window to disappear (yes, annoying, cause if you click NO, this window will appear next week or next day, but it will continue showing up until you update the software), this way a user barely know what is happening and viruses and other malicious programs use this situation to disguise as an update to infect and damage the information contained in those machines.

What happen when a user finds that its old program suddenly is replaced by a new version and it realizes that all its files and data might not be compatible with the new version of the program or that the interface has changed so drastically and conditions to work with the software are so demanding that that doing something in the new version is really hard?; well in this case most users go back to their old programs and keep them as much time as possible thus delaying the update process.

New program versions cost money, not all users have the money to pay for it, especially in developing countries, causing software piracy to increase and viruses spread easily; the way the program works must not be radically changed, I bet for a gradual change in one or two versions.

A solution to this would be that most minor software or security updates to be made in quiet mode so user interaction is limited to the very end where a report is shown up, and these software updates has to be really necessary, it makes no sense to update one line of code each day.

For version changes and major updates cost has to be reduced (open source software do not have this issue), time windows between updates must be sufficient to allow users prepare for the new expenditure and software changes must be gradual not at once; as software engineers we must remember that steeper the learning curve, higher problems and lower productivity.

For developing countries, the easiest solution to the cost problem is a migration to open source solutions, for version upgrades open source programs offers the best deal in terms of update requirements, feature updates and learning curve.

Join the Discussion (0)

Become a Member or Sign In to Post a Comment

The Latest from CACM

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More