In order to achieve the most value out of the tools you’ve invested in, you need a plan to support them. There are four primary types of support to plan for—two reactive and two proactive. This maintenance helps increase the value of the tool that you’ve already invested in. The two types of proactive maintainence are perfective and preventative. On the reactive side, we have corrective and adaptive maintenance.
Reactive support
Corrective maintenance
Corrective maintainence is, quite simply, fixing a bug. Your development team should give these issues the highest priority. If, for example, you completed a software development project with MainSpring, this type of maintenance is included in our warranty, and we’ll correct those issues inside of that warranty period. While we have rigorous processes to ensure that software is tested, it’s good to know that the warranty is there to fall back on just in case something is found after deployment.
Adaptive maintenance
Adaptive maintenance is an issue that’s caused by an external change to the system environment that your application lives in. Typical examples of an adaptive issue would be a hardware or software change in the hosting environment, or a change in an API used for integrating with another system. While the specific events can’t be planned for, developers can put a plan in place to minimize the impact of any issues that arise.
Proactive support
Perfective maintenance
Perfective maintenance is, essentially, the continued investment in the functionality of your custom application based upon the experiences and ideas from users after roll out. This is the most exciting type of maintenance, as it’s when you really start to reap the benefits from having built a custom application. Your users are providing valuable feedback that you want to implement, so providing a budget and process to incorporate this feedback is invaluable.
Preventative maintenance
Preventative maintenance is similar to adaptive maintenance, but more focused on aspects of the system that users may not see. Examples of this would be changing a data model to increase long-term stability, or developing a more efficient way to execute a complex procedure. These are the changes that make the system less expensive to maintain, better performing and more stable.
Stay tuned for my follow-up blog on how to budget for custom application maintenance.