After implementation a system will normally be given to the customer for use. The customer, at this stage, will expect one of the following : -

  1. The developing company to fix any problems for free for a period of time after the product has been released. A bit like a warranty for software
  2. The developer will charge for every fix that is produced for the software.
  3. The developer will create updates, either free or paid, for the customer which extends the functionality of the software.

Maintenance is never free. It will always be paid for even if the price is included in the original bid. The reason for this is that maintenance is a very expensive business. We already know that problems found later on in the systems lifecycle are harder and therefore more expensive to fix. As a result all bugs found in the maintenance stage have the potential to be costly to fix. Because maintenance is so expensive it is critical that it is well defined for both the customer and the developer. At the end of the day it is not in anybodies interests for misunderstandings to occur.

Maintenance covers two main ideas, fixing problems and adding new functionality. Problems or bugs can cause the system to not operate as intended. They range from simple spelling mistakes to serious issues with incorrectly defined requirements. Problems, when fixed, will not add any extra functionality but merely ensure that the system meets the original specifications. Extra functionality should never be added unless the updates have been commissions and have also gone through the full systems development lifecycle. This is to ensure that the original functionality is not broken and that the customer does not get any nasty surprises. At the end of the day getting new functionally may seem like a nice idea but it could have a major and unexpected effect on a business. Such surprises should always be avoided when possible as their effects are rarely positive.

There are three main types of maintenance which are listed below

  • Corrective
  • Perfective
  • Adaptive

Each have much different focuses and goals but all share one simple thing in common. They are all expensive to do!