Most of us have at some point in our lives purchased something like a car or a house that we know is going to require upkeep. A new car may be squeaky clean and running smoothly when you drive it off of the lot, but we all know that if you don’t change the oil, rotate the tires, or drive it through the car wash from time to time, that neglect is going to catch up to you quickly.
In the tech world, it is important to adopt a similar mindset. If software, particularly web or mobile software, is left unattended for long, problems will inevitably start to surface.
Part of our onboarding process with new clients at Tyrannosaurus Tech is helping them understand and embrace the importance of maintaining software. For any web or mobile application, ongoing efforts (and budget) will be necessary to keep the application performant, scalable, and secure. Conversely, not investing in ongoing maintenance of software will sooner or later come back to bite you whether that is in the form of bugs, slow performance, crashes, security breaches, or all of the above.
Let’s face it, building quality software isn’t cheap, so taking good care of it is important. The truth is that not investing in ongoing maintenance can ultimately cost more (and be more painful) than progressively investing starting day 1 after launch.
Circling back to the car analogy, if you saved up and bought your dream car, it would be crazy to skip oil changes and risk complete engine failure, right?
For this reason, ongoing maintenance is an important consideration when discussing project budgets. A budget of X may be adequate to get an application launched but if plans aren’t in place for post-launch expenses, it can be a rude awakening to everyone involved and can degrade the value and momentum of what has already been created.
Depending on the product, maintenance costs aren’t necessarily overbearing but they are indefinite. Of course, with our clients, the hope is always to be doing more than simply “keeping the lights on.” We want to help products evolve by developing new functionality, responding to user feedback, and finding ways to further drive adoption and engagement. In the dynamic world of technology, simply maintaining your software is often not enough for long-term success.
You might be asking…what kinds of maintenance costs are you talking about? And why are they, as you say, unavoidable and indefinite?
Simply put, there are two main reasons maintenance costs exist for web and mobile applications…
- They leverage 3rd party tools and infrastructure (and these cost money).
- The ever-changing nature of the web and the technologies your application is reliant upon requires staying on top of necessary tweaks and upgrades.
Let’s look at a few examples of typical software and maintenance costs you might encounter:
- If you’re hosting your app on Amazon Web Services, Google Cloud, or Microsoft Azure, there are ongoing fees for leveraging those services and resources.
- Your app is likely leveraging 3rd party tools for some of the functionality (think Auth0 for user authentication, SendGrid for transactional emails, or Stripe for payment processing) and all of these tools have costs associated with them.
- In the case of a mobile app, Apple may make changes to their iOS, to their terms for being available in the app store, or to hardware with a new phone release. In order to keep your app functioning properly and available to your users, tweaks must be made.
- Your application may be leveraging APIs (application programming interfaces) in order to integrate with other tools. For example, maybe your app utilizes Zoom for in-app video conferencing. Oftentimes, these APIs change. If corresponding adjustments aren’t made, these changes can break your app.
- If usage of your app grows (whoo hoo!) or changes in some other way (maybe users in a different part of the world start adopting the app), updates and optimizations may need to take place to help your app scale and remain stable.
- Various programming languages and frameworks are constantly evolving. This means the versions being utilized within your app need to be updated from time to time. If they fall too far behind, this technical debt can eventually result in bugs, crashes, and more.
These examples help illustrate why we here at Tyrannosaurus Tech embrace the idea that “software is never done” and ask our clients to acknowledge this reality going into any project. Articulating this early and often leads to healthier budgeting discussions and mitigates post-launch surprises.
It is also important to help clients understand that once they are up and running, hey, they are in the tech business! Essentially, once the product is built and launched, the client becomes a technology company and that means staying up to date and budgeting for the ever-evolving world of tech.
The eco system your software is in is constantly changing and software must exist in harmony with that system. If you aren’t upgrading infrastructure and keeping the ecosystem “healthy” and up to date with the latest technological changes, the tool your users get so much value from is going to quickly land on shaky ground.