Typically, software requires continuous development and:
- contains a fault or flaw, or causes a failure (or ‘bug’ in) or otherwise ill-functioning components;
- may be susceptible to security issues;
- can be improved, if only to a limited extent;
- probably needs to be tailored to the particular technical and use requirements of the licensee’s organisation;
- is dependent on compatibility with hardware;
- is dependent on the performance of other software (e.g. supported office applications are often upgraded every three or four years and internet browser versions may be incompatible with previous versions); and
- is typically provided with a warranty period of no more than 90 days.
After the initial warranty period, there is almost invariably a need to continue receiving bug-fixes, software improvements, improved compatibility with internet browsers and solutions for changes in the environment in which the software operates. For such purpose, the licensee should enter into a maintenance and support (M&S) agreement with the software provider. The M&S agreement defines which software updates a licensee will receive, which service level a licensee can expect and specify the period of time in which bugs must be fixed.
‘Updates’ and ‘upgrades’. Bug-fixes, security solutions, minor software improvements and other changes delivered during the warranty period or in the framework of a maintenance and support agreement are provided in the form of a software ‘update’. Usually, they are numbered (e.g. versions 3.2.1, 3.2.2 and 3.2.3; or versions 2.0, 2.1 and 2.2).
Many software licences distinguish updates from ‘upgrades’: an upgrade would contain significant additional functionalities or features compared to the previous version (and are often numbered by whole number increments: 1.0, 2.0 etc.). These upgrades of software normally justify a renewed licence (and licence fee). An update, on the other hand, would be covered by the maintenance and support.
Error and support levels. Depending on the seriousness or ‘severity’ of any failure of the software, the parties would agree on an error-support level: the licensor’s or service provider’s obligation to fix errors that occur during the licensee’s or customer’s use of the software. Common severity error classifications are:
- Critical errors cause the software or even the computer to stop working. These errors require both immediate action and an immediate solution or implementation of a fall-back scenario;
- Major errors have a significant impact on the software functionalities but do not block its key functions. These require immediate action and a solution must be available as soon as reasonably possible;
- Normal errors do not disturb the normal operation of the software but require appropriate action;
- Minor errors do not disturb the normal operation of the software and a solution should become available when the software provider’s course of updating allows.
The severity of a software error determines the priority a licensor or service provider must give to reproduce, describe and confirm such error (response time), as well as the time it is permitted to fix it. Depending on the importance of the software for the licensee or customer, these severity levels, priorities and required efforts are agreed in a service level agreement (SLA).