Progressive Rollout Strategy on Trendyol Android App

Feyza Dayan
Trendyol Tech
Published in
6 min readFeb 15, 2021
Image on welovebug

The sooner you plan, the better the journey.”

In this article, I will explain the rollout process of the Trendyol Android Team, why we are moving forward with the rollout process, what it brings to us, and after the rollout process how we handle issues.

What is a rollout?

Literally, it is known as spreading by opening. Let’s make it clearer, and say an actively changing presentation strategy. What does that mean? Let’s continue with an example. Suppose we are making an application. What do we do before we launch our application? We upload the demo to the phones of a small group of close friends around us and ask them to use our app.

Usually;

  • “I think it would be better if you did this rather than like this”,
  • “There seems to be a problem here if you want to review again”,
  • “It was difficult to understand how to get to the page here, you have to make it easier” requests such as voice.

We review our application according to the feedback of a group of friends and try to meet the requests. After making arrangements in our application, we upload the final version to the phone of another group of friends around us. We collect their feedback and go to arrangements. We do this until our application is mature and then we upload it to the store.

However, we do not send our application to the store immediately. We noticed situations that we were not aware of or missed by making demo presentations in small groups first. If we were to send these errors to all users in the store without editing them, all users would see the errors this time and it would be more troublesome to fix them. Here is a rollout that allows us to present our application to specific parts/groups.

Rollout process on Trendyol Android App

How do we handle the rollout process? Let’s explain.

Starting release process with our CI/CD tool(leylek)

As the Android team, our regression tests begin after the development of our product is completed. For information on regression testing, you can refer to my previous article.

After the regression test is successful, we initially release the new version to 1% of users. We have millions of users. Even 1% of these users are thousands of users. So how do we do this and why?

Image on cheqroom

Before starting the rollout process;

  1. We meet the e-mail requirements. Because users need a Google Account (@ gmail.com) to take the test.
  2. We add test users on Google Play.
  3. We publish internal, closed, and open tests while relaunching. After publishing, it may take some time for the test link to be available to test users.

What does internal, closed, and open testing mean? Let’s define them as well.

Internal testing: This allows us to create an internal test version to quickly deploy our application to up to 100 test users for initial quality assurance checks. It is important that we do an internal test before publishing our app to closed or open channels.

Closed testing: This allows us to create a closed test version to test pre-release versions of our app with a wider set of testers to gather more targeted feedback. After testing with a smaller group of colleagues or trusted users, we can extend our testing to the open version.

Open test: It allows us to create an open test version to test with a large group and show the test version of our app on Google Play. When we run an open test, anyone can join our testing program and send us custom feedback.

You can read the link for more information about the internal, closed, and open testing.

4. In the test link opened to test users, we make sure the installation test is running.

Installation testing is also known as Implementation testing and it is done to check whether the software is properly installed in the new system with its prerequisites and necessary data and is working as expected or not. It is a phase of testing which is done just before the interaction of end-users with the application. It is one of the most important phases in the software testing life cycle.

5. After publishing to internal, closed and open test, if our application passes the build tests(installation test), we initially publish the new version to 1% of users in the production channel.

Image by Upendra Patel on tristate technology

Steps we follow after app goes live

  • We monitor the movements of our users in the 1% segment through the firebase tool.
  • We do crash tracking with Firebase Crashlytics.
  • If we have crashes, we open their bugs and check them after they are resolved.
  • We collect our user’s feedback and go to arrangements.
  • We resend 1% of the package in the store to 5% or 13% after fixing feedbacks, bugs, and crashes. As a team, we make a joint decision about what these numbers will be. At the end of about 1 week or 10 days, our current version can be updated by all our users.
Chart of the number of user per percentage

What are the advantages?

Testing your app gives you the opportunity to fix any technical or user experience issues with minimal user impact so that you can release the best version of your app on Google Play.

When we implement the rollout strategy, we benefit from many advantages. Below are some of them, but not limited to;

  • With the rollout process, we follow an effective presentation strategy.
  • We give social momentum to our products.
  • We prevent big mistakes.
  • We are trying to ensure that the crash-free rate of our application does not decrease.
  • We respond to our users’ feedback early.
  • We fix smaller problems so maintaining is less painful.
  • We take more comprehensive incremental testing.

Steps we follow after the rollout process is completed

Related branch merged to the develop branch

After completed the rollout process, if there is a situation where we need to send an update to the store, the next step we apply is the Hot-fix process. We fix bugs during the rollout process, but we have a procedure that we apply against every situation.

We start the Hot-fix process in the following situations, in a way that does not disrupt the integrity of the application and by considering the software quality;

At the end of all these processes, our application, which is 100% open in the store, becomes a high-quality product.

If you have an app and want to make sure your app works and is used reliably, I would recommend you to follow a phased rollout strategy like above.

Thank you for reading. Hope this article will be useful to you.

--

--

Feyza Dayan
Trendyol Tech

Sr. Developer in Test at Trendyol International @Berlin, MBA, BSc. Computer Engineering https://www.linkedin.com/in/feyzadayan/