Mar 22, 2016
We’ve talked to a lot of mobile teams over the years, and many of you have told us about the challenges of launching features or running marketing campaigns on mobile. Today, we’re thrilled to announce our new product to help teams address exactly those issues.
“With Feature Flags, you can launch brand new features and experiences in real-time. You don’t have to go all in with every feature in every release, which removes a lot of risk and enables you to instantly roll back if the feature needs more work.”
– Nancy Hua, CEO, Apptimize.
Product and engineering teams will have far greater control over deployment and UX while marketing teams gain new options for the types of marketing campaigns they can run.
Feature Flags – a mechanism that decouples code deployment from feature release processes in an update so that you can push a new version of the product to your users while controlling which features are on, off, still partially in development, being tested, etc.
Also known as: feature toggles, feature flippers, feature switches
…or in other words….
Feature flagging allows teams to enable or disable features at a moment’s notice. This allows teams to choose exactly which users will see what features, and when.
On mobile, this functionality has huge implications, since you don’t have to go through the app store. This gives web-like levels of control to mobile teams, allowing them unprecedented levels of control over the mobile UX.
Imagine it as a light switch of sorts. When you release your update, you can decide the precise moment to turn on a new feature, when to turn it off, and which users see it. Now teams can experiment and test far more easily than they ever could before, and push forward with confidence.
…Wait… Maybe you’re not exactly at ^this level yet. But you will be once we get into some use cases.
“We use [feature flags] liberally. Everywhere. And we use this for all our product rollouts.”
-Girish Patangay, Engineering Manager, Facebook
Feature Flags gives web-like levels of control back to mobile teams, with no need to wait on app store approvals. That’s why they’ve been such an invaluable tool for teams at Facebook, Uber, Lyft, Twitter, VSCo, and many more. With it, your product, marketing, and engineering teams will be able to do way more than ever before.
Do you ever notice how your friends have different versions of Facebook than you do? Maybe they’ve got a cool new feature like real time comments, profile videos, or rolling out updated mobile profiles. Whenever Facebook wants to release a new feature, they test it out on real users, and do staged rollouts. This allows them to slowly introduce a new feature to targeted segments, fix any issues while they’re on a small scale, and build excitement around the release.
“We’re starting to test all of these features to a small number of iPhone users in the UK and California, and we’ll be rolling them out to more people soon.”
– Aigerim S. and Tony H., PMs at Facebook
In the same way, you can use Feature Flags for strategic, highly targeted feature rollouts for your own users. Segment based on behavior, geography, device, or any data you have about your customers. Control who sees your features and when.
Once you have seen proven success with a subset of users, you can slowly increase the percentage of users who see your updates. This allows teams to test a new update on users and look for potential issues with feature usability, user engagement, revenue viability, or even scaling issues, before a release goes out to all users.
Another benefit of having granular over who sees what features when is the ability to dogfood your own product well before general release. Simply create a cohort of your team members and toggle on your new changes. These users will be able to test out new features on their personal phones in the wild, rather than on a dev build.
With Apptimize Feature Flags, running beta programs is no longer the headache of creating Google+ groups, emailing testers to download new versions, or enabling obscure in-app settings. Compile the user IDs and toggle on the new features.
Finished testing? Apptimize Feature Flags make general releases as easy as a flip of the switch, with no need to re-deploy. Expand the “test” to all users and you’re done.
“Once you start shipping things like this, you never want to go back.”
-Chris Burnett, Engineer at VSCO
Even though we’ve come a long way in terms of agile development, the current system for releasing and updating apps isn’t focused on providing the best user experience. Instead, the App Store’s process for updating your app is akin to shipping boxed software.
“I push a button, it goes to The App Store, the black hole that is Apple… If I’ve made a mistake or if there’s a fatal, or something silly in that app,it’s gone. That bullet has left the barrel, and I’m screwed.”
– Chuck Rossi, Release Engineering Director, Facebook
Instead of using agile methodologies, Apple expects teams to create near perfect versions of our apps, or suffer the consequences of poor reviews (and lower rankings). Since neither you or your users can revert apps to a previous version, you start bleeding users any time a new update isn’t perfect.
Releasing updates shouldn’t be a nail-biting process. Since you’re forced to follow Apple’s deploy process which releases to your entire user base at once, most teams are worried about possible bugs, crashes, and complaints that often follow any update:
“New update crashed my app.”
“Doesn’t work anymore”
“Cute app BUT NEEDS UPDATE”
“Needs improvement =(“
Feature Flags’ web-like levels of control enable you to respond immediately to any issue that negatively impacts a user’s experience. With no need to wait on app store approvals.
If all else fails, feature flags can act as a kill switch so you can quickly get your app to the last working version.
When traffic levels spike, disabling certain features can help ensure that your app still functions, even if in a limited capacity. When rolling out the username feature, Facebook faced just this problem.
To allow the most fair system possible for username selection, Facebook decided to implement a first-come first-serve system. However, the major problem with that is a huge torrent of traffic all at once. To prevent a catastrophic failure, Facebook’s team put feature flags on a few key features that they could toggle off if things got too rough.
In the same way, teams can use mobile Feature Flags to disable certain features during high loads or on certain devices. When UX is the most critical aspect, making sure your app still does its job is key.
Feature Flags can also be used to build up hype for a new product launch by giving early or exclusive access to a small group of users. For example, you could release a new version only to reporters, thought leaders, loyal customers, or your favorite celebrity. Gmail and Inbox used similar tactics by creating apps with a limited number of invites. Exclusivity breeds envy and excitement. Facebook constantly does this by releasing new features one at a time.
For mobile marketers, one of the most difficult constraints of mobile is the inability to deploy timely in-app marketing campaigns. Teams are constantly left guessing how long app store reviews will take, even for the simplest of changes.
If you want to run an in-app campaign for a 1 week period, you’ll be trying to time the app store review process, deployment, and for users to update the app, all to run a simple marketing campaign.
That’s ludicrous. But we know that in-app experiences are often far more effective than other mediums.
Feature Flags change that conversation entirely. Instead of waiting for app store reviews, teams can deploy features well in advance, then turn them on and off at precisely the moments they choose. These in-app experiences go far beyond the messaging capabilities of push and email, and deliver a superior UX to drive user engagement.
Run a wildly successful campaign? Turning it back on is incredibly simple. Just flip the switch and your campaign is out in the wild.
Many mobile teams struggle to personalize their experience for different users. Whether it’s personalization through geo location, user history, or simply providing unique experiences for different segments of users, there’s a limited amount of control you have when it comes to mobile.
With feature flags, you can personalize the experience for different types of users, rather than providing the same flow and UI for every single user.
Let’s say you’re a online clothing retailer. You know that a user is a male based on other analytics, but you can’t personalize the experience. As a result, your user has to scroll past the female clothing tabs just to find what he’s looking for. With feature flags, you can create a UI especially for male users that puts the male navigation tabs on top rather than down at the bottom.
Trying to growth hack is near impossible with the handicaps you’re given. As a result, we’ve limited our acquisition efforts to “if you like it, share/rate it” campaigns or gift referrals ($5 for every referral). Any smart growth team knows though, it’s all about providing value to your users.
Instead of providing coupon codes or marginal rewards, you can incentivize them with additional features or functionality. Give users early access or even special features if they help get the word out.
Learn about iOS & Android Feature Flags here.
The 2016 holiday season saw an incredible 44% year over year increase in mobile purchases with US consumers spending over $17B while shopping from their smartphones. The mobile share of e-commerce is experiencing rapid growth, and a fifth of all online sales...Read More
Facebook’s coding team pushes new updates into production more regularly than they change their socks. Etsy’s product development team makes over 50 deployments a day. So why are other apps (like yours) dealing with lengthy release cycles, waiting on the...Read More
We hear from customers that planning out your second, third, and fourth A/B tests is one of the hardest things to. Many app managers have a first test in mind when they start experimenting and planning out a series of...Read More