Google this week began to make its staged release feature available to Android developers. The idea behind this functionality is to let app writers seed their applications to a small number of users to ensure there are no bugs before a wider rollout to the entire installed base.
The benefits to staged rollouts are many and the drawbacks are few. Staged releases only expose a tiny fraction of users to the latest code. If there's a bug or other problem, only this small number of users will be impacted. Moreover, if a bug is found, the rollout can be halted until fixed. This is widely viewed as a safer general practice than pushing new versions to all users at once.
"Staged releases as an essential part of how Google does app releases, allowing you to manage the inherent risks of a new release by making a new version of your app available to just a fraction of your users," explained Google's Peter Armitage, Soft Engineer, in a blog post. "You can then increase this fraction as you gain confidence that your new version works as expected."
Google firmly believes staged releases will mitigate the uncertainty of distributing new versions.
Staged releases work for apps big and small. For example, small developer shops may not have a quality assurance team. That doesn't preclude the developer from testing the app on a few different devices, perhaps those owned by employees or even friends/family -- people with a direct line to the developer to complain about bugs.
Larger apps can employ an open testing track with perhaps 5,000 testers. These testers will be able to provide feedback privately to the developer (rather than publicly in the Play Store) through a form. Huge apps with 1 or more million users may first stage releases to 1% before graduating to 10% and eventually 100%. Apps will need to have more than 100,000 testers in order to be deployed on the test track.
What to do if there are bugs? First, stop the rollout so new testers don't download the broken app. This will prevent people from upgrading to the new version or downloading it from the Play Store. Unfortunately anyone who's updated the buggy app cannot backtrack to a stable version.
Google says if the problem is on the server, the best practice would be to resolve the issue on the server and then continue forward. Resuming from this step lets testers gain access to the app, including those who may have already downloaded it. If the problem is the app itself, you'll need to fix the app and redistribute it with a new version number. Then developers can start the staged release over again.
More information is available here.