Maintenance
What is 'maintenance'?
Maintenance is the term used to describe changing a system after it has been designed, installed and has been running for a time. Software products have a limited lifespan. There will come a time when they need to be revisited and code changed for a variety of reasons, some of which are given in the list below. One of the reasons why so much documentation is needed when designing a new system is that any future maintenance will undoubtedly be required. It is very likely, however, that the person maintaining a system will not be the same person who originally designed and built it.
Situations that trigger modifications
System maintenance may be required for a wide range of reasons.
- A user has discovered a bug in a program. This needs to be rectified.
- The law has changed. The system needs to be changed to ensure that it conforms to the new law.
- New technology. Some new technology has come into being which has provided new opportunities. The system needs to be modified to take advantage of these new opportunities.
- A new function is needed. The company may decide that they would like the system to do something that it cannot currently do so the system needs to be modified.
- The business has 'outgrown' the system. For example, a business may have expanded and now needs to be able to handle far more data than it used to do.
There are three common classifications of maintenance, perfective, adaptive and corrective.
Perfective maintenance
This type of maintenance is when an existing system is improved. A complete re-write is not necessary, but some things are changed to improve the system. Examples might include redesigning user screens, improving the code to speed up actions, adding helpful tool tips and links to external sources of Internet help, removing any features that aren't used to simplify the overall user experience and so on.
Adaptive maintenance
This kind of maintenance is the classification for changes needed to keep the system up-to-date. If changes in new technology needed to be introduced, this would be adaptive maintenance, for example, if employees had to log in by using biometrics rather than a login and password. If new laws on privacy meant that certain types of data couldn't be kept, the system would have to be changed to accommodate this. That would be adaptive maintenance.
Corrective maintenance
This kind of maintenance is done to ensure errors and bugs are corrected. For example, if an employee reports that a function isn't working correctly, or in certain circumstances, something doesn't work properly then that would involve corrective maintenance. Most systems have a formal way for staff to report problems, which would identify areas for corrective maintenance. There will also be automatically generated error logs and these too can highlight areas where corrective maintenance needs to be carried out. If a problem was reported that caused a security issue, a 'patch' would be written and applied to the software. This is another example of corrective maintenance.