“Even as we become more technology-centric, technology still remains one of the least thought-through aspects of program handover.” – Project Balance’s Stacey Berlow
Your application may have launched without a hitch (congratulations!) and you might have implemented your program successfully, as well (good work!), but it always bears repeating: Your job is not done.
When dealing with any mobile application, just as with paper-based programs, there will always be updates required and maintenance to perform. Tackling these requirements is made easier by understanding the different types of maintenance you may need to carry out.
Type #1: Corrective
This is the easy one that everyone thinks of first: Something breaks in your app and you need to fix it. It is funny how often the need for this is overlooked and the assumption is made that once applications have gone through the QA process that they cannot break. Trust us when we say that you do not want to make this assumption.
Be sure to allocate adequate time and funds to cover at least the first few weeks (and hopefully months) of the program. Different issues with pop from edge cases you might not have had time to account for in QA.
Ensuring that users have a way to notify the team of these issues is also often overlooked. There should be a prominent flow within the application and available contact outside the application that allow them to report any issues they face.
Type #2: Adaptive
The second type of maintenance is required when a component outside the application changes and affects the user experience. For instance, an operating system update to a mobile device might require you to update certain aspects of your app for security purposes or even just to operate properly.
Another version of adaptive maintenance is required when information used within your app changes. A country or district map might be changed or data you use in a lookup table might need to be refreshed.
Whether it’s an update to the platform hosting your application or the information within it, things outside your control will change, and you will need to account for them. Keep track of what they might be so you aren’t caught off guard.
Type #3: Preventive
This type of maintenance focuses on avoiding potential hiccups down the road. That can mean you know what issues might come (see above) and are planning ahead for them. Or if you really know what you’re doing, you can set your program up to detect potential faults in your app before you even notice them.
Preventive maintenance can be a server update to handle an expected traffic increase in the future or just regular monitoring of performance. In essence, it’s recognizing that things will change and the more you prepare for those changes now, the less of an effect they will have on your application down the road.
Type #4: Perfective
Perfective maintenance is the time spent enhancing the experience of your app. Development and systems staff spend about half their time working on maintenance issues. Half of that time is spent on perfective maintenance.
These enhancements might be features you wanted to include from launch but didn’t have time or resources for. They are also often borne out of the recommendations of users and beneficiaries you didn’t have a chance to consult at the beginning of your project. Wherever you find them, make sure you list and prioritize these updates in an enhancement list.
Maintenance is often an afterthought and ends up being a major drain on resources if not planned for. Understanding the different types of maintenance that will crop up should help you to plan ahead for each one:
- Corrective: Set up feedback mechanisms for users to report bugs.
- Adaptive: Keep track of the platforms and outside data sources whose updates might disrupt your app experience.
- Preventive: Understand how the number of users or locations your app is being used will require different updates to ensure continued performance.
- Perfective: Record user recommendations and other potential updates to your app with an enhancement list.
There are many more considerations for each type of maintenance, but the first step is putting a name to them. Understand the different approaches and have a plan in place for each requirement. It will be a learning process for your team – understanding how to spot bugs or who is most capable of handling each type of issue – but it will save you valuable time and energy in the long run.