The 4 software maintenance categories and what they mean for your users

As long as your software product is in use, it’s never truly finished. In an ever-changing tech landscape, your software requires constant maintenance to keep up. It needs to be able to grow and evolve alongside trends, new technologies, your user base and your business goals.

Far more than bug-fixing, there are several distinct categories of software maintenance. Some software maintenance changes happen behind the curtain, others are on stage and in the spotlight. As such, each category has a varying effect on your users.

Here, we explore the different types of software maintenance and their user impact.

 

 

Software maintenance

Software maintenance is the act of fine-tuning a software product. It’s about repair, upkeep and ongoing optimisation.

Whenever you make a change to your existing software product (one currently in use by customers), you are performing software maintenance. Some of these changes are inconspicuous – if not invisible – to your users. Others can be disruptive if handled incorrectly.

You can group software maintenance into four overarching categories:

  1. Preventive maintenance
  2. Corrective maintenance
  3. Adaptive maintenance
  4. Perfective maintenance

Between them, these categories cover the full scope of changes you might make to a software product over its lifetime. But what do they actually mean?

 

 

Preventive software maintenance

Preventive maintenance refers to software changes carried out to futureproof your product. So, software maintenance changes are preventive when they prepare for any potential changes ahead.

This includes making your code easier to scale or maintain and managing your legacy content. It also covers finding and fixing latent faults in your product, before they evolve into operational faults.

Preventive software maintenance, then, tends to be behind the scenes. Think tidying and preparation, rather than headline changes.

Your users are unlikely to notice preventive software changes – but they still have a positive effect later. This is because preventive maintenance can mean the smoother implementation of bigger changes later down the line. (As well as ongoing stability day to day.)

 

 

Corrective software maintenance

Corrective changes in software maintenance are those that fix bugs, flaws and defects in the software. It often comes in the form of quick, small updates on a semi-regular basis.

For users, corrective software maintenance is unlikely to cause negative sentiment. Who, after all, is unhappy about annoying bugs, glitches or issues getting fixed? This category of change helps make the user experience instantly and obviously smoother, as well as more reliable.

However, on the odd occasion, a corrective change may cause some disruption to users. This might happen when a bug or flaw in the software is long-standing – and the user has grown accustomed to it.

In such a case, a user may have adapted their behaviour around a flaw in your software. When it’s fixed, they must change their behaviour again, which can cause a negative response. Another time that a corrective change might upset a user is if they struggle with a certain bug or issue, but it isn’t fixed when other issues (that don’t affect them) are fixed.

So, with corrective software maintenance, it’s important to act quickly and often. That helps you offset any potential user problems, and keep your product in shipshape.

 

 

Adaptive software maintenance

The tech environment is constantly changing. New knowledge, hardware, and cybersecurity threats mean that software quickly becomes outdated. Adaptive software maintenance addresses this issue.

Adaptive changes focus on the infrastructure of the software. They’re made in response to new operating systems, new hardware, and new platforms, to keep the program compatible.

Adaptive software changes tend to be low impact for users as they deal with the internal workings of the software. (Making sure it can integrate with new tech.) Users may notice a small improvement in speed or scalability but are otherwise unaffected.

In fact, users are more likely to notice when adaptive maintenance isn’t completed. For example, it would mean their software stops working on their up-to-date devices.

 

 

Perfective software maintenance

The last software maintenance category is the biggest. Perfective software maintenance addresses the functionality and usability of the software. Perfective maintenance involves changing existing product functionality by refining, deleting, or adding new features.

As well as changing the way a product works, perfective changes might also change the way it looks. Any user interface tweaks, redesigns, or in-app user journey changes fall under the perfective maintenance category, too.

This scope and palpability make perfective maintenance the most likely to elicit change aversion in users. After all, perfective changes are highly noticeable. Users won’t notice a bit of refactored back-end code, but they’ll notice any chops and changes visible up-front.

So, managing perfective changes means communicating with your users to mitigate any potential negative sentiment. Try using product feedback, dogfooding, and offering accessible support. Change is necessary: but make sure you manage it effectively.

 

 

Manage your maintenance

Software maintenance is integral to keeping software running smoothly. But it’s not enough to merely make your changes and deploy them unannounced. When performing software maintenance, it’s important to consider what effect the changes you make could have on your users.

If your software maintenance could cause confusion, you need to make sure you’re effectively communicating with – and supporting – your users. That way, you avoid the potential disruption of change and ensure that maintenance stays your product’s mainstay.

 

Useful links

Legacy code dangers: code is inventory

What’s the difference between a software upgrade and a software update?

Are you eating your own dog food?