Credits : Techrepublic
Mobile apps are like living organisms: they require care and feeding in the form of updates to keep them relevant and useful. However, the process can be tricky at times, depending on the type of app, the features it offers, the security details involved and the information the app processes or stores.
In my last article I wrote about ways to build reactive mobile apps which focused on tips for designing apps which react to user needs and actions. As a follow-up to this piece, now let’s talk about how to keep those apps updated for the maximum benefit for your users.
I chatted with Erez Rusovsky at Rollout, a company which provides a native iOS solution that helps organizations fix bugs and push live updates on the fly to deployed applications, as well as ensure developers are able to retain the control of their apps after they deploy them to the App Store.
“The mobile app market has become a $51 billion industry and 79% of U.S. companies say mobile apps are a factor in their success,” said Rusovsky. “Yet the distribution model for mobile apps is completely out of the control of the creator once in the hands of the user. As more companies rely on mobile as a critical business driver, it is not only frustrating but costly if your app experiences a bug or hiccup and waiting hours, let alone days, this can bleed revenue or customer trust from your business.”
Web and SaaS solutions can continuously deliver and deploy apps with plenty of open-source and commercial solutions. Mobility doesn’t offer the same diversity. Only widespread apps such as Facebook and Airbnb have their own in-house deployment solutions. However, we’re seeing increased options for mobile development solutions now; third party tools can allow companies to make remote changes without releasing new versions. Examples include mobile testing solutions like Optimizely, which allows companies to tweak the user interface remotely, and remote configuration solutions such as Firebase Config which can change app configurations remotely. Another example would be marketing automation solutions such as AppBoy which allow adding in-app messages on the fly.
Given these challenges, here are some tips on how to formulate a reliable workflow for your mobile app update process. I devised the first four based upon my experience as a system administrator, the next six are Rusovsky’s recommendations from a software development perspective.
Mobile apps are like living organisms: they require care and feeding in the form of updates to keep them relevant and useful. However, the process can be tricky at times, depending on the type of app, the features it offers, the security details involved and the information the app processes or stores.
In my last article I wrote about ways to build reactive mobile apps which focused on tips for designing apps which react to user needs and actions. As a follow-up to this piece, now let’s talk about how to keep those apps updated for the maximum benefit for your users.
I chatted with Erez Rusovsky at Rollout, a company which provides a native iOS solution that helps organizations fix bugs and push live updates on the fly to deployed applications, as well as ensure developers are able to retain the control of their apps after they deploy them to the App Store.
“The mobile app market has become a $51 billion industry and 79% of U.S. companies say mobile apps are a factor in their success,” said Rusovsky. “Yet the distribution model for mobile apps is completely out of the control of the creator once in the hands of the user. As more companies rely on mobile as a critical business driver, it is not only frustrating but costly if your app experiences a bug or hiccup and waiting hours, let alone days, this can bleed revenue or customer trust from your business.”
Web and SaaS solutions can continuously deliver and deploy apps with plenty of open-source and commercial solutions. Mobility doesn’t offer the same diversity. Only widespread apps such as Facebook and Airbnb have their own in-house deployment solutions. However, we’re seeing increased options for mobile development solutions now; third party tools can allow companies to make remote changes without releasing new versions. Examples include mobile testing solutions like Optimizely, which allows companies to tweak the user interface remotely, and remote configuration solutions such as Firebase Config which can change app configurations remotely. Another example would be marketing automation solutions such as AppBoy which allow adding in-app messages on the fly.
Given these challenges, here are some tips on how to formulate a reliable workflow for your mobile app update process. I devised the first four based upon my experience as a system administrator, the next six are Rusovsky’s recommendations from a software development perspective.
1. Have a dedicated app update release schedule
Releasing updates in a haphazard or random fashion is a recipe for disaster. Updating an app twice in one month then not at all for six months looks unprofessional and sloppy. Decide how many feature revisions or additions should trigger an update – whether 2, 5 or more, and devise a standard schedule such as releasing updates on a monthly or quarterly basis.
Security-related updates may necessitate more frequent or “one-off” releases. It’s more important to push out a code change which protects confidential data than adding new fonts or a new icon, so ensure users understand the difference between security fixes and standard app revisions – and the urgency of installing the former as soon as possible.
2. Develop a deeper understanding of issues and areas of improvement
To get the best analysis of what issues your app faces and where it needs to be toned, utilize functions such as screen recording, smarter bug diagnostics with the ability to examine error logs on the fly, analytics of app usage and crash reporting functionality. You need a mechanism to review where the pain points lie as well as the high-traffic areas within your app.
3. Devise a standard method of app update notifications
Formulate a plan for notifying users of app updates and providing them with options; is it an alert within the app, an e-mail announcement, a text message or some other mechanism? Avoid the possibility of repetitive or unwanted alerts, but make sure to include a list of some of the advantages the update entails; new features or options, better performance or stability, etc. Make sure to include contact information for support if needed to help users navigate problems with app updates.
4. Monitor app update statistics and feedback
Check to see how rapidly users are updating your mobile app and revise the above steps if needed based upon results. Are security updates not being applied as quickly as they should? Do you need to be more aggressive (or less so) with your announcements? Is user feedback reporting too many problems, or an overly cumbersome update cadence? See what, if anything, needs to change to improve the process.
Dynamic analytics can also be helpful. Some of the analytics platforms today (such as Mixpanel) allow you to dynamically change/add analytics allowing you to gain more flexibility and avoid another release just to fix/change a minor issue.
5. Conduct thorough app testing when preparing updates
You should conduct internal QA, beta testing and distribution testing to ensure successful delivery of the app updates on an internal basis, with app users familiar with the code and functions who can spot potential issues or complications. Ensure you have the right toolset to make beta testing more efficient and automated.
6. Take advantage of remote configuration
With this model the data in your app is no longer hard-coded and you can use remote configuration components to set it up or change it depending on user need and options. For instance, altering the welcome message, controlling how many times an ad is being presented (if at all), or implementing parameter values that affect the app such as game complexity level, the color of the screen, etc.
7. Deploy new features without immediate activation
Don’t hard code a feature activation into the updated app (meaning this change does not take immediate effect until you’re ready). Then you can decide when to activate the feature remotely and to whom, so you can now release a new version and test new features gradually. Furthermore, you can roll back a misbehaving feature with minimal impact.
8. Use feature flagging
Feature flagging means you remotely decide or test who gets what experience; users may have different needs or preferences and this allows a focus on particular features based on who may gain the most benefit. For instance, a sales executive can utilize a sales-related component of an app, or a marketing analyst can focus on the social media aspect to spread awareness of a product.
9. Identify how to work with bugs/issues in production
Decide how to engage in damage control and fix bugs remotely, whether through new app versions or remote configuration changes. This is essentially what Rollout does; it allows you to deploy a hotfix / patch the app remotely to help contain issues and notify users about quality issues, and you can deploy a change without a version release.
10. Work with Native vs Hybrid or JavaScript based solutions
Native language solutions are straightforward. Hybrid based solutions (which usually use both JavaScript and a native language) can update the JavaScript code from the backend without a new app version release, adding some agility. Some companies are willing to pay the price of decreased app performance to gain the agility of javascript updates.
React Native by Facebook takes a different approach as a hybrid solution that does allow for JavaScript updates (which means remote code update) and it has almost no performance penalties when compared to a native language app. Microsoft also has a solution called CodePush to streamline the process of JavaScript remote updates.