SlideShare a Scribd company logo
1 of 10
IN TOGGLE, WE TRUST
PUNEET ARORA
PRINCIPAL DESIGNER
DELL DIGITAL
ROLE OF FEATURE TOGGLES IN THE EVOLUTION OF
DELL DIGITAL
The speed with which technology is moving today, customers are able to buy things and experiences in a matter of
seconds. Technology has removed all barriers - not only the ones between online and offline, but also the ones
that caused friction during the decision-making process. Today at Dell Digital, we are going through an
unprecedented change – led by innovative people, newer systems and revolutionary processes.
As we move forward and disrupt ourselves, the need for nimble and frictionless experiences is becoming vital to
our growth. The rise and rise of micro-services is one such example where our organization is firing on all cylinders
– be it Commerce Platform, Buyer or Seller applications.
RISE OF MICRO-SERVICES
AND CHALLENGES
As they say, Big things come in Small packages.
In Commerce services organization, we are trying
to break big “monolithic” applications into small,
independently versioned and scalable micro-
services each of which is designed for a specific
purpose; so as to deploy, test, tweak and then
redeploy them without impacting the overall
system health and status.
But with increased complexity, overwhelming
interdependencies, performance issues arising
from remote service communication and
increased risk of service failures, migrating to a
micro-services architecture can become a big
problem.
TOGGLE
THE
PROBLEM
Kent Beck, the creator of Extreme Programming and one of the leading proponents of TDD (Test Driven
Development) says complexity is the biggest enemy to scaling. He continues saying “When there are many
elements in the system and each can be in one of a large number of states, then figuring out what is going on
and what you should do about it grows impossible.”
Just like engineering teams at the famous FAANG (Facebook, Amazon, Apple, Netflix & Google) do it, we at
Dell are also pushing our code into production servers thousands of times a day. Pivotal-enabled balanced
teams are obsessed with pushing chunks of code for Continuous integration & deployment.
The idea is to make a feature hide behind a flag/toggle switch, expose it to only a set of users (based on
certain parameters) and roll-back changes quickly in case of any issues without a redeployment, enabling the
development teams to launch something in a quick, controlled and low-risk manner. It is a software
development best practice of gating functionality. With feature toggling, we can manage the entire lifecycle
of a feature. Feature toggling also allows developers to release in small cycles with the focus on testing each
feature individually rather than having a huge monolithic release.
Feature toggles can also be called as Feature Flags, Feature Bits or Feature Flippers.
So now we know, a feature toggle (or feature flag) allows you to turn features of your application ON or OFF at
an instant. Just with a simple change, a feature flag enables you to transform your delivery processes to drive
customer feedback, test new mechanisms with less engineering impact and release software faster, with less
risk and greater control of who has access to a feature.
EXPERIMENT,
EXPERIMENT,
EXPERIMENT …
Two of the major capabilities which can be achieved with Feature
Toggling are A/B Testing and Canary Deployment. Both these
capabilities allow Engineering teams to test and analyze the impact
of their code-push in a non-disruptive way.
A/B Testing or sometimes referred as split testing can be viewed as
an experiment led by a hypothesis by comparing different versions
by showing variants for say A and B to different set of users with
segregation based on common attributes, to determine which
variant performs better.
Teams in Buyer organization are already using Feature Toggle in a
big way to test Early Access Program (EAP) to roll out new
functionalities to a select base of users. This way, they not only get
to measure the impact of those features, they are also able to
gauge the acceptability of this program amongst our premium
users.
Similarly, Pricing team is planning to use Feature toggles to analyze
the impact of different discounts and prices rolled out to the users.
Search team recently deployed a dozen toggles from a internally
developed Toggle application to analyze certain things w.r.t
functionality and it’s User Experience (UX).
We have so many use-cases and requests coming from different
teams from all over Dell to use toggle functionality for testing their
features, User Experience and even for canary deployments.
To quote a popular use of canary deployment: Google has an extremely
sophisticated canary release process. Google has extensive unit tests
that allow them to continuously integrate. After continuous integration,
Google has a weekly release cycle. Google’s first canary is Google.com
itself, gradually rolls the new release internally to its own users,
monitoring hundreds of different metrics on scalability and stability. If
core metrics are impacted significantly, the release is rolled back entirely.
However, usually fixes are put in for critical issues and the release goes
to the entire Google employee base.
In the meantime, google continues to monitor for scalability and stability
- using the external users as the true “staging” environment. Google’s
products have a large enough base that they can even do sentiment
analysis for keywords like “Gmail Sucks” on twitter. If there are spikes,
Google will stop or roll back the new release. But usually by the end of
the week, the entire release has been rolled out, and it's time for the
new release.
This type of canary deployment is used to assess and de-risk the overall system. Are users happier? Is more
money made? Does the new feature increase system load? A canary launch allows you to roll out a feature
slowly, and measure the reaction from real user “canaries”, looking for early indicators of danger. If a feature
is not good, it can be rolled back.
Canary Deployment allows you to gradually release new features to a subset of your users while still
serving your current branch to the rest of your users. It basically allows you to test things in parallel
without having to make major merges/deployments.
AS KRIS GALE, CO-FOUNDER AND CTO OF CLOVER HEALTH SAID, “YOU WILL
ALWAYS MAKE BETTER DECISIONS WITH MORE INFORMATION, AND YOU
WILL ALWAYS HAVE MORE INFORMATION IN THE FUTURE.” BUT THE WAY TO
GET MORE INFORMATION IS TO ITERATE.
FEATURE TOGGLING PROVIDES A MECHANISM TO ROLLOUT STABLE, HIGH
QUALITY PRODUCTS CONTINUOUSLY AND GET IMMEDIATE FEEDBACK ON
THEM SO AS TO QUICKLY RE-ITERATE THE CYCLE IN CASE OF ANY ISSUES.
DELL CAN DO THE SAME FOR ITS PRODUCT LINES. SOME EXISTING
EXAMPLES ARE:
STANDARD UI.
"ANY COLOR AS LONG AS IT'S BLUE" IS NOT JUST A STATEMENT OF
ARROGANCE. DESIGNERS ARE EXPERIMENTING WITH VARIOUS SHADES OF
BLUE (AND OTHER COLORS) TO SEE WHICH COLOR WORKS BEST FOR
DIFFERENT GEOGRAPHIES AND USER-SEGMENTS (E.G.- BLUE FOR
DELL.COM AND BLACK FOR ALIENWARE)
CUSTOMIZED OFFERINGS.
BUYER ORGANIZATION IS REGULARLY GETTING FEEDBACK FROM ITS
CUSTOMERS AND IT IS RECOMMENDING A SET OF PRODUCTS ON-THE-FLY
(IN ITS CONFIGURATOR EXPERIENCE) BASED ON WHAT CUSTOMERS ARE
LOOKING FOR.
Data-Driven Decisions
SUMMARY
Not all decisions are reversible.
Learning to distinguish reversible and irreversible decisions early is a key skill and reducing the number of
possible random combinations by providing a data-driven set of offerings has made decision-making
tractable in the development cycle. Over a period of time, we can further reduce this randomness and
complexity of who needs what - to a controlled, measurable set of features – by the use of methods like
A/B testing and Canary Deployments.
THANK YOU

More Related Content

Similar to In Toggle, We Trust

Ship Confidently with progressive delivery and experimentation.pdf
Ship Confidently with progressive delivery and experimentation.pdfShip Confidently with progressive delivery and experimentation.pdf
Ship Confidently with progressive delivery and experimentation.pdfHeyEmbedMe
 
The Ultimate DevOps Playbook
The Ultimate DevOps PlaybookThe Ultimate DevOps Playbook
The Ultimate DevOps PlaybookJalpesh Patel
 
The Ultimate DevOps Playbook
The Ultimate DevOps PlaybookThe Ultimate DevOps Playbook
The Ultimate DevOps PlaybookEggplant
 
The Tester’s Role: Balancing Technical Acumen and User Advocacy
The Tester’s Role: Balancing Technical Acumen and User AdvocacyThe Tester’s Role: Balancing Technical Acumen and User Advocacy
The Tester’s Role: Balancing Technical Acumen and User AdvocacyTechWell
 
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf
 
7 QA Tests You Should Be Running
7 QA Tests You Should Be Running7 QA Tests You Should Be Running
7 QA Tests You Should Be RunningRainforest QA
 
12 considerations for mobile testing (march 2017)
12 considerations for mobile testing (march 2017)12 considerations for mobile testing (march 2017)
12 considerations for mobile testing (march 2017)Antoine Aymer
 
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...Applitools
 
XYZ Fast Prototyping MGMT 3405 1 Definition – Fa.docx
XYZ Fast Prototyping MGMT 3405  1  Definition – Fa.docxXYZ Fast Prototyping MGMT 3405  1  Definition – Fa.docx
XYZ Fast Prototyping MGMT 3405 1 Definition – Fa.docxjeffevans62972
 
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPeter Marshall
 
DevOps_Automation White Paper
DevOps_Automation White PaperDevOps_Automation White Paper
DevOps_Automation White PaperToby Thorslund
 
Development and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsDevelopment and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsMatteo Emili
 
Window Desktop Application Testing
Window Desktop Application TestingWindow Desktop Application Testing
Window Desktop Application TestingTrupti Jethva
 
The Journey of Test Automation
The Journey of Test AutomationThe Journey of Test Automation
The Journey of Test Automationopkey
 
Team Development on Force.com with Github and Ant
Team Development on Force.com with Github and AntTeam Development on Force.com with Github and Ant
Team Development on Force.com with Github and AntSalesforce Developers
 
S cube's mobile application development
S cube's mobile application developmentS cube's mobile application development
S cube's mobile application developmentarti yadav
 
Scube's mobile application development
Scube's mobile application developmentScube's mobile application development
Scube's mobile application developmentarti yadav
 

Similar to In Toggle, We Trust (20)

Ship Confidently with progressive delivery and experimentation.pdf
Ship Confidently with progressive delivery and experimentation.pdfShip Confidently with progressive delivery and experimentation.pdf
Ship Confidently with progressive delivery and experimentation.pdf
 
devops certification
devops certificationdevops certification
devops certification
 
devops certification
devops certificationdevops certification
devops certification
 
The Ultimate DevOps Playbook
The Ultimate DevOps PlaybookThe Ultimate DevOps Playbook
The Ultimate DevOps Playbook
 
The Ultimate DevOps Playbook
The Ultimate DevOps PlaybookThe Ultimate DevOps Playbook
The Ultimate DevOps Playbook
 
The Tester’s Role: Balancing Technical Acumen and User Advocacy
The Tester’s Role: Balancing Technical Acumen and User AdvocacyThe Tester’s Role: Balancing Technical Acumen and User Advocacy
The Tester’s Role: Balancing Technical Acumen and User Advocacy
 
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
 
7 QA Tests You Should Be Running
7 QA Tests You Should Be Running7 QA Tests You Should Be Running
7 QA Tests You Should Be Running
 
12 considerations for mobile testing (march 2017)
12 considerations for mobile testing (march 2017)12 considerations for mobile testing (march 2017)
12 considerations for mobile testing (march 2017)
 
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
 
XYZ Fast Prototyping MGMT 3405 1 Definition – Fa.docx
XYZ Fast Prototyping MGMT 3405  1  Definition – Fa.docxXYZ Fast Prototyping MGMT 3405  1  Definition – Fa.docx
XYZ Fast Prototyping MGMT 3405 1 Definition – Fa.docx
 
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
 
DevOps_Automation White Paper
DevOps_Automation White PaperDevOps_Automation White Paper
DevOps_Automation White Paper
 
Development and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsDevelopment and QA dilemmas in DevOps
Development and QA dilemmas in DevOps
 
Window Desktop Application Testing
Window Desktop Application TestingWindow Desktop Application Testing
Window Desktop Application Testing
 
The Journey of Test Automation
The Journey of Test AutomationThe Journey of Test Automation
The Journey of Test Automation
 
Team Development on Force.com with Github and Ant
Team Development on Force.com with Github and AntTeam Development on Force.com with Github and Ant
Team Development on Force.com with Github and Ant
 
Dark launch
Dark launchDark launch
Dark launch
 
S cube's mobile application development
S cube's mobile application developmentS cube's mobile application development
S cube's mobile application development
 
Scube's mobile application development
Scube's mobile application developmentScube's mobile application development
Scube's mobile application development
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

In Toggle, We Trust

  • 1. IN TOGGLE, WE TRUST PUNEET ARORA PRINCIPAL DESIGNER DELL DIGITAL
  • 2. ROLE OF FEATURE TOGGLES IN THE EVOLUTION OF DELL DIGITAL The speed with which technology is moving today, customers are able to buy things and experiences in a matter of seconds. Technology has removed all barriers - not only the ones between online and offline, but also the ones that caused friction during the decision-making process. Today at Dell Digital, we are going through an unprecedented change – led by innovative people, newer systems and revolutionary processes. As we move forward and disrupt ourselves, the need for nimble and frictionless experiences is becoming vital to our growth. The rise and rise of micro-services is one such example where our organization is firing on all cylinders – be it Commerce Platform, Buyer or Seller applications.
  • 3. RISE OF MICRO-SERVICES AND CHALLENGES As they say, Big things come in Small packages. In Commerce services organization, we are trying to break big “monolithic” applications into small, independently versioned and scalable micro- services each of which is designed for a specific purpose; so as to deploy, test, tweak and then redeploy them without impacting the overall system health and status. But with increased complexity, overwhelming interdependencies, performance issues arising from remote service communication and increased risk of service failures, migrating to a micro-services architecture can become a big problem.
  • 4. TOGGLE THE PROBLEM Kent Beck, the creator of Extreme Programming and one of the leading proponents of TDD (Test Driven Development) says complexity is the biggest enemy to scaling. He continues saying “When there are many elements in the system and each can be in one of a large number of states, then figuring out what is going on and what you should do about it grows impossible.” Just like engineering teams at the famous FAANG (Facebook, Amazon, Apple, Netflix & Google) do it, we at Dell are also pushing our code into production servers thousands of times a day. Pivotal-enabled balanced teams are obsessed with pushing chunks of code for Continuous integration & deployment. The idea is to make a feature hide behind a flag/toggle switch, expose it to only a set of users (based on certain parameters) and roll-back changes quickly in case of any issues without a redeployment, enabling the development teams to launch something in a quick, controlled and low-risk manner. It is a software development best practice of gating functionality. With feature toggling, we can manage the entire lifecycle of a feature. Feature toggling also allows developers to release in small cycles with the focus on testing each feature individually rather than having a huge monolithic release. Feature toggles can also be called as Feature Flags, Feature Bits or Feature Flippers. So now we know, a feature toggle (or feature flag) allows you to turn features of your application ON or OFF at an instant. Just with a simple change, a feature flag enables you to transform your delivery processes to drive customer feedback, test new mechanisms with less engineering impact and release software faster, with less risk and greater control of who has access to a feature.
  • 5. EXPERIMENT, EXPERIMENT, EXPERIMENT … Two of the major capabilities which can be achieved with Feature Toggling are A/B Testing and Canary Deployment. Both these capabilities allow Engineering teams to test and analyze the impact of their code-push in a non-disruptive way. A/B Testing or sometimes referred as split testing can be viewed as an experiment led by a hypothesis by comparing different versions by showing variants for say A and B to different set of users with segregation based on common attributes, to determine which variant performs better.
  • 6. Teams in Buyer organization are already using Feature Toggle in a big way to test Early Access Program (EAP) to roll out new functionalities to a select base of users. This way, they not only get to measure the impact of those features, they are also able to gauge the acceptability of this program amongst our premium users. Similarly, Pricing team is planning to use Feature toggles to analyze the impact of different discounts and prices rolled out to the users. Search team recently deployed a dozen toggles from a internally developed Toggle application to analyze certain things w.r.t functionality and it’s User Experience (UX). We have so many use-cases and requests coming from different teams from all over Dell to use toggle functionality for testing their features, User Experience and even for canary deployments.
  • 7. To quote a popular use of canary deployment: Google has an extremely sophisticated canary release process. Google has extensive unit tests that allow them to continuously integrate. After continuous integration, Google has a weekly release cycle. Google’s first canary is Google.com itself, gradually rolls the new release internally to its own users, monitoring hundreds of different metrics on scalability and stability. If core metrics are impacted significantly, the release is rolled back entirely. However, usually fixes are put in for critical issues and the release goes to the entire Google employee base. In the meantime, google continues to monitor for scalability and stability - using the external users as the true “staging” environment. Google’s products have a large enough base that they can even do sentiment analysis for keywords like “Gmail Sucks” on twitter. If there are spikes, Google will stop or roll back the new release. But usually by the end of the week, the entire release has been rolled out, and it's time for the new release. This type of canary deployment is used to assess and de-risk the overall system. Are users happier? Is more money made? Does the new feature increase system load? A canary launch allows you to roll out a feature slowly, and measure the reaction from real user “canaries”, looking for early indicators of danger. If a feature is not good, it can be rolled back. Canary Deployment allows you to gradually release new features to a subset of your users while still serving your current branch to the rest of your users. It basically allows you to test things in parallel without having to make major merges/deployments.
  • 8. AS KRIS GALE, CO-FOUNDER AND CTO OF CLOVER HEALTH SAID, “YOU WILL ALWAYS MAKE BETTER DECISIONS WITH MORE INFORMATION, AND YOU WILL ALWAYS HAVE MORE INFORMATION IN THE FUTURE.” BUT THE WAY TO GET MORE INFORMATION IS TO ITERATE. FEATURE TOGGLING PROVIDES A MECHANISM TO ROLLOUT STABLE, HIGH QUALITY PRODUCTS CONTINUOUSLY AND GET IMMEDIATE FEEDBACK ON THEM SO AS TO QUICKLY RE-ITERATE THE CYCLE IN CASE OF ANY ISSUES. DELL CAN DO THE SAME FOR ITS PRODUCT LINES. SOME EXISTING EXAMPLES ARE: STANDARD UI. "ANY COLOR AS LONG AS IT'S BLUE" IS NOT JUST A STATEMENT OF ARROGANCE. DESIGNERS ARE EXPERIMENTING WITH VARIOUS SHADES OF BLUE (AND OTHER COLORS) TO SEE WHICH COLOR WORKS BEST FOR DIFFERENT GEOGRAPHIES AND USER-SEGMENTS (E.G.- BLUE FOR DELL.COM AND BLACK FOR ALIENWARE) CUSTOMIZED OFFERINGS. BUYER ORGANIZATION IS REGULARLY GETTING FEEDBACK FROM ITS CUSTOMERS AND IT IS RECOMMENDING A SET OF PRODUCTS ON-THE-FLY (IN ITS CONFIGURATOR EXPERIENCE) BASED ON WHAT CUSTOMERS ARE LOOKING FOR. Data-Driven Decisions
  • 9. SUMMARY Not all decisions are reversible. Learning to distinguish reversible and irreversible decisions early is a key skill and reducing the number of possible random combinations by providing a data-driven set of offerings has made decision-making tractable in the development cycle. Over a period of time, we can further reduce this randomness and complexity of who needs what - to a controlled, measurable set of features – by the use of methods like A/B testing and Canary Deployments.