Why build in preventative maintenance?

Preventative maintenance can save a lifetime of regret. Or at the very least having to spend days fixing vulnerabilities and explaining to your customers there has been a data leak.

“A miss is as good as a mile” a cautionary tale

Recently, I was taking a spin around Cannock Chase on my mountain bike with a mate. Conditions were great: sunny, cool but not too cold and no rain forecast for the next 2 hours. A quick kick of the tyres and we were off to talk nonsense and enjoy the ups and downs of “Follow The Dog”. 20 mins in to the ride and it started to dawn on me that;

  1. My bike really shouldn’t make that kind of noise when peddling and
  2. Although it’s fun when the back of the bike moves around on corners, it shouldn’t be doing that either

Deciding that “discretion is the better part of valour” a quick stop at the next opportunity was considered a good idea. Starting with the back tyre, yes it was almost flat and contributing to the decidedly dodgy handling. Nothing to worry about, an easy fix. Could have been interesting but there you go, a miss is as good as a mile. A couple of minutes with a pump and Iwas all sorted.

A chance brush of the pedal while pumping the tyre up raised a few eyebrows, the whole front chain ring moved with it. Ah, that will be the funny noise when peddling. Quick use of the Allen key and it’s all ship shape again. Easy fix, slightly worrying and bit more serious but a miss is as good as a mile.

Off we go for the next section. Properly inflated tyre, no more strange noises. Just in time for the rock section. What could possibly go wrong. Well handlebars not pointing in the right direction is considered bad form for a start. Well a miss is as good as a… It’s not really is it. And that’s the point of this article.

Preventative maintenance – five minutes for a spanner and a tyre pressure check and all would have been picked up and fixed before it got to be dangerous.

It’s the same with web apps, mobile apps and all other software. Preventative maintenance can save a lifetime of regret. Or at the very least having to spend days fixing vulnerabilities and explaining to your customers there has been a data leak.

Why build in regular preventative maintenance?

You might be wondering why it’s worth building maintenance into your product lifecycle, particularly when your project is running smoothly and has been for years. The cost of the consequences are far higher than the effort of continuous maintenance and a lot more stressful.

  1. To prevent security vulnerabilities from third party libraries
    From Javascript libraries to CSS frameworks, third party libraries are a key part of your project, whether you use them directly, or through a dependancy. The 2017 Equifax data breach was caused by Equifax failing to update a framework that it used for one of its websites after the framework patched a security vulnerability.
  2. To avoid having to make large changes later
    You might have started off with a 1.0 version of a library and then as the project functionality needs to update you need to move to a more recent version and find the library is now on version 5.0. Large changes like these have knock on effects on other dependancies within the application. What seemed like a simple upgrade now becomes an in-depth and expensive project in itself. This could include not taking this into account, having to retest everything, recode for breaking changes in side the libraries and potential security implications. The longer you go without updating your project the more likely you will run into problems.

For an example of how quickly these libraries change over time, we can look at Google’s popular development framework – Angular. Between 2010 and 2020 there has been 12 major versions of Angular. Six of those in the last two years, version 8, 9, 10, 11, 12 and 13. Long term support is only provided for version 10.0 and above. There have been 22 updates to version 9 in its lifetime. For a project built in 2019 you would have to jump at least three major versions. That’s a significant amount of work.

    How do we mitigate this?

    When we build applications at Haywyre, we don’t just look at the current requirements. We take into account the future lifecycle of the product. From the infrastructure the application is run on, to the software architecture used to build it.

    Planning in preventative maintenance from the day a product is released is key to reducing the long term costs and minimising the risk from vulnerabilities. The maintenance plan brings together the third party frameworks the product uses into a monthly or bi-monthly plan for checking and implementing:

    Vulnerabilities

    Each framework version is monitored for vulnerabilities and the fixed version brought into the project.

    Framework versions

    New releases of frameworks or libraries are reviewed and scheduled for implementing in the product in the next planned release.

    Infrastructure

    Security updates and software versions are updated automatically. Where this is a manual process the software is updated to the latest release.
    Performance is monitored to take into account increased traffic and how that may affect the the user experience. Looking at performance and usage trend allows us to prevent poor usability by over stressed infrastructure and increase the capacity before it becomes an issue.
    Planning and preparation go a long way to provide peace of mind and software that doesn’t age badly. In the long terms, it’s a best practice business decision to buy into preventative maintenance.

    Planning Ahead

    Planning and preparation go a long way to provide peace of mind and software that doesn’t age badly. In the long run, it’s a best practice business decision to buy into preventative maintenance.

    Contact us to find out how we can help you move your business forward.