Newsletter "Behind the Scenes" Newsletter

May 2014The monthly newsletter by Felgall Pty Ltd

My Word

Software Support

Supporting a particular version of a given software product takes time. Whenever a particular issue with the software is discovered, the cause of the problem needs to be tracked down, a fix for it needs to be developed and the software then needs to be retested to make sure both that the problem has been fixed and that the change hasn't created new problems. The more complex the software the more likely it is to have problems. The more popular the software is, the more likely that the problems will be discovered and where the problem represents a security hole then the more likely it is to be exploited.

Modern operating systems are amongst the most complex software products that exist as their code is not just used by the operating system itself but modules within the operating system are also used by many of the applications and utilities that are run on that operating system to provide common functionality. A problem with and operating system is therefore going to be both more common than problems with most other software and will have the greatest impact since a problem in the common functionality will affect all of the applications that use that functionality.

So now that we have established that software can require significant resources to support, let's next consider the issue of multiple versions of the same software. In an ideal world only the very latest version of any given software would need to be supported as everyone would keep their software completely up to date so as to not be running software known to have problems. There are a number of obvious reasons why this isn't the case. Where upgrading to the new version is going to cost money then simply releasing a new version is not going to get anyone to upgrade, only where the perceived benefit of upgrading exceeds the known cost of the upgrade will people consider it. Where the new version changes the interface for the software significantly without providing people with the opportunity to switch it back to using the interface they know then people will be less likely to upgrade (I still use Thunderbird 2 for my emails because the interface was significantly different in version 3 and there was no way to change it back, with Microsoft Office 2007 introducing the new ribbon bar the saving feature was the add-on you could install that provided a ribbon containing the three most popular toolbars from the prior version that provided a half way stage between the old and new interfaces). Inability of the hardware to run the new version is an even more likely reason to not upgrade as then there is not only the cost of the new software but also that of the new hardware needed to run it. The complexity of the upgrade process is also going to reduce the likelihood of people upgrading - particularly something like an operating system which may require that you reinstall all of the applications (and where in some cases you may also need to upgrade an application where it no longer works with the new operating system)..

So there are lots of reasons for people to not upgrade. Now this doesn't apply so much with software patches where installing the patch isn't going to cost anything and can happen automatically without affecting any of the other software on your computer but it is likely to mean that major upgrades are not going to be applied by everyone straight away. The majority of operating system upgrades are more likely than not to be delayed until the person needs to buy a new computer where they will then have the new version of the operating system installed for them as a part of the package..

So what affect does having all these people running old versions of software have on support? Well it means that the software owner needs to consider support of old versions of their software. A given problem may only affect one version of their software or it may affect multiple versions and hence involve a lot more work if all of the affected versions are to be fixed. A further issue is the familiarity of the support staff with all of the different versions, particularly where the code has changed significantly between versions..

That people don't upgrade straight away means that older versions need to be supported as well as the current version. That supporting multiple versions increases the cost of support and that support staff may not be familiar with the code in old versions means that they are not going to support all of the old versions and that they will also place a limit on the time that they will support them for..

So we end up with a compromise where a specific number of old versions will be supported or where old versions will be supported for a specified amount of time or both. For example with PHP, when version 5 was first released an announcement was made as to when support for version 4 would end. Everyone who had code written using PHP therefore knew when they had to have all their code updated to work with version 5. The PHP update didn't cost anything and could still run everything version 4 could except those things labelled as deprecated in version 4 and so there was no reason to extend support indefinitely. With the deprecated code everyone had known since the introduction of PHP 4 that those things were not going to work in version 5 and so had the entire timeframe from when PHP 4 was first introduced until support for it ended to fix that part of the code. I(n this case several sub-versions of the software are supported but two full versions are only supported for a set period of time. With programming languages the labelling of those things that will be removed in the next version as deprecated provides plenty of notice of what will not work in the next version and so there is no real need for much overlap in version support as everyone has the full life of one version in which to fix anything that will not work on the next..

Supporting the last two versions is a popular solution to support - it acknowledges that not everyone upgrades straight away without adding too much to the support workload as the current support staff are likely to have a reasonable knowledge of those versions. Where updates occur less frequently there may also be a time limit on support for the older version so that there is only a limited period within which the two versions are supported..

Presumably taking all of these factors into account, Microsoft provides support for more than two versions of their Windows operating system. The relatively high cost of upgrading to the latest version, the significant differences in the interface, the difficulty of upgrading an existing system and the potential incompatibility with hardware and applications means that a lot of people will stick with an older version of the operating system for a lot longer than would be the case with most other software. Microsoft therefore provide plenty of notice on when support for a given version will end. Foe example support for Windows 8 (currently 8.1) will end on 9th January 2018. By that time Windows 10 and possibly even Windows 11 will have been released meaning that just before that date Microsoft will be providing support for at least three and possibly four versions..

With Internet Explorer Microsoft has an even more complex situation given that there are both multiple versions and it is tied into the operating system so that the same version number running on different versions of the operating system will be different. This means that Microsoft is effectively supporting a dozen or more different versions of Internet Explorer at any one time. It is only because there is a significant amount of code in common between the versions that they are able to consider supporting this many versions..

Software companies will always be looking to add new features to their software. If they don't then they will quickly lose market share to those that do. Adding these new features means creating a new version that contains the new features. This then gives them an additional version they need to support and brings closer the day on which they will end support for the current version..

If you don't upgrade software before the end of support date then you leave yourself open to any problems in the code that are still undiscovered at the time that support ends. This didn't matter when each computer was separate and not connected to the internet as the problems would only be an issue if they actually affected what you were trying to do and those types of problems would be likely to be fixed long before support ended. It also isn't going to be much of a problem with less common software where the number of people actually using the software is relatively low and where security holes are not likely to be exploited. With really popular software the end of support means that any subsequently discovered security holes will eventually be exploited and systems still running that software will be compromised - possibly to the extent where they even place other systems at risk. The security hole discovered in Internet Explorer just after support for Windows XP ended was considered to be so likely to place users of their supported operating systems at risk via compromised XP computers that they decided to patch those unsupported versions of IE as well as the supported ones. This doesn't mean that we can expect the same thing to happen again the next time such a hole is discovered though.

On Site

The site has now been moved to new hosting. I hope that no one was inconvenienced during the move. There were a few minor glitches requiring slight modifications to some of the configuration but everything should be working correctly now. Please let me know if you spot anything that does not work.

What's New

The following links will take you to all of the various pages that have been added to the site or undergone major changes in the last month.

Main Links

Ask Felgall
Past Newsletters
Sign Up/Unsubscribe
Question Forum


Interactive Web
PC Software
Comms Software
Word Processing
Book Reviews

Other Links

My Javascript Site
My Blog