SlideShare a Scribd company logo
Is your code Toggled?!? 
Confidential | Copyright © Agile Testing Alliance Global Gathering 
Devi Sridharan 
Siddhartha Deshpande
What is Agile? 
Confidential | Copyright © Agile Testing Alliance Global Gathering
According to Agile Manifesto... 
The Agile Manifesto is based on 12 principles 
1.Customer satisfaction by rapid delivery of useful software 
2.Welcome changing requirements, even late in development 
3.Working software is delivered frequently (weeks rather than months) 
4.Close, daily cooperation between business people and developers 
5.Projects are built around motivated individuals, who should be trusted 
6.Face-to-face conversation is the best form of communication (co-location) 
7.Working software is the principal measure of progress 
8.Sustainable development, able to maintain a constant pace 
9.Continuous attention to technical excellence and good design 
10.Simplicity—the art of maximizing the amount of work not done—is essential 
11.Self-organizing teams 
12.Regular adaptation to changing circumstances 
Confidential | Copyright © Agile Testing Alliance Global Gathering
Branches 
-Release branch 
Master & single work-in-branch 
-Feature branch 
o Master & Multiple branches 
Confidential | Copyright © Agile Testing Alliance Global Gathering
Release Branch 
-Delayed integration 
-Hotfixes has to wait till 
next release. 
-Can’t add any code if its 
not part of current release 
Confidential | Copyright © Agile Testing Alliance Global Gathering 
Trunk 
Release Branches
Feature Branches 
-Merging becomes very difficult 
-Increases the testing effort 
-Lot of time spent on Regression & 
Integration Testing 
-Reduces the re-usability of shared automate 
test-suite 
Confidential | Copyright © Agile Testing Alliance Global Gathering 
Feature 1 
Trunk 
Feature 2
Feature Toggle!?! 
-What is toggle? 
-Feature Toggle is a conditional statement that 
hides certain functionality. 
Confidential | Copyright © Agile Testing Alliance Global Gathering
Guard the code 
Confidential | Copyright © Agile Testing Alliance Global Gathering
Types of Feature Toggles 
-Release Toggles: (Development Environment) 
- Hide incomplete features and are removed as soon as 
feature is ready 
-Business Toggles: (Business Sponsors) 
- Enable feature for group of people and can be changed 
on fly 
Confidential | Copyright © Agile Testing Alliance Global Gathering
Feature Toggles is opt for…. 
-Hiding or disabling new features in UI 
-Hiding/Disabling new components 
-To support multiple versions of feature/component 
-Adding new feature to an application 
-Enhancing an existing feature 
Confidential | Copyright © Agile Testing Alliance Global Gathering
How to implement ? 
- Config files 
- Toggle manager controlled by Admin 
- Session cookie 
Confidential | Copyright © Agile Testing Alliance Global Gathering
Lets Toggle!! 
Few ways to control the application using toggles 
-via server-side 
-via client-side 
-URL parameterization 
-Javascript 
Confidential | Copyright © Agile Testing Alliance Global Gathering
via server 
pros 
-Feature is available,till next build is deployed 
-No further setup is needed 
cons 
-Need to wait for deployment to complete 
-Switching between toggles is difficult 
Confidential | Copyright © Agile Testing Alliance Global Gathering
via client 
- Need to know feature flag to enable it 
- Feature is available,only on local machine 
- Testing becomes easier,as we have more control of 
application 
Confidential | Copyright © Agile Testing Alliance Global Gathering
Business toggles 
-Used in production environment 
-To enable A/B testing 
-Release features to group of users for early feedback 
Confidential | Copyright © Agile Testing Alliance Global Gathering
While implementing toggles... 
-Try to keep less number of toggles 
-Mutually Exclusive toggles 
-Remove the toggles as soon as corresponding feature is 
implemented completely 
Confidential | Copyright © Agile Testing Alliance Global Gathering
What will you achieve…?! 
-Continuous integration 
-More visibility into all work streams 
-No merge conflicts and hence easy to refactor the 
code 
-Reduced time spent on testing 
Confidential | Copyright © Agile Testing Alliance Global Gathering
Having said…. 
Feature toggle is second best solution. 
The best solution is to find a way to 
gradually integrate, without feature toggles 
or feature switches 
Confidential | Copyright © Agile Testing Alliance Global Gathering
Confidential | Copyright © Agile Testing Alliance Global Gathering

More Related Content

PPTX
DevOps Monitoring and Alerting
PPTX
Program And Portfolio Management
PPTX
Developer 2: Building A DevOps Toolchain
PDF
Salesforce & GitLab Integration for Next-gen DevOps with CEPTES
PDF
5 Principles to Managing Your Application Lifecycle with SpiraTeam
PPTX
Helix ALM 2017.1 What's New Webinar
PPTX
Introduction of ARMule and a live demo - AutoRABIT at Tri-Valley Salesforce D...
PPTX
DevOps Monitoring and Alerting
Program And Portfolio Management
Developer 2: Building A DevOps Toolchain
Salesforce & GitLab Integration for Next-gen DevOps with CEPTES
5 Principles to Managing Your Application Lifecycle with SpiraTeam
Helix ALM 2017.1 What's New Webinar
Introduction of ARMule and a live demo - AutoRABIT at Tri-Valley Salesforce D...

What's hot (20)

PPTX
DevOps
PDF
Oracle Development Cloud Service
PDF
Leveraging DevOps Principles for Release and Deploy
PPTX
What Can The Spira API Do For You?
PDF
TestCorner #22 - Path to survive among micro-services for QA
 
PDF
Definition Driven API Development: How OAS & Swagger Help Teams Streamline Th...
PPTX
Building Quality into Your DevSecOps Pipelines
PDF
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)
PPTX
RemoteLaunch Overview Presentation (2019)
PDF
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
PPTX
Shift_Left
PDF
Sa fe 4.0 implementing Enterprise Agile using the Scaled Agile Framework
PDF
MuleSoft Surat Virtual Meetup#17 - Automated Code Review
PPTX
Inflectra Enterprise Agile Planning Briefing for Gartner 2018
PPT
Using JIRA Software for Issue Tracking
PPTX
SpiraTest Overview Presentation (2019)
PDF
Process
PPT
Spira Team Overview Presentation
PDF
Metadata definition between flows on Studio 7 : MuleSoft Virtual Muleys Meetups
DevOps
Oracle Development Cloud Service
Leveraging DevOps Principles for Release and Deploy
What Can The Spira API Do For You?
TestCorner #22 - Path to survive among micro-services for QA
 
Definition Driven API Development: How OAS & Swagger Help Teams Streamline Th...
Building Quality into Your DevSecOps Pipelines
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)
RemoteLaunch Overview Presentation (2019)
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
Shift_Left
Sa fe 4.0 implementing Enterprise Agile using the Scaled Agile Framework
MuleSoft Surat Virtual Meetup#17 - Automated Code Review
Inflectra Enterprise Agile Planning Briefing for Gartner 2018
Using JIRA Software for Issue Tracking
SpiraTest Overview Presentation (2019)
Process
Spira Team Overview Presentation
Metadata definition between flows on Studio 7 : MuleSoft Virtual Muleys Meetups
Ad

Viewers also liked (13)

PPT
Continous Integration: A Case Study
PPTX
Bamboo Hands on training 2016
PDF
Bamboo Continuous Integration Server - Brief
PPTX
Continuous integration using Bamboo
PPTX
03 - Continuous Integration
PDF
London Atlassian User Group - February 2014
PDF
PPTX
Feature Toggles
PDF
Bamboo - an introduction
PPTX
Bamboo construction (final ppt)
PPTX
Python in the Hadoop Ecosystem (Rock Health presentation)
PDF
Googleのインフラ技術から考える理想のDevOps
PPTX
Hadoop with Python
Continous Integration: A Case Study
Bamboo Hands on training 2016
Bamboo Continuous Integration Server - Brief
Continuous integration using Bamboo
03 - Continuous Integration
London Atlassian User Group - February 2014
Feature Toggles
Bamboo - an introduction
Bamboo construction (final ppt)
Python in the Hadoop Ecosystem (Rock Health presentation)
Googleのインフラ技術から考える理想のDevOps
Hadoop with Python
Ad

Similar to Is your code Toggled?!? By Devi Sridharan & Siddhartha Deshpande (20)

PDF
Flexing your Agile Muscle - Agile Technical Concepts Explained
PDF
Agile testing
PPT
Transitioning To Agile Webinar Presentation
PPT
Trends in Agile Testing by Lisa Crispin
PDF
Agile Testing Introduction
PDF
Testing in Agile Development
PPTX
Agile software development
PPT
Agile testing
PPT
Transitioning To Agile
PPT
Agile Development
PPTX
Application Lifecycle Management with Visual Studio 2013
PDF
Agile testing overview
PDF
Agile testingoverview
PPTX
Adopting Agile
PPT
Agile Testing
PDF
Don't go Agile unless you know why
PDF
Agile methods cost of quality
PDF
Agile Methods Cost of Quality: Benefits of Testing Early & Often
PPTX
Benefits of Agile Software Development for Senior Management
PDF
Agile Adoption in Testing 2013 - v2
Flexing your Agile Muscle - Agile Technical Concepts Explained
Agile testing
Transitioning To Agile Webinar Presentation
Trends in Agile Testing by Lisa Crispin
Agile Testing Introduction
Testing in Agile Development
Agile software development
Agile testing
Transitioning To Agile
Agile Development
Application Lifecycle Management with Visual Studio 2013
Agile testing overview
Agile testingoverview
Adopting Agile
Agile Testing
Don't go Agile unless you know why
Agile methods cost of quality
Agile Methods Cost of Quality: Benefits of Testing Early & Often
Benefits of Agile Software Development for Senior Management
Agile Adoption in Testing 2013 - v2

More from Agile Testing Alliance (20)

PPTX
#Interactive Session by Anindita Rath and Mahathee Dandibhotla, "From Good to...
PDF
#Interactive Session by Ajay Balamurugadas, "Where Are The Real Testers In T...
PPTX
#Interactive Session by Jishnu Nambiar and Mayur Ovhal, "Monitoring Web Per...
PDF
#Interactive Session by Pradipta Biswas and Sucheta Saurabh Chitale, "Navigat...
PDF
#Interactive Session by Apoorva Ram, "The Art of Storytelling for Testers" at...
PPTX
#Interactive Session by Nikhil Jain, "Catch All Mail With Graph" at #ATAGTR2023.
PPTX
#Interactive Session by Ashok Kumar S, "Test Data the key to robust test cove...
PPTX
#Interactive Session by Seema Kohli, "Test Leadership in the Era of Artificia...
PDF
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...
PPTX
#Interactive Session by Srithanga Aishvarya T, "Machine Learning Model to aut...
PPTX
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
PPTX
#Interactive Session by Sudhir Upadhyay and Ashish Kumar, "Strengthening Test...
PPTX
#Interactive Session by Sayan Deb Kundu, "Testing Gen AI Applications" at #AT...
PDF
#Interactive Session by Dinesh Boravke, "Zero Defects – Myth or Reality" at #...
PPTX
#Interactive Session by Saby Saurabh Bhardwaj, "Redefine Quality Assurance –...
PDF
#Keynote Session by Sanjay Kumar, "Innovation Inspired Testing!!" at #ATAGTR2...
PDF
#Keynote Session by Schalk Cronje, "Don’t Containerize me" at #ATAGTR2023.
PPTX
#Interactive Session by Chidambaram Vetrivel and Venkatesh Belde, "Revolution...
PDF
#Interactive Session by Aniket Diwakar Kadukar and Padimiti Vaidik Eswar Dat...
PPTX
#Interactive Session by Vivek Patle and Jahnavi Umarji, "Empowering Functiona...
#Interactive Session by Anindita Rath and Mahathee Dandibhotla, "From Good to...
#Interactive Session by Ajay Balamurugadas, "Where Are The Real Testers In T...
#Interactive Session by Jishnu Nambiar and Mayur Ovhal, "Monitoring Web Per...
#Interactive Session by Pradipta Biswas and Sucheta Saurabh Chitale, "Navigat...
#Interactive Session by Apoorva Ram, "The Art of Storytelling for Testers" at...
#Interactive Session by Nikhil Jain, "Catch All Mail With Graph" at #ATAGTR2023.
#Interactive Session by Ashok Kumar S, "Test Data the key to robust test cove...
#Interactive Session by Seema Kohli, "Test Leadership in the Era of Artificia...
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...
#Interactive Session by Srithanga Aishvarya T, "Machine Learning Model to aut...
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
#Interactive Session by Sudhir Upadhyay and Ashish Kumar, "Strengthening Test...
#Interactive Session by Sayan Deb Kundu, "Testing Gen AI Applications" at #AT...
#Interactive Session by Dinesh Boravke, "Zero Defects – Myth or Reality" at #...
#Interactive Session by Saby Saurabh Bhardwaj, "Redefine Quality Assurance –...
#Keynote Session by Sanjay Kumar, "Innovation Inspired Testing!!" at #ATAGTR2...
#Keynote Session by Schalk Cronje, "Don’t Containerize me" at #ATAGTR2023.
#Interactive Session by Chidambaram Vetrivel and Venkatesh Belde, "Revolution...
#Interactive Session by Aniket Diwakar Kadukar and Padimiti Vaidik Eswar Dat...
#Interactive Session by Vivek Patle and Jahnavi Umarji, "Empowering Functiona...

Recently uploaded (20)

PDF
cuic standard and advanced reporting.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Modernizing your data center with Dell and AMD
PDF
Encapsulation theory and applications.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Machine learning based COVID-19 study performance prediction
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Electronic commerce courselecture one. Pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
cuic standard and advanced reporting.pdf
Understanding_Digital_Forensics_Presentation.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Encapsulation_ Review paper, used for researhc scholars
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Modernizing your data center with Dell and AMD
Encapsulation theory and applications.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
The Rise and Fall of 3GPP – Time for a Sabbatical?
Machine learning based COVID-19 study performance prediction
Per capita expenditure prediction using model stacking based on satellite ima...
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Electronic commerce courselecture one. Pdf
The AUB Centre for AI in Media Proposal.docx

Is your code Toggled?!? By Devi Sridharan & Siddhartha Deshpande

  • 1. Is your code Toggled?!? Confidential | Copyright © Agile Testing Alliance Global Gathering Devi Sridharan Siddhartha Deshpande
  • 2. What is Agile? Confidential | Copyright © Agile Testing Alliance Global Gathering
  • 3. According to Agile Manifesto... The Agile Manifesto is based on 12 principles 1.Customer satisfaction by rapid delivery of useful software 2.Welcome changing requirements, even late in development 3.Working software is delivered frequently (weeks rather than months) 4.Close, daily cooperation between business people and developers 5.Projects are built around motivated individuals, who should be trusted 6.Face-to-face conversation is the best form of communication (co-location) 7.Working software is the principal measure of progress 8.Sustainable development, able to maintain a constant pace 9.Continuous attention to technical excellence and good design 10.Simplicity—the art of maximizing the amount of work not done—is essential 11.Self-organizing teams 12.Regular adaptation to changing circumstances Confidential | Copyright © Agile Testing Alliance Global Gathering
  • 4. Branches -Release branch Master & single work-in-branch -Feature branch o Master & Multiple branches Confidential | Copyright © Agile Testing Alliance Global Gathering
  • 5. Release Branch -Delayed integration -Hotfixes has to wait till next release. -Can’t add any code if its not part of current release Confidential | Copyright © Agile Testing Alliance Global Gathering Trunk Release Branches
  • 6. Feature Branches -Merging becomes very difficult -Increases the testing effort -Lot of time spent on Regression & Integration Testing -Reduces the re-usability of shared automate test-suite Confidential | Copyright © Agile Testing Alliance Global Gathering Feature 1 Trunk Feature 2
  • 7. Feature Toggle!?! -What is toggle? -Feature Toggle is a conditional statement that hides certain functionality. Confidential | Copyright © Agile Testing Alliance Global Gathering
  • 8. Guard the code Confidential | Copyright © Agile Testing Alliance Global Gathering
  • 9. Types of Feature Toggles -Release Toggles: (Development Environment) - Hide incomplete features and are removed as soon as feature is ready -Business Toggles: (Business Sponsors) - Enable feature for group of people and can be changed on fly Confidential | Copyright © Agile Testing Alliance Global Gathering
  • 10. Feature Toggles is opt for…. -Hiding or disabling new features in UI -Hiding/Disabling new components -To support multiple versions of feature/component -Adding new feature to an application -Enhancing an existing feature Confidential | Copyright © Agile Testing Alliance Global Gathering
  • 11. How to implement ? - Config files - Toggle manager controlled by Admin - Session cookie Confidential | Copyright © Agile Testing Alliance Global Gathering
  • 12. Lets Toggle!! Few ways to control the application using toggles -via server-side -via client-side -URL parameterization -Javascript Confidential | Copyright © Agile Testing Alliance Global Gathering
  • 13. via server pros -Feature is available,till next build is deployed -No further setup is needed cons -Need to wait for deployment to complete -Switching between toggles is difficult Confidential | Copyright © Agile Testing Alliance Global Gathering
  • 14. via client - Need to know feature flag to enable it - Feature is available,only on local machine - Testing becomes easier,as we have more control of application Confidential | Copyright © Agile Testing Alliance Global Gathering
  • 15. Business toggles -Used in production environment -To enable A/B testing -Release features to group of users for early feedback Confidential | Copyright © Agile Testing Alliance Global Gathering
  • 16. While implementing toggles... -Try to keep less number of toggles -Mutually Exclusive toggles -Remove the toggles as soon as corresponding feature is implemented completely Confidential | Copyright © Agile Testing Alliance Global Gathering
  • 17. What will you achieve…?! -Continuous integration -More visibility into all work streams -No merge conflicts and hence easy to refactor the code -Reduced time spent on testing Confidential | Copyright © Agile Testing Alliance Global Gathering
  • 18. Having said…. Feature toggle is second best solution. The best solution is to find a way to gradually integrate, without feature toggles or feature switches Confidential | Copyright © Agile Testing Alliance Global Gathering
  • 19. Confidential | Copyright © Agile Testing Alliance Global Gathering

Editor's Notes

  • #8: Feature Toggles are also known as feature flags, feature switches, feature flippers, conditional features.