How To Maintain A Mobile Application – Ongoing App Maintenance
“What do I need to be aware of when my app goes live on the App Store?”
That’s a damn good question, and without preparing for it you’ll likely find yourself in a reactive position – putting out fires – rather than pro-actively working on the bigger picture.
Ongoing mobile app maintenance is a must for the smooth running of any medium to large scale application systems. In this article we’re going to look at the 5 most important areas of maintaining a mobile app and dig down in detail-
- Server Management
- Infrastructure & Scalability
- Performance Optimisation
- Technology Integration Management
- Marketing performance
Let’s get started:
1. Server Management
Expect the best, prepare for the worst…
Run a regular back-up of your web-based assets. This should be done bi-weekly at the very least.
Make sure to store your backed up files on a separate server from where you host your live application (main server).Remember, the worst server malfunction could completely wipe out your entire system. So you need to have a backup ready to go for your app maintenance.
Back up files like:
- Your database
- Source-code
- Server configurations
- Etc.
In the early days of your venture you probably don’t need to invest into more heavy duty processes than this. Running fail-safe systems like what Facebook do costs millions of dollars (just to run, let alone building them!).
Your actual mobile application should be safe with Apple, however keep this backed up in a git-repository like Git-Hub…just in case. “Because it hasn’t happened yet, doesn’t mean it won’t” – Graham McCorkill
Server load analysis
Run an analysis on the server load daily to make sure you’re not pushing your server limits. If the server reaches its usage capacity it could crash the online platform altogether.
From a user perspective this is an enormous inconvenience.
What to watch for:
- Spikes and troths
- Growth
Spikes and Troths
Spikes and troths in usage may indicate a need to move to a cloud based server with auto-scaling capabilities. Cloud-based servers like AWS by Amazon and Azure by Microsoft have the ability to scale up and down in server-space in accordance with the usage of your system.
Providing that your system can handle the extra weight, this will stop it from crashing.
Growth
If growth is steady then it’s safe to stick with your dedicated server (physical server). As you start reaching the limit of your server capacity then it’s time to scale up to a server with more capacity.
System Management & Response Unit
“What happens if my server goes down?”
You need to have someone on call who can respond to server malfunctions and who’s trained to get the server up and running again, as quickly as possible.
Unfortunately this isn’t cheap – but it beats rummaging the internet for someone who can fix it immediately, all the whilst your users are deleting your app…
2.Infrastructure & Scalability
Custom-dev VS Common-sense
We can build anything with software. If it can be imagined then we can do it. HOWEVER, that doesn’t mean you should.
Custom development is expensive. Instead, we like to use free and openly available frameworks that do 75% of what we are trying to do create. That’s a 75% saving in cost. Common-sense?
(What is a framework? A pre-designed set of processes that can be used as building blocks for an application, e.g. chat features, push notifications, etc.).
Building apps, like building with Lego
When you first build your system you will (hopefully) have built it on a framework that can be scaled with ease and matched with other frameworks. These should also be easily scalable.
Like building blocks, these frameworks will be stacked on top of each other to increase the functional use of the system.
Using poorly built frameworks and patch-jobs will work for a first release product, and may even save you money. But the ongoing maintenance and development costs will dry out your wallet faster than you can say “I-should-have-listened-to-Logan”.
Make sure you build from scalable frameworks to start with. Explore code-bases like:
See also: Alternatives to Django – Stackoverflow
This is equally important when designing the interface of your application. Certain functions are native to the code-base you’re using. E.g. X-code for iOS, or Java for Android.
Using custom functions are expensive and opens up the chances of mistakes.
Each of the operating systems come with guidelines for how you should design your applications.
Pivoting
If changes to your application are needed then those changes will most likely need to reflect in your back-end (server-side) system as well.
Have you heard that “a square peg won’t fit into a round hole” ? This is especially true in IT development (and even more so in mobile app development).
Though you can marry different technologies together to create more advanced functions, some technologies simply don’t support others.
In these cases the software needs to be modified which can cause a series of issues.
Your best bet is to:
- Have a thorough understanding of what technologies make up your system; and
- Research into technologies that will both support the functions you are trying to create and is compatible with your current technologies.
3. Performance Optimization
Speed is good
Your system can almost always perform better.
There are both major and minor changes that you can make to your server-side system and front end integration (front-end is typically the visible application, also referred to as User Interface) that will speed it up.
Without changing the infrastructure of your server-side system you can integrate technologies into the processes to speed it up.
The most common of these integrations are:
Caching
This is integrated into the front-end (visible application) to store information locally on the device. This removes the unnecessary loading of information from the server (which slows the system down).
File Compression
Compression is useful if your application uses large files like images that need to be loaded from the server, e.g. photo sharing applications.
The way this works is:
- User A takes a photo and uploads it to the application.
- The application sends it to the server.
- Once it hits the server the server compresses the file and stores it.
- When User B receives the file it’s smaller and therefore sent and loaded much, much quicker.
Localisation
Sending information from a device in Australia to a server in Norway takes a lot longer than sending information from Australia to Australia.
By that logic if you strategically set up servers in key locations around the world (that don’t require information to travel halfway around the world) you’ll ultimately create a better experience for your users in those locations.
When making decisions about logic…
…don’t make rash decisions.
The logic of your system should be thoroughly thought through and set up before the application is built. Once it’s integrated and the system is built around it, it’s very hard to change.
Maybe hard isn’t the right term…but EXPENSIVE.
Often times, the change in logic requires a redesign in the system infrastructure.
Example:
Imagine a house built from the ground on up. Plumbing and power cables are factored into the building plan from the beginning. They’re built into the structure months prior to completion – when the house is just a bare-bones-skeleton.
Once the house is completed, or even almost completed, you can’t just pull the plumbing and power cables out. You have strip back the walls, remove fixtures, etc.
Software is exactly the same.
Here’s what you need do:
- Identify what logic needs to change and why;
- Consult with your development team about what you want to do;
- Get them to do the research – this can take some time;
- Have them explain to you the draw-backs (if any) of your idea;
- Decide whether it’s worth implementing or not.
4. Integrated Tech Management
API updates
Facebook, Google, Apple and other tech companies allow you to connect with their system using what’s called an Application Programming Interface (API).
This lets you take advantage of great technologies such as:
- Facebook login
- iOS Fingerprint scan
- Google Maps
- Etc.
These APIs are updated from time to time to ensure their compatibility with new technologies and taking advantage of new ideas.
Some of these updates will mean that you need to update the integration of the API into your system. If you don’t update it then the API will simply stop working which means the function (e.g. Facebook Login) will stop working too. This minor oversight can cause tremendous irritation for your users.
Make sure you:
- Subscribe to developer updates for all your APIs.
- Let your development team know as soon as there is an update.
- Have them research the affect of the update on your system.
- Implement updates of API into your system if necessary.
- Make sure the above is done before the API update goes live.
5. Marketing Performance
User behaviour
You need to keep an eye on your users to find out what they’re doing, how they’re using your system and ultimately, how you can improve it to better accommodate them.
This is most easily (and discretely) done through the use of mobile app analytics tools like Google Analytics.
A/B Split Testing
There are certain elements within your application that if changed or even tweaked slightly, will increase the users’ engagement.
Something as simple as changing the colour of a button can increase the tap-through-rate of that particular button by up to 2500%.
This way of thinking is particularly helpful when you’re trying to guide users towards taking certain actions, e.g. registering their account, share to Facebook, etc.
See also: 3 Quick A/B Split-Tests To Double User Engagement
Key Performance Indicators
What are the numbers you should be watching to determine the success of your application?
As far as marketing goes you need to get clear on these 5 types of numbers:
- Acquisition metrics
- Engagement metrics
- Retention metrics
- Quality metrics
- Behaviour metrics
Once you have a dashboard that display these numbers you will be able to make objective decisions about how to improve your mobile application.
See also: Measuring The Success Of A Mobile App to learn about each of the types of metrics in detail.
Implementation of new features
Every new feature you implement into your system should be isolated and tested – like a science experiment.
Check out our methodology for building mobile applications and see how we set up experiments to test new features.
Do you have something you want to add? Share your thoughts in the comments box below!
Latest posts by Logan Merrick (see all)
- Ep 18: Collective Campus’ CEO on Intrapreneurship and Corporate Innovation - December 20, 2016
- 50 User Engagement Strategies For Planning Memorable Mobile Experiences - December 19, 2016
- Latest Data: App Monetisation Trends And Drivers 2015-2020 - November 25, 2016