Supportsoft Glossary
Discover the language of innovation with our glossary, turning complex app development, web design, marketing and blockchain terms into clear, practical explanations.
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.