Feature Toggle XP Conference 2016 Kalpana Gulati
-
Upload
xp-conference-india -
Category
Technology
-
view
144 -
download
2
Transcript of Feature Toggle XP Conference 2016 Kalpana Gulati
![Page 1: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/1.jpg)
#XPIndia2016
Feature ToggleKalpna Prakash
![Page 2: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/2.jpg)
#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
![Page 3: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/3.jpg)
#XPIndia2016
• What is Feature Toggle ?• Why we need Feature Toggle ?• Types• Frameworks• How to implement ?– Demonstration
• Key Considerations• Lessons Learnt• Variants in Industry
AGENDA
![Page 4: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/4.jpg)
#XPIndia2016
• Technique in software development that attempts to provide an alternative to maintaining multiple source-code branches.
What is Feature Toggle
![Page 5: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/5.jpg)
#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/
![Page 6: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/6.jpg)
#XPIndia2016
• A/B Testing
Why we need Feature Toggle
Image Courtesy: http://www.mazeberry.com/en/blog-ab-testing-is-it-a-good-idea/
![Page 7: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/7.jpg)
#XPIndia2016
• Unfinished Code in production
Why we need Feature Toggle
Image courtesy: http://mission17.org/exhibits/unfinished/index.htm/
![Page 8: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/8.jpg)
#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/
![Page 9: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/9.jpg)
#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
![Page 10: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/10.jpg)
#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/
![Page 11: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/11.jpg)
#XPIndia2016
• Safe To Fail
Why we need Feature Toggle
Image courtesy: http://www.neatorama.com/2010/03/10/how-bomb-proof-suits-work/
![Page 12: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/12.jpg)
#XPIndia2016
• Release Toggles
• Business Toggles
• Deployment Toggles (Ops Toggles)
• Experiment Toggles (Canary cohort)
Types of Toggles
![Page 13: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/13.jpg)
#XPIndia2016
Static vs Dynamic
Release Toggles
BusinessToggles
ExperimentToggles
DeploymentToggles
Configurability ---
![Page 14: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/14.jpg)
#XPIndia2016
Long-lived vs TransientLo
ngev
ity---
Release Toggles
BusinessToggles
ExperimentToggles
DeploymentToggles
![Page 15: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/15.jpg)
#XPIndia2016
Baseline Architecture
Image courtesy: http://martinfowler.com/articles/feature-toggles.html#
![Page 16: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/16.jpg)
#XPIndia2016
• Parallel change Pattern
• Strategy Pattern
• Factory Pattern
• Chain of Responsibility Pattern
Design Patterns
![Page 17: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/17.jpg)
#XPIndia2016
Ruby•Flip•Rollout•Degrade
PHP•FeatureToggle (Symfony)
Python•Gargoyle (Django)•Django Waffle (Django)•Nexus admin
JavaScript:•FeatureFlipperJS (Node)
.Net:•FeatureToggle
Groovy•GrailsFeatureToggle
Java•Togglz
Frameworks Available
![Page 18: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/18.jpg)
#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
![Page 19: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/19.jpg)
#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
![Page 20: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/20.jpg)
#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
RollOutDeployment
feature configuration
![Page 21: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/21.jpg)
#XPIndia2016
CREATE READ
UPDATEDELETE
Life Cycle of a Toggle
![Page 22: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/22.jpg)
#XPIndia2016
Not Removing Toggles!!!
Biggest Tech Debt
Software will be harder to improve, maintain, test and deploy.
Loose control of toggles
Chaos!!!
![Page 23: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/23.jpg)
#XPIndia2016
Overcomplicated
Unmaintainabl
e
Bug
gy
Quick
hacks
and fixe
s
Untested
Poor
Quality
Excessive use of toggles
![Page 24: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/24.jpg)
#XPIndia2016
Lessons Learnt!!!
Image courtesy: http://www.directindustry.com
![Page 25: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/25.jpg)
#XPIndia2016
Lessons Learnt!!!
Image courtesy: http://www3.canisius.edu/~grandem/butterflylifecycle/The_Lifecycle_of_a_Butterfly_print.html
![Page 26: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/26.jpg)
#XPIndia2016
Lessons Learnt!!!
Image courtesy: http://www.ajbubb.com/the-struggle-between-quantity-and-quality/#
![Page 27: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/27.jpg)
#XPIndia2016
Lessons Learnt!!!
![Page 28: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/28.jpg)
#XPIndia2016
Lessons Learnt!!!
Image courtesy: http://beforeitsnews.com/alternative/2013/12/the-right-name-makes-a-difference-2856136.html
![Page 29: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/29.jpg)
#XPIndia2016
Lessons Learnt!!!
Image courtesy: https://www.flickr.com
![Page 30: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/30.jpg)
#XPIndia2016
Lessons Learnt!!!
Image courtesy: https://www.customisedesigns.co.uk
![Page 31: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/31.jpg)
#XPIndia2016
Latent Code Variants
![Page 32: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/32.jpg)
#XPIndia2016
![Page 33: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/33.jpg)
#XPIndia2016
• Martin Fowler – Feature Toggle
• https://en.wikipedia.org/wiki/Feature_toggle
• http://www.paulhammond.org/2009/06/velocity/10deploys.pdf
• http://www.beautifulbuilds.com/feature-toggle-frameworks-list/
• Feature Flipping for Java
References
![Page 34: Feature Toggle XP Conference 2016 Kalpana Gulati](https://reader036.fdocuments.net/reader036/viewer/2022062822/588220741a28ab3f4c8b7b0b/html5/thumbnails/34.jpg)
[email protected]@gmail.comhttps://in.linkedin.com/in/kalpna-prakash-1505576