si152019 Software Maintenance, Understanding the 4 Types | CoderHood
You are here: Home / productivity / Software Maintenance, Understanding the 4 Types
Software Maintenance, Understanding the 4 Types
JANUARY 14, 2019 BY LORENZO PASQUALIS
Reading Time: 6 minutes
hitpsshwwu:coderhood.comvsoftware-maintonance-nderstanding-the-14ypes! anasi152019 Software Maintenance, Understanding the 4 Types | CoderHood
Software systems are a collection of bits recorded on a storage device. It might seem
that once a software application works, as long as the hardware it runs on is functional, it
should just keep working for eternity. So, why is "software maintenance” even a thing?
There is no physical wear and tear, and there are no materials that can rot or rust away.
Software systems are not affected by the atmosphere, pollution, the weather, and there
isn't anything that can physically break. However, this argumentation doesn't take into
consideration an essential aspect: the context.
While software applications do not have moving parts that are subject to physical wear
and tear, they most often have dependencies with their working environment. With very
hitpsshwwu:coderhood.comvsoftware-maintonance-nderstanding-the-14ypes! anasi152019 Software Maintenance, Understanding the 4 Types | CoderHood
few exceptions, as the working environment inevitably changes, the assumptions the
application was built upon crumble. Eventually, the app stops working or loses its value
Examples of Context Changes
Let me give you a few examples of context changes that can cause a software system
to lose its value or break:
+ Awebsite that allows users to log-in using Google authentication stops working when
Google changes its authentication protocol. (External dependencies change)
+ Aweather prediction software system becomes outdated when the implemented
mathematical weather models become outdated. (State-of-the-art knowledge change)
« The navigation software of a car becomes obsolete when more recent navigation
software products released by competitors are significantly better. (Market
expectation change)
+ The software that manages bank accounts in a financial institution must be updated
when the hardware it runs on breaks, and compatible hardware is no longer available.
(Hardware change)
+ An application stops working when any one of the used third party libraries requires
an update to a new version that is not backward compatible. (Software dependency
change)
+ An application needs to be modified to comply with new laws and regulations.
(Compliance change)
+ An application needs to be fixed because the definition of leap year changed
(External concepts and definitions change)
* An application needs to integrate with a new and popular third-party system. (Market
environment change)
* Traffic is increasing on a website, and the website software needs to be rearchitected
to be able to scale to the new traffic levels. (Usage patterns change)
So, in principle, it is true that software applications don’t withstand physical wear and
tear. However, non-physical processes cause software applications to age and expire if
they are not rigorously maintained
The Different Types of Software Maintenance
Maintenance of software systems comes in four different flavors: adaptive, corrective,
perfective and preventive. Please, note that | did not make up these names. If | did, | would
have chosen something different. For example, | find the term “perfective” to be cringy, but
| am going to stick with it for compatibility with the standard industry jargon
A maintenance action is always a software change, but its classification depends on the
reasons that triggered it. Let’s take a deep dive in the four types of maintenance, and how
hitpsshwwu:coderhood.comvsoftware-maintonance-nderstanding-the-14ypes! ana