Feature Toggle - What Why and How A technique that allows you to “switch on” or “switch off” features of a product. So till the time the entire story is ready to be released the feature is marked as “switched off”. So though everything that is being developed is in the trunk but it is not visible and is not executed till the time it is “switched on”. There is a lot more to feature toggles and this session will allow you to think away from the conventional approach of Branching and Merging and move towards CI/CD efficiently.
2. #XPIndia2016
• Around 15 years of rich technical experience
• Senior Technical Architect with Pitney Bowes
• Extensive experience in Software Architecture, Design, Development
and Performance Optimization
• Lectures in several forums and universities including Delhi University
• Presented papers at several local and global conferences.
• Gold Medalist in Electronics (Graduate) and Computer
Applications(Post Graduate) Courses both from Delhi University
About Me
3. #XPIndia2016
• What is Feature Toggle ?
• Why we need Feature Toggle ?
• Types
• Frameworks
• How to implement ?
– Demonstration
• Key Considerations
• Lessons Learnt
• Variants in Industry
AGENDA
4. #XPIndia2016
• Technique in software development that attempts to provide an
alternative to maintaining multiple source-code branches.
What is Feature Toggle
5. #XPIndia2016
• CI/CD: Avoid Branches and Merges
Why we need Feature Toggle
Image courtesy: http://paulhammant.com/2013/04/05/what-is-trunk-based-development/
6. #XPIndia2016
• A/B Testing
Why we need Feature Toggle
Image Courtesy: http://www.mazeberry.com/en/blog-ab-testing-is-it-a-good-idea/
7. #XPIndia2016
• Unfinished Code in production
Why we need Feature Toggle
Image courtesy: http://mission17.org/exhibits/unfinished/index.htm/
8. #XPIndia2016
• Reducing risk associated with large change
Why we need Feature Toggle
Image courtesy: http://csrc.nist.gov/organizations/fissea/2015-conference/presentations/march-24/fissea-2015-toner.pdf/
9. #XPIndia2016
• Turning a resources heavy feature OFF in high load conditions
Why we need Feature Toggle
Image courtesy: http://www.mxmindia.com/2013/07/will-the-ad-switch-off-get-broadcasters-to-revert-to-weekly-ratings
10. #XPIndia2016
• Phased rollout
Why we need Feature Toggle
Image courtesy: https://blog.optimizely.com/2014/11/11/5-ways-phased-rollouts-will-protect-your-ios-app/
11. #XPIndia2016
• Safe To Fail
Why we need Feature Toggle
Image courtesy: http://www.neatorama.com/2010/03/10/how-bomb-proof-suits-work/
18. #XPIndia2016
• Import greeting message from a template file and wish the admin of
the organization. The message may vary and can be changed. We
also need to expose this greeting to the world so that some one else
may use it.
Demonstration
19. #XPIndia2016
• Import greeting message with hardcoded admin name
• Allow greeting message to be editable
• Allow the Admin name to be changed in database and read from there
• Allow the API to be exposed to be used as a service
Steps in development –spanning several sprints
20. #XPIndia2016
Important to recognize
20
Demos to
Product
Owners
BUG
Fixes
Internal
Builds
When NOT to use?
When to use Feature Toggle?
Dark
Launch
A/B Testing
or Selective
Turn on
Phased
RollOut
Deployment
feature
configuration