Types of Software Maintenance

In the software life cycle, the longest stage of the application is maintenance. Once the software is developed, it will evolve over time because of changes in the market, business, or even the software itself. To illustrate, a change in preferences by the users or new competitors gaining a competitive advantage will force the software to adapt. A business might want the software to pivot to support other users so they can meet business goals. Another example is upgrading the software by updating the framework and dependencies of the project. Thus, if a software is not update for any of these reasons, it might become obsolete and retired because its usefulness to the business will be diminished.

Types of Software Maintenance

There are four types of maintenance: corrective, adaptive, perfective, and preventive.

Corrective maintenance is about fixing errors in the code or the design of the system (Stephens, 2015). For example, if a bug is shipped to production, this has to be fixed with a corrective maintenance approach.

Adaptive maintenance is the corrections done to a system to respond to new business needs or conditions changes (Valacich & George, 2021). A good example would be an online store having different payments but wanting to add cryptocurrency support to generate more sales and expand the target audience.

Perfective maintenance enhances the current systems by adding new features or improving functionality (Stephens, 2015). For instance, if a report takes 30 seconds to be generated, the developers could modify the SQL queries to improve performance.

Preventive maintenance is about making changes to the system to avoid failures (Valacich & George, 2021). An example of this would be keeping up with upgrades in the operating systems as it might require new versions of the SDK or programming language of the project. Therefore, changes in the code must be made to keep the system functioning correctly.


Stephens, R. (2015). Beginning Software Engineering. John Wiley And Sons.

Valacich, J. S., & George, J. F. (2021). Modern Systems Analysis And Design (9th ed.). Pearson Education Limited.

Teylor Feliz
Teylor Feliz

Teylor is a seasoned generalist that enjoys learning new things. He has over 20 years of experience wearing different hats that include software engineer, UX designer, full-stack developer, web designer, data analyst, database administrator, and others. He is the founder of Haketi, a small firm that provides services in design, development, and consulting.

Over the last ten years, he has taught hundreds of students at an undergraduate and graduate levels. He loves teaching and mentoring new designers and developers to navigate the rapid changing field of UX design and engineering.

Articles: 183