Feature Toggling
What?
Ability to toggle features for user subset
For all/some users
Eg. Chat
Why?
Ease in users to new features
A/B testing
Dynamically switch features
without releases
Gauge key user metrics
Less branching
Safe to fail
How?
Account level flag (
+ opt-in)
Market level flag (
+ opt-in)
Universal + opt-in
Account level flag
(+ opt-in)?
Choose a random subset of 1% of users
Set a featureEnabled flag on User Accounts
Check for flag on client and enable/disable feature
Use flag in Snowplow/GA for A/B testing
What is opt-in?
Eligible users opt-in to try out feature
No forcing features down users' throats
Additional featureOpted flag set from Client
Only featureEnabled + featureOpted enables feature
Implementation
Client implements feature toggling framework
Backend makes schema changes
Business decides key user metrics (engagement, revenue etc.)
Client & backend implement analytics
Plug and play
Optionally, Admin implements feature toggling
Advantages
Client agnostic (Web/Android/iOS)
Market agnostic
Safe
Controlled number of users
Opt-in:
Great UX
Market level flag (+opt-in)
All users of a selected market
Can be tried out in low traffic markets
Advantages
Only one market will be affected if something breaks
Mass use metrics will be available
Disadvantages
Large uncontrolled number of users
Market specific metrics won't be available
in analytics
Universal + opt-in
All users are eligible by default
Users can opt-in
Similar to Account level flag
Onus lies on user
Advantages
Pan market/client use
Close to real use data
Disadvantages
Number of users can grow out of control
Might annoy large numbers of users
Bonus feature
Adds implementation cost
Bonus feature
Adds implementation cost
Additional reading
http://martinfowler.com/articles/feature-toggles.html
http://swreflections.blogspot.in/2014/08/feature-toggles-are-one-of-worst-kinds.html
https://abhishek-tiwari.com/post/decoupling-deployment-and-release-feature-toggles
https://www.rallydev.com/blog/engineering/awesomeness-feature-toggles
Made with Slides.com