logo

Types of Software Maintenance in Product Lifecycles

Software maintenance refers to the ongoing support for application(s) so they can remain functional & secure while staying in alignment with any transformation(s) occurring within business(es). 

The most common perception of maintenance is refactoring bugs; however, maintenance itself is actually much more extensive in nature. There are four main types of software maintenance: 1) Corrective: fixing defects that occurred after release (e.g., problems missed during QA); 2) Adaptive: developing/updating an application to work in a different environment (e.g., OS/browser/API changes, etc.); 3) Perfective: enhancing or otherwise tweaking existing functionality based on user feedback & input, including process improvements & performance enhancements; and 4) Preventive: reducing the chance for future defects through code refactoring, library updates, technical documentation updates, etc. 

When performed collectively as a part of the overall life cycle of the software product, these four categories of maintenance provide a meaningful way to better implement & manage a software solution in today's fast-paced, ever-changing technology world. Software maintenance should be viewed as a fundamental 'step' on every software development project; therefore, it should be dealt with on an 'ongoing' basis as opposed to as an afterthought. Properly done, software maintenance provides a stable, reliable product experience, as well as greater levels of customer satisfaction and ROI for businesses.

Software Development