Previously, we have talked a lot about Android app development in this blog, but today let’s talk a bit about how you can release your apps as effectively as possible ensuring that your users have the most stable and best possible experience that they deserve.
Now suppose you are at a point when you are done developing your app or the features you were working on and want to release it to your users. If you are an indie developer, you have to do the hard work of manually testing the new as well as all the existing functionalities of your app all by yourself. It’s great if you have an automated suite of tests (unit & integration) covering your codebase. This can save a hell lot of your time in the testing phase.
If you are working in an organization, you will surely have a QA (Quality Assurance) team who can thoroughly test the entire feature set (manually or mix it with some automation) and make sure that the product you are delivering is stable, bug-free and of top-quality.
So now, can you just go ahead, hit the publish button and release your app to your entire user base all at once and simply relax?
Hold on for a second. Let’s answer a few questions first.
Can you be absolutely sure that your app is free from all critical bugs? Can you be confident enough that there are no major crashes hiding somewhere in your app? Will your app work in the same way and without any issues in all Android versions?
No, certainly not.
Making A Small Alpha Release
Before directly releasing your app to Play Store, consider making a very small release to a controlled group of users like your friends, colleagues, etc. If you are in a company, you can share it with some of your peers and ask them to use the app for a day or two and give you feedback.
Don’t make this alpha release group larger than 5–10 users.
Don’t make this alpha release group larger than 5–10 users. The smaller it is, the more focused feedback you can get.
The idea is to have some quick initial feedback on the features you have developed. Your alpha users need to be the ones whom you can directly communicate and get quick feedback from.
You can get to know if your users are finding any difficulty in using some of the features you have developed or if they are having a hard time discovering some of the new stuff that you have put in.
If there are any glaring bugs somewhere that got slipped from hands of the QAs, this alpha release can help you catch them. Maybe a particular feature in your app is crashing on a certain device or Android version. If you have been developing Android apps for some time now, you will know how common this is.
But catching these kinds of bugs can be tricky and this is exactly where tools like Instabug can save your day. It is a tool that is loved and trusted by companies like PayPal, Yahoo, SoundCloud, Lyft and many more.
It can give you really detailed crash reports that can help you find out the exact reason for these crashes like a complete stack trace of all the running threads, a plethora of device metadata, detailed view hierarchy, and so much more.
With a good tool in hand, you can find out, prioritize and fix bugs faster.Your alpha testing phase should not typically exceed two days. Keep it short and sweet. The faster you can get feedback, the better it is.
Creating an alpha release is very simple as well. In the “App Releases” section under “Release Management” in your Play Store Console, you will find an “Alpha” release channel below “Production” and “Beta”. You can customize the list of your alpha users and then create a release under it.
It’s Time For A Larger Beta Release
If your alpha release went successful, its time for you to go for a bigger beta release. There can be essentially two types of beta releases — an open beta release or a closed one.
In an open beta release, anyone who is willing to join your beta program can do so and help you in testing the app before releasing it to production. You will have a variety of users, but less control over who is using the app. Receiving feedback from such uncontrolled group of users can sometimes be difficult if you don’t have the right tools to help you.
But in a closed beta program, you can define the user group and have better control over who can use the app and who cannot. You can also invite users of your choice and allow them to use the beta version of your app and provide you with valuable feedback.
You can decide which one to go for depending on your business needs and app’s use case. If you are looking for more feedback from a larger audience and on a variety of devices and Android versions, then an open beta is the one to go for, but if you want to get your app tested by a controlled group of users from whom receiving feedback is easier and quicker, then you should opt for a closed beta release.
But the thing that is of prime importance during the beta phase is fast and effective feedback and precise monitoring. This is where some of the tools provided by Instabug have proved to be invaluable to me.
You can use their powerful and highly customizable in-app bug reporting tool to get quick feedback on various bugs and crashes directly from your users. It is very intuitive and matches perfectly with the UI of your app.
It becomes super easy for the users to provide you with valuable and detailed feedback directly from inside the app. They can provide screenshots (blur sensitive data too), screen recordings, annotate the important parts and can write detailed messages to convey their feedback.
Now it’s your job to pay keen attention to these feedbacks and act upon them. Once you are sure that you have addressed the important issues, suggestions, and feedback from your beta testers, then it’s a green signal for you to go ahead.
Typically, you will have your app already in the alpha channel that you had put before. All you need to do is just press the “Release to Beta” button and you are good to go.
Bonus: Check out this link to learn some of the tips and best practices for making effective beta releases.
Pro Tips For Better Alpha/Beta Testing
Provide a channel for testers to send you feedback
Ensure that your testers have some way to send you their feedback. An email or message forum works well, but doing that requires your beta testers to have some prior experience in bug reporting and also to accurately provide you with the steps to reproduce it.
Even after that, there can be several missing steps that can make it difficult for you to actually reproduce these bugs, which can be a very good reason for you to try out a much better, easier and faster alternative, like Instabug.
Consider rewarding your alpha and beta testers
Definitely, consider rewarding your users for being a part of the testing process. Freebies go a long way towards building a relationship with your users. It also sets the expectation right, that this is an early release of the app, and there may be issues or defects that need to be captured and fixed. It’s important to make them feel like they are a part of the team who are helping you to make your app better.
Use a proper defect tracking system
Use a tool for tracking your bugs to know what needs to be fixed and with what priority. There are many tools that might be useful, like GitHub, Jira, Trello or you can also use Instabug’s dashboard for organized reporting and tracking.
Bonus: Check out this link to learn some of the tips and best practices on making effective beta releases.
Where to find Testers for Your App?
Finding the right group of users to test your app in the early stages might be hard but here are some quick resources for you to get started -
XDA Developers: It is probably one of the best places to find active testers for your app. These are typically those kinds of users who know how to get into the depths of an app and find bugs and loopholes buried deep in it.
Twitter: You can find the most active testers on Twitter by using some common hashtags like #betatesting #betatesters #testmyapp #indiedev, or scout for potential testers by checking public Twitter lists that have been compiled by other users.
Beta Family: A beta testing service for Android apps where developers get a chance to have their beta apps tested by real people, and users also get a chance to try out some cool apps before they are released in Play Store.
Betalist: Another awesome service that provides access to upcoming internet startups, products and lets you discover and get early access to the future and also get some really valuable feedback from the enthusiasts.
Erli Bird: It is a crowd-sourced beta testing service for Android, iOS apps, websites and desktop apps. It let’s you get your app tested with real people, on real environments and get fast and useful feedback from your testers.
Hacker News: HN’s community loves to try out new things which makes way for a great opportunity to get expert feedback from a very tech-savvy audience. Submit your app to ShowHN, but make sure to follow the rules.
Let’s Start A Staged Rollout
This is applicable only if you are updating your app from an older version (and not making a new release) and if your app has got a big enough user base.
Even if you have got a green signal from your beta testing phase, you still cannot be 100% sure that your app is ready to face the wider audience.
There still can be some bug or crash hiding somewhere that can bite you hard.
There still can be some bug or crash hiding somewhere that can bite you hard. Maybe, you have missed a particular edge case that has slipped through all these previous phases but can badly impact your users. Or, maybe there is some device specific issue that no one has encountered yet in the alpha and beta stages, but can cause havoc if it goes live in a full rollout.
This is where the staged rollout phase can help you a lot. If your app has got a huge user base, start with a very low rollout of 0.5%–1% and then gradually keep on increasing the rollout based on the results. If you see any critical issue anywhere, don’t hesitate to halt the rollout, fix the issue and then resume again.
The main idea here is to actively monitor your app’s stability and bug reports. If a user has reported some issue, take it seriously. Maybe a bug that you are considering to be of least importance can cause mayhem when you release your app to your entire user base.
You can use some of the really useful features in Instabug to understand and fix these bugs quickly. Instabug can collect detailed request/response logs so that you can easily understand if the issue was because of some server failure or it was a client-side issue.
If that doesn’t help much, you can use the User Step Tracking feature to understand what exactly the user did that led to the bug or the crash. This can be immensely helpful in reproducing the issue precisely and getting them fixed fast.
Full Rollout To Finish Things Up
If your app has reached around 25% of the total user base and there is no major issue anywhere, then you should have a pretty good confidence that it is stable enough and ready to face the entire user base.
Now you can quickly increase the rollouts and make bigger jumps to reach 100% really quickly. Once you reach 100%, the release process is done for this time.
With all these phases before a full rollout, it is very difficult for bugs to slip through and reach the wider audience. The idea here is to create the smallest possible user group and slowly increasing its size to test your apps stability, health and performance progressively instead of doing a big bang full release at once.
It is also very important for you to have good tools to help you monitor bugs and crashes and receive direct feedback from your users as quickly and easily as possible. I highly recommend trying out Instabug for yourself and seeing how good it actually is.