If your company is planning to invest in a custom mobile app, it’s important to have a big picture view of your ongoing expenses…beyond the initial capital expenditure.
We want to help you with that.
Your ongoing cost of ownership includes items in several categories. Some, or all, of these will apply to your organization: routine maintenance, bug fixes, technical debt, new features, hosting, help desk support and training.
Let’s look at the ongoing costs of a custom app in more depth.
1. Routine Maintenance
It’s common knowledge that cars need maintenance (oil changes, tire rotations), and homes need maintenance, software is no different.
You should plan to have your developer on retainer for a certain number of hours each month (or quarter) to handle the typical maintenance items I’ll cover below. The cost of the maintenance retainer will vary depending on the complexity of your app, so this is something to discuss with your developer.
In the world of mobile apps, routine maintenance includes:
a) iOS/Android Compatibility Updates
Once a year both Google and Apple release a major update of their operating system (OS). Your mobile app will be installed on top of those operating systems, and when your users update their device to the latest version of iOS or Android, you’ll want to know in advance that your app is compatible.
It is not uncommon for certain features of an app to stop working when the underlying OS on the phone is updated. Ensuring your apps are compatible with the latest versions of iOS and/or Android is a bare minimum maintenance requirement.
Fortunately, Google and Apple release beta versions to developers, in advance. This gives us time to test your applications against the upcoming version, and proactively fix any issues so your users aren’t impacted.
Ensure that the maintenance plans your developer offers includes this.
b)Device Compatibility Updates
If you’re an Apple user you’ll remember when the company released their iPhone 6. The iPhone 6, and iPhones since then, are noticeably larger than previous generations.
If you had owned an iOS app at that time, you would have needed to have your maintenance team review every feature of your app on the larger screen size to be sure the design scaled up. They would also need to submit an update to the app store listing with screenshots of your app at that larger size.
This type of maintenance is unpredictable (i.e. we don’t know what new devices will be invented in the coming years) so it’s best to consider it an “as-needed” service that can be addressed with your maintenance retainer.
c) Security & Miscellaneous Updates
Occasionally, a third party library or framework you use will release a new version. It’s important to keep on top of these as they usually address bug fixes or security issues. You maintenance plan should include time to check and update any 3rd party code or components that your app uses.
2. Bug Fixes
You may not notice any post-release bugs if your app was well-tested before it was released. Or at least not any that are easy to find or part of the core functionality. But, the more complex the software, the more likely it is bugs will crop up, even if infrequently.
Your team will keep track of these, prioritize them and decide which need to be fixed right away, which can wait, and which might wait forever.
3. Paying Down Technical Debt
Technical debt is worthy of its own dedicated blog post. It’s what happens when you make a decision while developing software, that results in wanting to change something in the future. This includes:
- The decision to go light on test coverage now, which makes testing take longer later, so you want to go back later and write more automated tests
- The decision to code something in a less than optimal way because it will save time now, later you want to go back and update it
- The decision to use a certain 3rd party library because it will save your team months of time now, but you need to update that library later
Like financial debt, technical debt grows overtime, especially if not managed.
Unlike financial debt, technical debt is unavoidable. You can make choices to reduce it, but new and better ways of doing things will come along, technology changes. You can’t get around this one folks.
It is imperative that you include time in your budget for paying down technical debt. Your developers can advise you here on how much time is recommended. If you do not, the small amount of technical debt you start with will turn into a mountain. FYI – opting out of routine maintenance (described above) is a form of technical debt that grows shockingly fast.
4. New Features
Sometimes companies make the mistake of thinking version one of their app will include every feature they’ll ever want or need. That is not the case. Inevitably, users will make requests you did not anticipate and even your own team will have new ideas.
This is the nature of technology, it’s always changing. Imagine if Apple considered the first iPhone a final product, or Microsoft considered the original version of Windows as good enough. It’s just unrealistic. Your company absolutely needs a yearly budget for new features.
This budget should be separate from your standard maintenance retainer. Please discuss this with your developer. Once the initial development is over you’ll all have a better idea of what the next year of updates may look like. Your developer can also make suggestions based on their very thorough familiarity with your code base, your approximate yearly budget and what is most important to your team, and users.
5. Managed Hosting
Your company may already have access to hosting services or servers that your application can piggy back on. If not, it will be necessary to purchase managed hosting.
Your developer can explain what you’ll need once they finish the system design stage of your project.
If your developer does not provide managed hosting as a service, and you don’t have an internal IT department or person, you’ll need to find a company to provide hosting services.
6. Help Desk Support for Users
Depending on the size of your existing technical support department, and the number of users who will have your app, you may be able to piggy back on the support team you already have.
In any case, you’ll want to be sure you have resources on hand for when the inevitable happens…a user can’t figure out how to use your app or has a problem (either real or perceived) with it.
Users of your app may be internal employees or external customers. In both cases, you’ll want to have someone(s) on hand that they can contact for help. The more users you have, the higher your support needs will be. At some point it’s advisable to have a technical support department that can address user issues and funnel bugs to your product and development teams.
If you don’t already have an internal support department you can choose to: hire someone, reallocate existing resources, or outsource your help desk needs to a third party provider.
7. User Training
Depending on the complexity of your software, this could be a minor consideration, or it could be more substantial. As with any applications your team will need to use as part of their job, a time allocation should be made to getting new users up to speed with your app.
I hope you’ve found this information helpful. The investment in custom software is an important one, and getting CFO approval will be easier when you have a clear picture of the ongoing operating expenses related to this investment.
If your team has already decided to move forward with a custom mobile app, please reach out to us, we’d love to discuss the possibilities.