In the last blog, we discussed why software maintenance is important, and what the consequences are if you neglect it. Today, let’s look into the types of software maintenance. Read on to get a better understanding of what you can expect from your software maintenance team.
“Maintenance” has a broad meaning. You don’t have to maintain every single aspect of an application. Usually, maintenance is a long-term programme that executes over time, and in every time window a different set of updates are being applied by the engineers. Below are the main areas of work.
Stages of the maintenance cycle
As the name suggests, during this work all issues and bugs are being fixed. If we compare your software to a car, this is like fixing the wheel geometry. Usually most problems are solved within the first year or the warranty period of the project cycle and over time the workload in this type of maintenance shrinks.
With your car, you need to change your tyres in the winter. Conditions change and your tools are using modules that evolve. During this part of the maintenance cycle, engineers ensure that your tool status is at the top of the technology stack and they remove deprecated modules or replace them with updated ones.
You may want to replace the brakes in your car to a sport version to ensure the best performance. Similarly, over time you may notice a lack of functionality in your software, or your processes change and need to be reflected in the system. Adding new functionality - or removing old, unused functions - is the most common type of maintenance. Basically, it never ends and it falls into the same cycle as platform development, yet it is not that intense and may not occur that often. This type of maintenance is probably the one you would be interested in the most, as it allows you to upgrade your systems to modify the business environment.
You need to change your car’s oil regularly to keep the engine in good condition. System health checks, usage reports, and overall system performance investigations are items that the maintenance crew would perform as the first step in this type of maintenance. Further steps would depend on the system behaviour, but the rule of thumb is to eliminate data inconsistencies, performance bottlenecks, update documentation and overall ensuring that everything runs smoothly.
How maintenance is being provided
First of all, please note you may not need all kinds of maintenance. Or if you do, it does not have to be done all at once. New features, for example, are only required “as needed”, so maybe start by thinking about when you need a new set of features to be ready.
Your delivery team should know the best way to plan the maintenance and focus on creating a schedule. You should receive a plan of maintenance work planned. I would strongly recommend to have at least one adaptive maintenance performed per year and regular preventive maintenance at least quarterly.
Usually what you can expect from the maintainers is a monthly/quarterly report of the system's health. It should give you an idea of the condition of your system and if there are any items to be worried about.
Generally, maintenance depends on the size of your system - the greater the enterprise, the more maintenance is required.
Maintenance is not just “nice to have”
Do not have any doubt. If you have digital tools, you must conserve them the way you would do with regular hardware like a chainsaw, lawnmower or your car. If you decide to cut the cost of maintenance, you may end up with a greater cost when things start to break at the most inconvenient time. I suggest to look at the maintenance costs as an investment which results in lower costs of running the business in the long term.