For most product owners, the day their product is actually released into the market is the end of product development activity. But the fact is that product release isn’t the end; it’s usually the start of a long maintenance and upgrade cycle.

Once a product is out in the market, owners need to begin thinking how to incorporate the feedback that they have received into the next version of the product, to improve usability, user-friendliness, features and overall value.

Software product maintenance & support activities can be broadly classified into:

1. Corrective maintenance- reactive modification to correct discovered problems.
2. Adaptive maintenance- modification to keep it usable in a changed or changing environment.
3. Perfective maintenance- improves performance or maintainability.
4. Preventive maintenance- modification to detect and correct latent faults.

A significant investment needs to be made to maintain multiple versions of an old code-base, many times on legacy technology platform to support existing clients until they can be persuaded to migrate to newer versions of the product.