Slide 1

Slide 1 text

App: Release Gently - Feature Gates & A/B Ashwini Kumar Hotstar @ashwinikumar089

Slide 2

Slide 2 text

Background ▸ Rewrite the complete app from scratch. Why? ▸ Old codebase maintenance ▸ Handle the huge scale of 100+ million users. ▸ New features on old screens. e.g. Game on Old Watch Page ▸ Time crunch - IPL was coming!! ▸ Big Bang vs Progressive. Refer our blog: Rearchitecting apps for Scale ▸ Tech stack

Slide 3

Slide 3 text

▸ Feature Gate: Ability to turn ON/OFF a feature without requiring an app update ▸ Modular approach. But how to test both screens? Say New vs Old Search ▸ A/B Testing ▸ Users Targeting - Rolling out exclusive features only to certain audiences ▸ Support two Backends at the same time and switch depending upon the performance. ▸ Service which would scale for millions having all the necessary infra already available. 10+ million peak concurrency. ▸ Refer our blog here: App : Release Gently — Feature Gates & A:B Goals

Slide 4

Slide 4 text

If the Path Be Beautiful, Let Us Now Ask Where It Leads Anatole France

Slide 5

Slide 5 text

Firebase

Slide 6

Slide 6 text

HUNT FOR A SAFER PATH ▸ Changes behaviour of app at runtime ▸ Handles the caching by its own. Stores the config in FirebaseRemoteConfig object when activateFetched is called. ▸ Release Gently and Feature Gating ▸ Quirks: Cache Expiration Time!! Firebase Remote Config

Slide 7

Slide 7 text

Live Scenarios

Slide 8

Slide 8 text

STAGED ROLLOUT New Watch Page ▸ Tons of features: ADs, Game, KeyMoments, Live etc. ▸ Old Watch vs New Watch Page ▸ Firebase Remote Config: Fail-safe approach ▸ Feature-Gate using Users in Random Percentile ▸ More than just a knob. Audiences, Events and A/B ▸ A/B Experiments based on Remote Config ▸ Optimisation Metric ▸ Roll out the leader

Slide 9

Slide 9 text

KHEL DEKH. GAME DIKHA. Emoji ▸ Gamification on live streaming ▸ Supporting Android Jellybean & above ▸ Issue with Emoji on the day of IPL launch ▸ Firebase Audience to the rescue ▸ Users in Random Percentile

Slide 10

Slide 10 text

ITS ALL ABOUT THE PEOPLE Firebase Audience ▸ Audiences help in creating a segment of users ▸ Segment can be created based on Event or User Properties ▸ We created the segment of users where Emoji was not working as expected ▸ We rolled out the Emoji to all except the affected ones thus preventing unwanted behaviour on Watch Page

Slide 11

Slide 11 text

Firebase Audience Creation

Slide 12

Slide 12 text

EVENTS & USER PROPERTIES Firebase Analytics ▸ Firebase Events help in getting the insights of user actions ▸ User Properties are attributes which typically describe the segments of the user base. ▸ Firebase logs some properties and events automatically like App Version, Country, Device Brand, Model etc. ▸ Log your own custom property as we did at Hotstar like build_flavor ▸ Log Custom Event to measure your optimisation metric for A/B

Slide 13

Slide 13 text

Firebase Remote Config - Creating Condition

Slide 14

Slide 14 text

BONUSES Other Perks ▸ Firebase Performance SDK ▸ Provides the insights of how your app is performing. ▸ Logs all the HTTP/S network requests automatically along with app start up time(traces) ▸ Breaks down the perf data based on Device Model, Carrier, OS Level, Country and App Version ▸ Provides the functionality to customise the traces for perf capturing like checking app load time when new screen is created ▸ DebugView to view the logged events

Slide 15

Slide 15 text

THANK YOU @ashwinikumar089 @kumarashwini We are Hiring.
 Find more about openings, tech stack and key people here:
 https://tech.hotstar.com/
 @ashwini009