SlideShare a Scribd company logo
Jeff Sing (Iterable)
Quality Leadership,Testing, and
Governance Tactics that Make or Break
Your Progressive Delivery System
Jeff Sing
● Sr Eng Manager - Quality & Operations
@Iterable
● 15 Years in QA in a variety of industries
● Progressive Delivery Advocate
jeff.sing@iterable.com
https://www.linkedin.com/in/jeffsing/
Quality Leadership,Testing, and
Governance Tactics that Make or Break
Your Progressive Delivery System
Progressive Delivery
“… a new new basket of skill and technologies concerned with modern
software development, testing and deployment. I am thinking of Canarying,
Feature Flags, A/B testing at scale.”
- James Monk, RedMonk
Examples of Progressive Delivery
Continuous Delivery helps your team move faster by
making each change small and manageable.
Progressive Delivery helps your team move faster by
reducing the risk of each change by controlling the
audience exposed.
Data Driven Software Development
Did I build the right Product?
Did I build the Product right?
What happens when you don’t
make good data driven decisions?
if feature_flag is ‘on’:
do_something()
else:
do_something_else()
So… Feature Flags?
enabled: False
header_color: #F829EA
header_sticky: True
header_height: 20
header_message: ‘We love
our users <3’
mobile_app_header
Feature Rollout
Disable header in
production, no code
change.
enabled: True
header_color: #F829EA
header_sticky: True
header_height: 20
header_message: ‘We love
our users <3’
mobile_app_header
Feature Rollout
Slowly rollout new
header to only
certain customers.
Software Development Life Cycle
Build & Test
● Features don’t need
to be completed to
get merged
● No wasted time
untangling messy
merge conflicts
Deploy
● Ship faster by
decoupling deploys
from releases to
shorten dev cycle
● Deploy frequently
and safety
Release
● Empower teams to
manage their own
releases
● Quickly rollback
production
incidents (way
faster MTTR)
Feature Flag Solutions
Companies home build their own progressive
delivery solution. Engineering usually builds
solution and iterates on functionality as the
system matures (Uber Piranha).
Vendor bought solution such as Optimizely or
LaunchDarkly. These vendors charge by seats
and unique visits. Typically they provide a SDK
to integrate with your system and custom
dashboards.
Homebuilt Solutions Vendor Solutions
Quality Leadership,Testing, and
Governance Tactics that Make or Break
Your Progressive Delivery System
Governance Tactics
Mission Control Damage Control
Testing
Why governance and testing?
Feature Flags
What could go wrong?
What does this flag do? Who turned off my flag? Who touched my flag?
Horror Story Time!
Feature Flag Governance
Feature Flag Governance
Flag Info
General Info
- What does Flag do
when it’s On/Off
- What env is it
deployed?
Visibility
- Who needs to know if
this is On/Off?
- Who is monitoring
metrics?
Risk Level
How dangerous is this to
roll out?
What happens if something
catastrophic happens to
this flag?
Access Level
Who is allowed to make
changes to this feature flag?
How do we track this?
Exit Strategy
When is this feature flag no
longer useful?
When it is no longer useful,
who is removing it?
Example: Launch Darkly Governance
Example: Launch Darkly Governance
Example: Governance
Flag Info
1. Feature On Behavior
2. Feature Off Behavior
3. Who actually owns this
Feature Flag
Example: Governance
Risk Level
1. Can I roll back?
2. What happens if this
flag fails?
Example: Governance
Exit Strategy
1. When should I remove
this?
2. When can I remove this?
3. Who should be removing
this?
Feature Flag Testing Strategy
Testing Strategy
Test Type High Level Strategy
Manual Test Only most critical variations.
E2E Test Focus only on important variations
and test application still works if all
features are on/off
Integration Test Mock and stub to control feature
states. Focus on individual code paths
to ensure proper integration and
business logic
Unit Test Each code path should have its own
set of independent unit tests. Ensure
high code coverage, just as if you
didn’t have any feature flags in your
codebase.
General E2E Automation Test Strategy
Test Runner + INDETERMINISM =
General E2E Automation Test Strategy
Remove
INDETERMINISM
1. Special Test User
2. Test Query Parameter to
force a particular version
3. API Endpoint to set variation
HELENA
PATTERSON
“Despite being red, Mars is a
cold place. It’s full of iron
oxide dust, which gives the
planet its reddish cast”
Special Test User
(Launch Darkly)
General E2E Automation Test Strategy
(Query Parameter)
General E2E Automation Test Strategy
(Automation Controls Path w/API calls)
Feature Flag Types
Feature Rollout
For deploying a new feature
that will be permanent.
Experimentation
Perform A/B/n tests against
our deployed features.
Short Term
enabled: True
header_color: #F829EA
header_sticky: True
header_height: 20
header_message: ‘We love
our users <3’
mobile_app_header
Experimentation
Does header “We
love our users <3”
drive more
conversions vs “Hi,
welcome?” enabled: True
header_color: #F829EA
header_sticky: True
header_height: 20
header_message: ‘Hi,
welcome?’
mobile_app_header
50% 50%
Customer A Customer B
Feature Flag Types
Feature Rollout
For deploying a new feature
that will be permanent.
Experimentation
Perform A/B/n tests against
our deployed features.
Permission
Change product experience
that certain users receive
Short Term
Long Term
enabled: True
user_tier: premium
header_height: 20
premium_view
Permissions
Is user_tier type
premium? If so, allow
them to access the
premium content.
Feature Flag Types
Feature Rollout
For deploying a new feature
that will be permanent.
Experimentation
Perform A/B/n tests against
our deployed features.
Permission
Change product experience
that certain users receive
Operation
Controls operational
aspects of your system;
allows control of certain
operational features in your
production environment
Short Term
Long Term
enabled: True
checkout_version: 3
quick_checkout: True
header_height: 20
checkout_flow
Operations
Change the
checkout_flow
dynamically without
having to deploy.
enabled: True
checkout_version: 3
quick_checkout: True
header_height: 20
checkout_flow
Operations
Change the
checkout_flow
dynamically without
having to deploy.
4
Feature Flag Types
Feature Rollout
For deploying a new feature
that will be permanent.
Experimentation
Perform A/B/n tests against
our deployed features.
Permission
Change product experience
that certain users receive
Operation
Controls operational
aspects of your system;
allows control of certain
operational features in your
production environment
Circuit Breaker
Turn on/off certain features
or conditions in your
production environment.
Short Term
Long Term
enabled: True
fresh_boost: 1.25
profile_boost: 2.10
local_boost: 0.75
search_ranking_algorithm Circuit Breaker
Turn on/off
search_ranking_alogrithm.
enabled: False
fresh_boost: 1.25
profile_boost: 2.10
local_boost: 0.75
search_ranking_algorithm Circuit Breaker
Turn on/off
search_ranking_alogrithm.
Governance Tactics
Mission Control Damage Control
Testing
Same but Very Different...
Feature Flags
Feature Flag Governance
Feature Flag Governance
Flag Info
Access
Level
Risk Level
Exit
Strategy
Experiment
Hypothesis
driven
Product/Eng Low Experiment End
Permission
Business Tier
Provisioning Info
CS/AE/GTM
Restrictive
Access
High Rare
Operational Eng Runbook Eng High/Medium
If Feature
Deprecates
Circuit
Breaker
Eng Runbook Eng Low
If Feature
Deprecates
Example: Governance (Flag Info)
Example: Governance (Access)
Example: Governance (Risk)
Example: Governance (Removal)
Feature Flag Testing
Permission: E2E Test Strategy
Permissions
1. Checking that
“provisioning” is correct
2. Automation should
check all paths
3. High sensitivity in
regression that we don’t
remove a customers
features
Operational: E2E Test Strategy
Operational
1. Validate “default”
condition
2. Strategy to validate
operational values may
vary...
3. Doesn’t always make
sense to automate all
paths...
enabled: True
checkout_version: 3
quick_checkout: True
header_height: 20
checkout_flow
Circuit Breaker: E2E Test Strategy
Circuit Breaker
1. Regression Automation:
Product still works if
flag is ON, and still
works if OFF
2. 3rd Party Integrations -
usually manually tested
TAKEAWAYS
POWERING MODERN
DEPLOYMENT
Feature Flags used correctly are
an incredibly powerful
engineering tool.
CONTROLLED BLAST
RADIUS
Quality champions rejoice! Plus
our MTTR should be factors
better!
01
03
02
04
05
06
THOUGHTFUL
IMPLEMENTATION
Ensure your organization has a
strong process for
releasing/managing/removing
your feature flag, or else
technical debt can punish you.
FEATURE FLAG
DIFFERENTIATION
Not all Feature Flags are alike,
why would you treat them so?
DETERMINISTIC
TESTING
Ensure you are properly testing
your feature flags and that you
have good feature coverage for
each path.
QUALITY LEADERSHIP
Every organization needs
leadership around governance
and testing.
Interested in learning more about Feature Flags? Or trying them?
VENDORS
■ Optimizely (Free Rollouts): https://www.optimizely.com/rollouts/
■ LaunchDarkly: https://launchdarkly.com/
■ Split: https://split.io/
FURTHER READING
■ Feature Toggles: https://martinfowler.com/articles/feature-toggles.html
■ Getting Started WIth Feature Flags: https://dzone.com/refcardz/getting-started-with-feature-flags
■ Unleash (open source Feature Flag): https://github.com/Unleash/unleash
RESOURCES
CREDITS: This presentation template was created by Slidesgo, including
icons by Flaticon, and infographics & images by Freepik.
Please keep this slide for attribution.
jeff.sing@iterable.com
https://www.linkedin.com/in/jeffsing
/
Stay in Touch

More Related Content

Similar to Quality Leadership, Testing, and Governance Tactics that Make or Break Your Progressive Delivery System - Jeff Sing

What are Software Testing Methodologies | Software Testing Techniques | Edureka
What are Software Testing Methodologies | Software Testing Techniques | EdurekaWhat are Software Testing Methodologies | Software Testing Techniques | Edureka
What are Software Testing Methodologies | Software Testing Techniques | Edureka
Edureka!
 
Enhancing Software Quality
Enhancing Software QualityEnhancing Software Quality
Enhancing Software Quality
Anand Prabhala
 
How to feature flag and run experiments in iOS and Android
How to feature flag and run experiments in iOS and AndroidHow to feature flag and run experiments in iOS and Android
How to feature flag and run experiments in iOS and Android
Optimizely
 
Some Commonly Asked Question For Software Testing
Some Commonly Asked Question For Software TestingSome Commonly Asked Question For Software Testing
Some Commonly Asked Question For Software Testing
Kumari Warsha Goel
 
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas HaverThe Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
QA or the Highway
 
Automation testing
Automation testingAutomation testing
Automation testing
Tomy Rhymond
 
Model Driven Testing: requirements, models & test
Model Driven Testing: requirements, models & test Model Driven Testing: requirements, models & test
Model Driven Testing: requirements, models & test
Gregory Solovey
 
Software Quality Assurance Engineer_Lenin_Resume
Software Quality Assurance Engineer_Lenin_ResumeSoftware Quality Assurance Engineer_Lenin_Resume
Software Quality Assurance Engineer_Lenin_ResumeLenin MS
 
360logica At A Glance
360logica At A Glance360logica At A Glance
360logica At A Glance
guestf2e1db
 
manas expre-01
manas expre-01manas expre-01
manas expre-01Manas Rout
 
Optimizing Your Agile Testing Processes
Optimizing Your Agile Testing ProcessesOptimizing Your Agile Testing Processes
Optimizing Your Agile Testing Processes
Stanton Champion
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
Naresh Jain
 
Baking In Quality: The Evolving Role of the Agile Tester
Baking In Quality: The Evolving Role of the Agile TesterBaking In Quality: The Evolving Role of the Agile Tester
Baking In Quality: The Evolving Role of the Agile Tester
TechWell
 
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web Testing
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web TestingThe Automation Firehose: Be Strategic & Tactical With Your Mobile & Web Testing
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web Testing
Perfecto by Perforce
 
Driving Agile Product Development with Experimentation
Driving Agile Product Development with ExperimentationDriving Agile Product Development with Experimentation
Driving Agile Product Development with Experimentation
Split Software
 
Tahseen Experience Resume
Tahseen Experience  ResumeTahseen Experience  Resume
Tahseen Experience ResumeSyed Ali
 
Testing 3: Types Of Tests That May Be Required
Testing 3: Types Of Tests That May Be RequiredTesting 3: Types Of Tests That May Be Required
Testing 3: Types Of Tests That May Be Required
ArleneAndrews2
 
Adaptive Development Methodology
Adaptive Development MethodologyAdaptive Development Methodology
Adaptive Development Methodology
Steve Greene
 

Similar to Quality Leadership, Testing, and Governance Tactics that Make or Break Your Progressive Delivery System - Jeff Sing (20)

What are Software Testing Methodologies | Software Testing Techniques | Edureka
What are Software Testing Methodologies | Software Testing Techniques | EdurekaWhat are Software Testing Methodologies | Software Testing Techniques | Edureka
What are Software Testing Methodologies | Software Testing Techniques | Edureka
 
Enhancing Software Quality
Enhancing Software QualityEnhancing Software Quality
Enhancing Software Quality
 
How to feature flag and run experiments in iOS and Android
How to feature flag and run experiments in iOS and AndroidHow to feature flag and run experiments in iOS and Android
How to feature flag and run experiments in iOS and Android
 
Some Commonly Asked Question For Software Testing
Some Commonly Asked Question For Software TestingSome Commonly Asked Question For Software Testing
Some Commonly Asked Question For Software Testing
 
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas HaverThe Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Model Driven Testing: requirements, models & test
Model Driven Testing: requirements, models & test Model Driven Testing: requirements, models & test
Model Driven Testing: requirements, models & test
 
Software Quality Assurance Engineer_Lenin_Resume
Software Quality Assurance Engineer_Lenin_ResumeSoftware Quality Assurance Engineer_Lenin_Resume
Software Quality Assurance Engineer_Lenin_Resume
 
360logica At A Glance
360logica At A Glance360logica At A Glance
360logica At A Glance
 
manas expre-01
manas expre-01manas expre-01
manas expre-01
 
Optimizing Your Agile Testing Processes
Optimizing Your Agile Testing ProcessesOptimizing Your Agile Testing Processes
Optimizing Your Agile Testing Processes
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
 
Baking In Quality: The Evolving Role of the Agile Tester
Baking In Quality: The Evolving Role of the Agile TesterBaking In Quality: The Evolving Role of the Agile Tester
Baking In Quality: The Evolving Role of the Agile Tester
 
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web Testing
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web TestingThe Automation Firehose: Be Strategic & Tactical With Your Mobile & Web Testing
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web Testing
 
Driving Agile Product Development with Experimentation
Driving Agile Product Development with ExperimentationDriving Agile Product Development with Experimentation
Driving Agile Product Development with Experimentation
 
Tahseen Experience Resume
Tahseen Experience  ResumeTahseen Experience  Resume
Tahseen Experience Resume
 
SANGEETHA S JADAV
SANGEETHA S JADAVSANGEETHA S JADAV
SANGEETHA S JADAV
 
Testing 3: Types Of Tests That May Be Required
Testing 3: Types Of Tests That May Be RequiredTesting 3: Types Of Tests That May Be Required
Testing 3: Types Of Tests That May Be Required
 
Rich_CV
Rich_CVRich_CV
Rich_CV
 
Adaptive Development Methodology
Adaptive Development MethodologyAdaptive Development Methodology
Adaptive Development Methodology
 

More from QA or the Highway

KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
QA or the Highway
 
Ravi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptxRavi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptx
QA or the Highway
 
Caleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptxCaleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptx
QA or the Highway
 
Thomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdfThomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdf
QA or the Highway
 
Thomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdfThomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdf
QA or the Highway
 
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdfJoe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
QA or the Highway
 
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdfSarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
QA or the Highway
 
Jeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdfJeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdf
QA or the Highway
 
Leandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdfLeandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdf
QA or the Highway
 
Rick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdfRick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdf
QA or the Highway
 
Robert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptxRobert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptx
QA or the Highway
 
Federico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdfFederico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdf
QA or the Highway
 
Andrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptxAndrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptx
QA or the Highway
 
Melissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdfMelissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdf
QA or the Highway
 
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdfJeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
QA or the Highway
 
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
QA or the Highway
 
Damian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdfDamian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdf
QA or the Highway
 
Lee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdfLee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdf
QA or the Highway
 
Jordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptxJordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptx
QA or the Highway
 
Carlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptxCarlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptx
QA or the Highway
 

More from QA or the Highway (20)

KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
 
Ravi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptxRavi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptx
 
Caleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptxCaleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptx
 
Thomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdfThomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdf
 
Thomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdfThomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdf
 
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdfJoe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
 
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdfSarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
 
Jeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdfJeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdf
 
Leandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdfLeandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdf
 
Rick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdfRick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdf
 
Robert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptxRobert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptx
 
Federico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdfFederico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdf
 
Andrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptxAndrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptx
 
Melissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdfMelissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdf
 
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdfJeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
 
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
 
Damian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdfDamian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdf
 
Lee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdfLee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdf
 
Jordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptxJordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptx
 
Carlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptxCarlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptx
 

Recently uploaded

SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 

Recently uploaded (20)

SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 

Quality Leadership, Testing, and Governance Tactics that Make or Break Your Progressive Delivery System - Jeff Sing

  • 1. Jeff Sing (Iterable) Quality Leadership,Testing, and Governance Tactics that Make or Break Your Progressive Delivery System
  • 2. Jeff Sing ● Sr Eng Manager - Quality & Operations @Iterable ● 15 Years in QA in a variety of industries ● Progressive Delivery Advocate jeff.sing@iterable.com https://www.linkedin.com/in/jeffsing/
  • 3. Quality Leadership,Testing, and Governance Tactics that Make or Break Your Progressive Delivery System
  • 4. Progressive Delivery “… a new new basket of skill and technologies concerned with modern software development, testing and deployment. I am thinking of Canarying, Feature Flags, A/B testing at scale.” - James Monk, RedMonk
  • 6. Continuous Delivery helps your team move faster by making each change small and manageable. Progressive Delivery helps your team move faster by reducing the risk of each change by controlling the audience exposed.
  • 7. Data Driven Software Development Did I build the right Product? Did I build the Product right?
  • 8. What happens when you don’t make good data driven decisions?
  • 9. if feature_flag is ‘on’: do_something() else: do_something_else() So… Feature Flags?
  • 10. enabled: False header_color: #F829EA header_sticky: True header_height: 20 header_message: ‘We love our users <3’ mobile_app_header Feature Rollout Disable header in production, no code change.
  • 11. enabled: True header_color: #F829EA header_sticky: True header_height: 20 header_message: ‘We love our users <3’ mobile_app_header Feature Rollout Slowly rollout new header to only certain customers.
  • 12. Software Development Life Cycle Build & Test ● Features don’t need to be completed to get merged ● No wasted time untangling messy merge conflicts Deploy ● Ship faster by decoupling deploys from releases to shorten dev cycle ● Deploy frequently and safety Release ● Empower teams to manage their own releases ● Quickly rollback production incidents (way faster MTTR)
  • 13. Feature Flag Solutions Companies home build their own progressive delivery solution. Engineering usually builds solution and iterates on functionality as the system matures (Uber Piranha). Vendor bought solution such as Optimizely or LaunchDarkly. These vendors charge by seats and unique visits. Typically they provide a SDK to integrate with your system and custom dashboards. Homebuilt Solutions Vendor Solutions
  • 14. Quality Leadership,Testing, and Governance Tactics that Make or Break Your Progressive Delivery System
  • 15. Governance Tactics Mission Control Damage Control Testing Why governance and testing? Feature Flags
  • 16. What could go wrong? What does this flag do? Who turned off my flag? Who touched my flag?
  • 19. Feature Flag Governance Flag Info General Info - What does Flag do when it’s On/Off - What env is it deployed? Visibility - Who needs to know if this is On/Off? - Who is monitoring metrics? Risk Level How dangerous is this to roll out? What happens if something catastrophic happens to this flag? Access Level Who is allowed to make changes to this feature flag? How do we track this? Exit Strategy When is this feature flag no longer useful? When it is no longer useful, who is removing it?
  • 22. Example: Governance Flag Info 1. Feature On Behavior 2. Feature Off Behavior 3. Who actually owns this Feature Flag
  • 23. Example: Governance Risk Level 1. Can I roll back? 2. What happens if this flag fails?
  • 24. Example: Governance Exit Strategy 1. When should I remove this? 2. When can I remove this? 3. Who should be removing this?
  • 26. Testing Strategy Test Type High Level Strategy Manual Test Only most critical variations. E2E Test Focus only on important variations and test application still works if all features are on/off Integration Test Mock and stub to control feature states. Focus on individual code paths to ensure proper integration and business logic Unit Test Each code path should have its own set of independent unit tests. Ensure high code coverage, just as if you didn’t have any feature flags in your codebase.
  • 27. General E2E Automation Test Strategy Test Runner + INDETERMINISM =
  • 28. General E2E Automation Test Strategy Remove INDETERMINISM 1. Special Test User 2. Test Query Parameter to force a particular version 3. API Endpoint to set variation HELENA PATTERSON “Despite being red, Mars is a cold place. It’s full of iron oxide dust, which gives the planet its reddish cast”
  • 30. General E2E Automation Test Strategy (Query Parameter)
  • 31. General E2E Automation Test Strategy (Automation Controls Path w/API calls)
  • 32.
  • 33. Feature Flag Types Feature Rollout For deploying a new feature that will be permanent. Experimentation Perform A/B/n tests against our deployed features. Short Term
  • 34. enabled: True header_color: #F829EA header_sticky: True header_height: 20 header_message: ‘We love our users <3’ mobile_app_header Experimentation Does header “We love our users <3” drive more conversions vs “Hi, welcome?” enabled: True header_color: #F829EA header_sticky: True header_height: 20 header_message: ‘Hi, welcome?’ mobile_app_header 50% 50% Customer A Customer B
  • 35. Feature Flag Types Feature Rollout For deploying a new feature that will be permanent. Experimentation Perform A/B/n tests against our deployed features. Permission Change product experience that certain users receive Short Term Long Term
  • 36. enabled: True user_tier: premium header_height: 20 premium_view Permissions Is user_tier type premium? If so, allow them to access the premium content.
  • 37. Feature Flag Types Feature Rollout For deploying a new feature that will be permanent. Experimentation Perform A/B/n tests against our deployed features. Permission Change product experience that certain users receive Operation Controls operational aspects of your system; allows control of certain operational features in your production environment Short Term Long Term
  • 38. enabled: True checkout_version: 3 quick_checkout: True header_height: 20 checkout_flow Operations Change the checkout_flow dynamically without having to deploy.
  • 39. enabled: True checkout_version: 3 quick_checkout: True header_height: 20 checkout_flow Operations Change the checkout_flow dynamically without having to deploy. 4
  • 40. Feature Flag Types Feature Rollout For deploying a new feature that will be permanent. Experimentation Perform A/B/n tests against our deployed features. Permission Change product experience that certain users receive Operation Controls operational aspects of your system; allows control of certain operational features in your production environment Circuit Breaker Turn on/off certain features or conditions in your production environment. Short Term Long Term
  • 41. enabled: True fresh_boost: 1.25 profile_boost: 2.10 local_boost: 0.75 search_ranking_algorithm Circuit Breaker Turn on/off search_ranking_alogrithm.
  • 42. enabled: False fresh_boost: 1.25 profile_boost: 2.10 local_boost: 0.75 search_ranking_algorithm Circuit Breaker Turn on/off search_ranking_alogrithm.
  • 43. Governance Tactics Mission Control Damage Control Testing Same but Very Different... Feature Flags
  • 45. Feature Flag Governance Flag Info Access Level Risk Level Exit Strategy Experiment Hypothesis driven Product/Eng Low Experiment End Permission Business Tier Provisioning Info CS/AE/GTM Restrictive Access High Rare Operational Eng Runbook Eng High/Medium If Feature Deprecates Circuit Breaker Eng Runbook Eng Low If Feature Deprecates
  • 51. Permission: E2E Test Strategy Permissions 1. Checking that “provisioning” is correct 2. Automation should check all paths 3. High sensitivity in regression that we don’t remove a customers features
  • 52. Operational: E2E Test Strategy Operational 1. Validate “default” condition 2. Strategy to validate operational values may vary... 3. Doesn’t always make sense to automate all paths... enabled: True checkout_version: 3 quick_checkout: True header_height: 20 checkout_flow
  • 53. Circuit Breaker: E2E Test Strategy Circuit Breaker 1. Regression Automation: Product still works if flag is ON, and still works if OFF 2. 3rd Party Integrations - usually manually tested
  • 54. TAKEAWAYS POWERING MODERN DEPLOYMENT Feature Flags used correctly are an incredibly powerful engineering tool. CONTROLLED BLAST RADIUS Quality champions rejoice! Plus our MTTR should be factors better! 01 03 02 04 05 06 THOUGHTFUL IMPLEMENTATION Ensure your organization has a strong process for releasing/managing/removing your feature flag, or else technical debt can punish you. FEATURE FLAG DIFFERENTIATION Not all Feature Flags are alike, why would you treat them so? DETERMINISTIC TESTING Ensure you are properly testing your feature flags and that you have good feature coverage for each path. QUALITY LEADERSHIP Every organization needs leadership around governance and testing.
  • 55. Interested in learning more about Feature Flags? Or trying them? VENDORS ■ Optimizely (Free Rollouts): https://www.optimizely.com/rollouts/ ■ LaunchDarkly: https://launchdarkly.com/ ■ Split: https://split.io/ FURTHER READING ■ Feature Toggles: https://martinfowler.com/articles/feature-toggles.html ■ Getting Started WIth Feature Flags: https://dzone.com/refcardz/getting-started-with-feature-flags ■ Unleash (open source Feature Flag): https://github.com/Unleash/unleash RESOURCES
  • 56. CREDITS: This presentation template was created by Slidesgo, including icons by Flaticon, and infographics & images by Freepik. Please keep this slide for attribution. jeff.sing@iterable.com https://www.linkedin.com/in/jeffsing / Stay in Touch

Editor's Notes

  1. Currently am leading the Quality Program and Engineering Operations at Iterable - a cross channel marketing platform that enables e-commerce customers to control their customer experience and understand and measure every interaction across their entire customer journey. We serve customers like Doordash, MadisonReed, zillow, and asics. 15 Years Web Security/Fraud Prevention Medical Devices Marketing Tech (most recently) Everything from small medium to humongous
  2. Continuous Delivery is a set of practices that ensure your code is always in a deployable state. You accomplish this by increasing the frequency at which code is committed, built, tested, and deployed—steps that in the past only occurred at the end of a project when it was ‘code complete’. Because your team is delivering frequently, every change is smaller. Changes are more isolated and less risky. Problems are identified more readily, and bugs are fixed more easily because they are discovered immediately. Progressive Delivery is the technique of delivering changes first to small, low-risk audiences, and then expanding to larger and riskier audiences, validating the results as you go. We can accomplish this by deploying first to a certain environment or certain user.
  3. What does that mean? Well in QA, a lot of our orchestration is around to answer this question - Did I build the product right? Automation test, test planning, feature testing matrixes, etc is to answer did we release correctly? CI helps us with this because it makes it easier for us to do this, smaller changes, smaller releases... On the other hand, all of this cannot help us determine if we built the right product. Using Progressive Delivery we can not only control our feature rollouts, but we can experiment on who and what our customers experience is, and determine if this is the right feature to release.
  4. So let’s talk orchestration of Progressive Delivery: The primary method in the software development industry to orchestrate this are Feature Flags. Essentially you are wrapping your features behind a flag and orchestrating it so that when you deploy to production, it isn’t visible until you are ready to flip the switch. Now obviously their are more complexities to this, but this is the core concept. You can build on top to have a method to deploy in a sliding scale (so 20% of your audience, 40%, 60% etc) or pass in certain values or configurations that only affect features behind that flag.
  5. So let’s look at an example, here is what I would call a feature rollout which i just mentioned. Here my feature flag (mobile_app_header) is disabled. When my users come to my app, nothing is in the header. However when I’m ready to flip it on, it will appear in production.
  6. Build & Test - no stale feature branches, smaller code reviews Deploy - we actually deploy constantly at Iterable. This allows us to test certain features in production. Release - SE can release certain features, teams can control betas. QA perspective MTTR has improved
  7. For todays talk - I’ll talk around the 2 major ways companies are implementing FF - either as as homebuilt solution or vendors (in this case Launch Darkly). Each have their pros and cons but this talk easily applies to both.
  8. So now that I’ve talked a bit about progressive delivery and the power of feature flags, let’s get to the meat of this talk… testing and governance tactics
  9. What does this flag do: You have a feature flag out forever, the developer leaves, and now you have no idea what it does, I guess you can never turn it off safely… Who turned off my flag: A new engineer comes, misreads some doc, and turns off a flag not realzing it causes a catastrophic outage Who touched my flag: This one is more insidious, we didn’t remove a feature flag, and the other dev teams didn’t realize it was in your code base. Someone builds a feature flag upstream and turns it off, suddenly your flag no longer behaves the way you think it does. Who touched your flag? Why?
  10. Knights capital - high frequency trading algorith - KNIGHT was largets trader in US equities market with a mrket share of 17.3% on NYSE and 16.9 on NASDAQ. Developers reusing a flag that was no longer thought to be in use. Dead code coming back to life. One server started making as many trades as fast as possible without limit Rolled back within 45 minutes. ½ billion dollars
  11. Flag info x4 Access Level x2 Risk Level x2 Exit Strategy x2
  12. Unit testing - your developers should be writing these with the mentality that you didn’t have any feature flags in your codebase Integration tests - this is important to have orchestration to mock or stub your feature states. You need to make sure the code paths are tested The top part of our pyramids - automation gets expensive, and you may have many feature paths, so for E2E you really want to make sure you are testing your critical variations - also don’t forget to test OFF state, as your flags may be in for abit and at any point you could be turning off your feature Manual Testing - is super important. You should be checking your critical variations. What is important though is you need to expose your manual testers tooling to be able to control the flags to let them get into the right variation. … also make sure your tooling lets you know what variation you are in.
  13. Experimentation - allows me to drive traffic to different features and measure conversions
  14. Permission - change product experience - bucket your premium users into certain experiences
  15. Operation - controls operational aspects - some examples, you can hook a feature variable to your features, so if the code base is activated it dynamically will pull that value in, meaning you can do something like point to where the source of an image is dynamically change it by modifying the resource location, or maybe a devops config change, where you can modify how many instances are being spun up, etc.
  16. Since permission flags are acting as gates for a tested feature, testing for permission feature flags revolve around ensuring the right customer is correctly bucketed rather than if the feature is working. This is usually handled by the business systems team as we add users into the permission flag. In general they perform this by picking a customer and emulating their experience on our product and validating that they are getting the correct set of features purchased.
  17. Since permission flags are acting as gates for a tested feature, testing for permission feature flags revolve around ensuring the right customer is correctly bucketed rather than if the feature is working. This is usually handled by the business systems team as we add users into the permission flag. In general they perform this by picking a customer and emulating their experience on our product and validating that they are getting the correct set of features purchased.