Often overlooked, to many businesses’ detriment, good preventative maintenance policies in the software lifecycle can reduce emergencies. In addition to increasing system uptime, software preventative maintenance also helps regulate blood pressure of the software stakeholders and reduces cardiac risk to system administrators. We explore a variety of software preventative maintenance options and their effectiveness.
The primary tools in software preventative maintenance are tests, reviews, and assessments. Security tests should be performed at least once a year, trouble tickets and maintenance requests should be reviewed yearly for possible software improvements, and backups and other systems should be assessed quarterly to make sure that fail-safes are in place and properly functioning.
More than any other class of system failures, security leaks tend to make newspaper headlines. If the software is public-facing and contains any sensitive user information, such as credit cards or social security numbers, it is absolutely vital to conduct a yearly security analysis.
An effective security analysis should consist of both automated tests and individual review. Automated tests barrage the system with a multitude of inputs and try to exploit common loopholes. Individual reviews, on the other hand, will focus on the specific situation and provide recommendations for improving the security of the system. If only one can be chosen for budgetary reasons, the individual review will be more effective. Still, the automated test very often reveals additional software loopholes that are easily overlooked.
Security vulnerabilities can be as simple as incorrect security settings and lack of encryption of sensitive information, to more complex issues such as buffer overflows and even lack of physical password security. Depending on the necessary security level of the software, a good analyst will take your needs into consideration and provide recommendations based on industry standards.
Trouble Ticket / Maintenance Request Review
If there is one area that can significantly save on costs or improve system performance, it is the trouble ticket review. It should be conducted at least once a year to locate primary problem areas of the system. Significant problems in a particular area of the software often point to architectural issues. A redesign of that malfunctioning component will end up both reducing support costs, and improving end-user productivity.
The maintenance request review can also be an excellent time to brainstorm long-term system enhancements. Adapting the software to changing industry needs can provide a competitive advantage and position the company to gain future market share. Other enhancements might improve the user experience and increase productivity. Without a conscious effort to continually improve, all software will eventually become irrelevant and need to be rebuilt or phased out.
Software Checkup and Fail-safe Review
At least once a quarter, any line of business software should be reviewed to make sure that fundamental development processes are followed. Backups should be checked to make sure all important information can be recovered in case of system failure. In addition, it is good practice to run a test restore at least once a year in order to make sure that the media is valid and software is in place to quickly respond to problems.
In addition to backup, the version control system is a vital component of the development process. If a small team or one developer is maintaining a piece of software, it is a good idea to make sure that version control policies are followed during a quarterly review. Uncommitted changes can lead to significant issues down the road, either in the case that the developer’s local copy is lost, or if a specific version needs to be restored.
Finally, an effective software checkup should also consist of a database review. The database review should make sure that size of the data tables is within system parameters, and should include a quick load analysis. If the software is performing poorly during peak load times, it may be necessary to optimize the program in order to increase end-user productivity. On the other hand, if the data has grown too large, archiving or distributing data could significantly increase system performance.
As with any system, mechanical, social or digital, lack of preventative maintenance often results in problems at the least convenient times. Make sure that your software is kept up-to-date and avoid problems with an effective preventative maintenance plan.