Prepping for Production Releases
The release process is one of the most important parts of the software development lifecycle. To avoid expensive failures, it is critical to outline as many of the potential scenarios that may affect both existing and new users as possible and move forward with a strategic plan.
Planning for All the App Release Variables
Mobile app releases to public app stores like the Apple App Store and Google Play cannot be rolled back. Because of the all-in configuration, development teams must account for this irreversible nature from every angle prior to a mobile app’s production release. To help reduce the risk of bad releases, it is important to build in specific techniques and practices (listed below) long before the final submit button is pressed.
- Plan for extensive quality assurance (QA) and beta app testing, QA testing must include app update scenarios from previously released app versions up to the current candidate for release app.
- Commit to a staged rollout to limit the number of users that could be affected by issues with the app.
- Include feature toggles and A/B testing with the long-term rollout plan to gradually release new app features.
- Make in-app updates obvious and front-and-center for users to ensure they install critical app revisions. Android in-app updates makes the case for how best to highlight performance improvements and fixes.
- Explore the option of a hot code push if your mobile development technology supports it (this is subject to each app stores' publishing and review guidelines).
Testing Challenges that Could Tax a Production Build
To avoid additional mobile app testing challenges, production builds must only use production web services for the security of the developer and ultimately the end user. Builds hosted outside of these reputable production web services have the potential to be more vulnerable to security breaches. A 12-factor mobile app production build must not allow users to switch to a non-production backend environment at runtime. Hence, a production mobile app build is a binary difference from builds for other environments (Dev/QA/Staging). To mitigate some of the risks involved in this process, developers can tap the following techniques:
- Limit the differences between production and non-production app builds to a small number of compile-time configuration items (e.g., only switch backend endpoints).
- Use mobile app beta distribution channels (e.g., Apple TestFlight and Google Play Beta Channels) to make sure you are testing the same binary that will be released to the public app stores.
To secure the best outcome for a production release, it is vital to prepare a checklist for the release process and keep it updated. Focus on monitoring the application after each type of change, like updates, hot code pushes or backend changes. This will help keep app performance optimized for both developer and user.