05.17.23maintenance infrastructure support
HOW TO SUPPORT YOUR CUSTOM SOFTWARE
Say you have a custom software package that helps you manage your inventory and sales. The software is a success and you are happy with the results. However, a year goes by and you start to notice that the software is running slower and some features are not working as well as they used to.
This is a common scenario that highlights the importance of software maintenance. As the software is being used, it's interacting with other devices, platforms, and technologies that are constantly evolving. In addition, security vulnerabilities can arise, which could lead to data breaches or other serious issues.
At Shift, we leverage a few tried and true methods to make sure your product stays up to date. The following blog post will walk you through our process, why you need to keep things up-to-date and rough ballparks for how much you should budget.
The Nature of Software
Your software does not operate in isolation, as it is part of a complex ecosystem that includes other underlying technologies that may not be immediately visible. These other technologies are ever evolving and need to be maintained and updated. When those updates are done your custom software will also need to be updated to take advantage of the new features provided from these vendors. As a result, your software platform will undergo various transformations over time.
Take for example, Apple and Google. These companies release new phones and operating systems almost yearly. Every change and update made by them causes downstream changes for your apps as well, which is why you see several app updates needed after a new OS install. No one wants a broken application or bad experience for their customers so it's important to make sure the custom software works and operates when these changes occur.
Vulnerabilities
Security and associated dependencies have been in the news often lately. Experts and software vendors are continuously researching and analyzing potential weaknesses in software systems. These vulnerabilities can vary from simple oversights in framework usage to complex bugs in the hardware on which the software operates.
One of the easiest ways to make sure your software is secure is to keep up to date with your projects associated vulnerabilities. At Shift, we deploy automated tools that will scan your project's source code and alert our engineering team as soon as updates are available.
Continuing Work
Continuing development work and bug fixes are also critical reasons to prioritize software maintenance. It can take 3-9 months for a new software team to ramp up so having someone who can quickly jump into the codebase to make a critical change is vital, and maintaining institutional knowledge by ensuring there's always an employee familiar with the code can help achieve that. Without this, completing feature or bugfix work can be challenging and time consuming, particularly if working on a codebase a developer has never seen before.
How Often
By now it’s clear that it’s important to plan for regular maintenance work to ensure your software stays secure and functional. But how often should you do it?
A good rule of thumb is to schedule major maintenance four times a year. For most projects, this is a reasonable timeframe to catch and fix any issues that have arisen.
In addition, consider these factors when deciding on a maintenance schedule:
1. Check your ecosystem's release cycles. If your software relies on platforms like iOS or Ruby on Rails, you should update it when those platforms release updates. By staying on a long-term supported (LTS) OS, you can quickly patch vulnerabilities if they're discovered.
2. Assess your industry's risks. If you work with sensitive data, you'll need to plan for more frequent and extensive maintenance to minimize the risk of a breach. If your data is lower-risk, you can space out your maintenance cycles a bit more.
Our team at Shift will help you along the way, but these are a few tips to monitor and track your software’s health.
Budget
When it comes to ensuring the long-term success of your project, planning for regular maintenance is a crucial investment. But how much should you budget for it?
For starters, Shift recommends allocating at least one week of maintenance time for almost any application. This will give you enough time to get reacquainted with the codebase and perform thorough testing to ensure that any updates or fixes don't break anything.
For more complex apps, a good rule of thumb is to set aside between 15% and 20% of your initial investment each year. While you may not always use the full amount, having this budget will help you prepare for unexpected maintenance needs and ensure that your project stays up to date and secure.
Maintenance is Where It’s At
Remember, neglecting regular maintenance can result in big surprises down the road. So if you want your project to be around for years to come, make sure to prioritize investing in its longevity through ongoing maintenance and upkeep.
Not sure where to start? Let’s have a convo.
This article was written by Eric Rowley, VP of Operations at Shift.