More and more companies are using Progressive Delivery to get all types of changes – new features, configuration changes, bug fixes, and experiments – into production in a safer, faster, and most importantly, a sustainable way.
Software companies that shift to Progressive Delivery benefit from low risk releases, faster time to market, higher quality, and in general happier teams. Sounds great right? But what happens when your system isn’t implemented correctly, or worse, tested properly?
This talk takes you on a journey of why teams use Progressive Delivery, and the path from basic to advanced feature flag usage.
Make sure you build the right product, and build the product right!
How to decide what testing strategies should be implemented (how to setup your unit test, end to end automation, etc)
What tactics are most effective for keeping your implementation healthy and effective (feature flag governance!).
Failure is an Option: Scaling Resilient Feature DeliveryOptimizely
Designing a perfect, failproof software delivery system is impossible. Failures will happen. What's more important is the speed and reliability of your recovery.
Shipping with feature flags helps you limit your risk in the first place and recover faster when the unexpected happens.
Today, with Optimizely Agent, companies that build their apps using service-oriented architectures can achieve production-scale faster with their feature delivery and experimentation platform.
Lightning Talks by Globant - Automation (This app runs by itself ) Globant
When you add new features to your application a lot of things can happen. Do you believe that the app is able to test itself by using automation? Just imagine testing everything manually due to that change. Do you know how many people will be needed to complete this process? The power of automated testing in the development lifecycle allows us things such as scheduling, and executing tests at any time with a big scope on thousands of mobile devices, websites and multiple browsers simultaneously making sure everything is working as expected.
The Tester’s Role: Balancing Technical Acumen and User AdvocacyTechWell
Ten years ago, many of us started our careers in testing, generally moving from a different internal role. It was common for people who were product users to be hired to jump start their technical career. Now, we see the growth of tester positions that require coding experience or a computer science degree. Melissa Tondi discusses the changing landscape of the role of testers, the challenges when hiring developers with no previous testing experience, and a way to shift the pendulum back to balance technical acumen with a user advocacy role. Melissa leads a thoughtful discussion on what makes a good tester, how we can continue to promote our profession, and how to accentuate the value testers bring to organizations. She identifies factors that caused the test/QA role to become mainstream and how it shifted to become more technically focused. Melissa helps fill in the gaps with a test strategy that balances time for the test team to continue supporting the development efforts while equally emphasizing user advocacy tests. She presents recommendations you can take back to your team to achieve the right balance for your organization.
Building functional Quality Gates with ReportPortalDmitriy Gumeniuk
Presented at SeleniumConf 2023, this talk explores the experience of building Quality Gates using ReportPortal.io for a test regression suite with 200,000 test cases. The discussion highlights the distinctions between functional and non-functional quality gates, explaining why Sonarqube's Quality Gates may be insufficient. It also outlines how to break down the regression structure to organize execution sequences controlled by quality gate checks. These checks are based on various factors, including functional application aspects, test failure types, test case priorities, tested components, user flows, and more—providing a comprehensive approach to ensuring software quality.
Speaker: Dmitriy Gumeniuk, CEO ReportPortal.io,
Head of Testing Products at EPAM Systems.
The talk on youtube: https://www.youtube.com/watch?v=At5MEWqf_TI
View webinar: http://www.eurostarconferences.com/community/member/webinar-archive/webinar-72-big-testing
Large-scale testing projects can stress many of the testing practices we have gotten used to over the years. This can result in less than optimal outcomes. A number of ideas and concepts have therefore emerged to support industrial-strength testing of big and complex projects. In this excerpt from a larger workshop Hans Buwalda shares experiences and the strategies he and his colleagues have used for testing on large projects, both in Europe and the US. Learn how to design tests specifically for automation and how to successfully incorporate keyword testing. See how to obtain more stable automation, what benefits and issues are of virtualization, and what to expect of global outsourcing. The information presented is based on nineteen years of experience with testing and test automation including projects that have tests executing continuously for many weeks on dozens of machines.
Failure is an Option: Scaling Resilient Feature DeliveryOptimizely
Designing a perfect, failproof software delivery system is impossible. Failures will happen. What's more important is the speed and reliability of your recovery.
Shipping with feature flags helps you limit your risk in the first place and recover faster when the unexpected happens.
Today, with Optimizely Agent, companies that build their apps using service-oriented architectures can achieve production-scale faster with their feature delivery and experimentation platform.
Lightning Talks by Globant - Automation (This app runs by itself ) Globant
When you add new features to your application a lot of things can happen. Do you believe that the app is able to test itself by using automation? Just imagine testing everything manually due to that change. Do you know how many people will be needed to complete this process? The power of automated testing in the development lifecycle allows us things such as scheduling, and executing tests at any time with a big scope on thousands of mobile devices, websites and multiple browsers simultaneously making sure everything is working as expected.
The Tester’s Role: Balancing Technical Acumen and User AdvocacyTechWell
Ten years ago, many of us started our careers in testing, generally moving from a different internal role. It was common for people who were product users to be hired to jump start their technical career. Now, we see the growth of tester positions that require coding experience or a computer science degree. Melissa Tondi discusses the changing landscape of the role of testers, the challenges when hiring developers with no previous testing experience, and a way to shift the pendulum back to balance technical acumen with a user advocacy role. Melissa leads a thoughtful discussion on what makes a good tester, how we can continue to promote our profession, and how to accentuate the value testers bring to organizations. She identifies factors that caused the test/QA role to become mainstream and how it shifted to become more technically focused. Melissa helps fill in the gaps with a test strategy that balances time for the test team to continue supporting the development efforts while equally emphasizing user advocacy tests. She presents recommendations you can take back to your team to achieve the right balance for your organization.
Building functional Quality Gates with ReportPortalDmitriy Gumeniuk
Presented at SeleniumConf 2023, this talk explores the experience of building Quality Gates using ReportPortal.io for a test regression suite with 200,000 test cases. The discussion highlights the distinctions between functional and non-functional quality gates, explaining why Sonarqube's Quality Gates may be insufficient. It also outlines how to break down the regression structure to organize execution sequences controlled by quality gate checks. These checks are based on various factors, including functional application aspects, test failure types, test case priorities, tested components, user flows, and more—providing a comprehensive approach to ensuring software quality.
Speaker: Dmitriy Gumeniuk, CEO ReportPortal.io,
Head of Testing Products at EPAM Systems.
The talk on youtube: https://www.youtube.com/watch?v=At5MEWqf_TI
View webinar: http://www.eurostarconferences.com/community/member/webinar-archive/webinar-72-big-testing
Large-scale testing projects can stress many of the testing practices we have gotten used to over the years. This can result in less than optimal outcomes. A number of ideas and concepts have therefore emerged to support industrial-strength testing of big and complex projects. In this excerpt from a larger workshop Hans Buwalda shares experiences and the strategies he and his colleagues have used for testing on large projects, both in Europe and the US. Learn how to design tests specifically for automation and how to successfully incorporate keyword testing. See how to obtain more stable automation, what benefits and issues are of virtualization, and what to expect of global outsourcing. The information presented is based on nineteen years of experience with testing and test automation including projects that have tests executing continuously for many weeks on dozens of machines.
What are Software Testing Methodologies | Software Testing Techniques | EdurekaEdureka!
YouTube Link: https://youtu.be/6rNgPXz9A9s
(** Test Automation Masters Program: https://www.edureka.co/masters-program/automation-testing-engineer-training **)
This Edureka PPT on "Software Testing Methodologies and Techniques" will give you in-depth knowledge about different types of software testing models and techniques
The following are the topics covered in the session:
Importance of Software Testing
Software Testing Methodologies
Software Testing Techniques
Black-Box Techniques
White-Box Techniques
Experience-Based Techniques
Selenium playlist: https://goo.gl/NmuzXE
Selenium Blog playlist: http://bit.ly/2B7C3QR
Software Testing Blog playlist: http://bit.ly/2UXwdJm
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
How to feature flag and run experiments in iOS and AndroidOptimizely
Join Tom Zurkan and Kody O’Connell from Optimizely’s Engineering and Developer Relations teams to learn about the developer experience for the iOS and Android SDKs.
In this webinar, you’ll learn:
- How feature flagging sets a strong foundation for app development
- How the iOS and Android SDKs work
- What to expect when implementing and maintaining Full Stack in your app
- The steps to create feature flags and experiments in your app
- How to get started for free with Optimizely Rollouts
An overview of agile testing and how to incorporate it into an agile software development process.
From a Webinar by uTest: http://www.utest.com/webinar_agile_testing.htm
What are the Key drivers for automation? What are the Challenges in Agile automation and How to deal with them? How to automate? Who will automate? Which tool to select? Commercial or open source? What to automate? Which features? Here is what our experience says
Baking In Quality: The Evolving Role of the Agile TesterTechWell
While more and more organizations are practicing agile development methodologies, many have not learned how to “bake in quality” throughout the process. As an agile tester, you are an integral part of the development team—working on requirements, design, implementation, writing automated tests, and testing However, are all team members working together as they should to ensure quality from day one through final delivery? Dena Laterza offers proven tips to help you and your team make the cultural shift to adopt and foster a “quality first” team standard. Gain an understanding of a tester's involvement in test-driven development and behavior-driven development. Take back new ideas on automating tests, working with stakeholders, and becoming a fully informed tester. Learn how to push testing back into development and maximize the value of testers on the team. Take back a plan to get your agile team working together—as a team.
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web TestingPerfecto by Perforce
The widespread adoption of test automation has created many challenges — for everything from development lifecycle integration to scripting strategy.
One pitfall of automation is that teams often rush to automate everything they can. This is the automation firehose.
However, just because a scenario CAN be automated does not mean it SHOULD be automated. For scenarios that should be automated, teams must adopt implementation plans to ensure tests are reliable and deriving value.
Join this webinar led by Perfecto’s Chief Evangelist, Eran Kinsbruner, along with Thomas Haver, Manager of Automation & Delivery. In this session, the audience will:
-Understand which test scenarios to automate.
-Learn how to maximize the benefits of automation.
-Receive a checklist to determine automation feasibility and ROI.
Driving Agile Product Development with ExperimentationSplit Software
The goal of every engineering & product organization can be summarized as: “Rapid development of valuable software.” Engineers are responsible for rapid development, while product managers are responsible for proving it’s value. But how can you as product manager be responsible for proving the value of a feature just as quickly as your engineering team is releasing those features? The key is through experimentation. Experimentation sits at the confluence of DevOps and product management and allows you to make smarter product decisions faster. In this workshop, we’ll explore the experimentation practices of some of the fastest iterating companies, like Amazon, Google, and Linkedin, and how they achieve a cadence of development that exactly mirrors their ability to measure its value. Then we will cover the challenges and suggested solutions to bringing experimentation to your organization.
Adil Aijaz is CEO and co-founder at Split Software. Adil brings over ten years of engineering and technical experience having worked as a software engineer and technical specialist at some of the most innovative enterprise companies such as LinkedIn, Yahoo!, and most recently RelateIQ (acquired by Salesforce). Prior to founding Split in 2015, Adil’s tenure at these companies helped build the foundation for the startup giving him the needed experience in solving data-driven challenges and delivering data infrastructure. Adil holds a Bachelor of Science in Computer Science & Engineering from UCLA and a Master of Engineering in Computer Science from Cornell University.
What are Software Testing Methodologies | Software Testing Techniques | EdurekaEdureka!
YouTube Link: https://youtu.be/6rNgPXz9A9s
(** Test Automation Masters Program: https://www.edureka.co/masters-program/automation-testing-engineer-training **)
This Edureka PPT on "Software Testing Methodologies and Techniques" will give you in-depth knowledge about different types of software testing models and techniques
The following are the topics covered in the session:
Importance of Software Testing
Software Testing Methodologies
Software Testing Techniques
Black-Box Techniques
White-Box Techniques
Experience-Based Techniques
Selenium playlist: https://goo.gl/NmuzXE
Selenium Blog playlist: http://bit.ly/2B7C3QR
Software Testing Blog playlist: http://bit.ly/2UXwdJm
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
How to feature flag and run experiments in iOS and AndroidOptimizely
Join Tom Zurkan and Kody O’Connell from Optimizely’s Engineering and Developer Relations teams to learn about the developer experience for the iOS and Android SDKs.
In this webinar, you’ll learn:
- How feature flagging sets a strong foundation for app development
- How the iOS and Android SDKs work
- What to expect when implementing and maintaining Full Stack in your app
- The steps to create feature flags and experiments in your app
- How to get started for free with Optimizely Rollouts
An overview of agile testing and how to incorporate it into an agile software development process.
From a Webinar by uTest: http://www.utest.com/webinar_agile_testing.htm
What are the Key drivers for automation? What are the Challenges in Agile automation and How to deal with them? How to automate? Who will automate? Which tool to select? Commercial or open source? What to automate? Which features? Here is what our experience says
Baking In Quality: The Evolving Role of the Agile TesterTechWell
While more and more organizations are practicing agile development methodologies, many have not learned how to “bake in quality” throughout the process. As an agile tester, you are an integral part of the development team—working on requirements, design, implementation, writing automated tests, and testing However, are all team members working together as they should to ensure quality from day one through final delivery? Dena Laterza offers proven tips to help you and your team make the cultural shift to adopt and foster a “quality first” team standard. Gain an understanding of a tester's involvement in test-driven development and behavior-driven development. Take back new ideas on automating tests, working with stakeholders, and becoming a fully informed tester. Learn how to push testing back into development and maximize the value of testers on the team. Take back a plan to get your agile team working together—as a team.
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web TestingPerfecto by Perforce
The widespread adoption of test automation has created many challenges — for everything from development lifecycle integration to scripting strategy.
One pitfall of automation is that teams often rush to automate everything they can. This is the automation firehose.
However, just because a scenario CAN be automated does not mean it SHOULD be automated. For scenarios that should be automated, teams must adopt implementation plans to ensure tests are reliable and deriving value.
Join this webinar led by Perfecto’s Chief Evangelist, Eran Kinsbruner, along with Thomas Haver, Manager of Automation & Delivery. In this session, the audience will:
-Understand which test scenarios to automate.
-Learn how to maximize the benefits of automation.
-Receive a checklist to determine automation feasibility and ROI.
Driving Agile Product Development with ExperimentationSplit Software
The goal of every engineering & product organization can be summarized as: “Rapid development of valuable software.” Engineers are responsible for rapid development, while product managers are responsible for proving it’s value. But how can you as product manager be responsible for proving the value of a feature just as quickly as your engineering team is releasing those features? The key is through experimentation. Experimentation sits at the confluence of DevOps and product management and allows you to make smarter product decisions faster. In this workshop, we’ll explore the experimentation practices of some of the fastest iterating companies, like Amazon, Google, and Linkedin, and how they achieve a cadence of development that exactly mirrors their ability to measure its value. Then we will cover the challenges and suggested solutions to bringing experimentation to your organization.
Adil Aijaz is CEO and co-founder at Split Software. Adil brings over ten years of engineering and technical experience having worked as a software engineer and technical specialist at some of the most innovative enterprise companies such as LinkedIn, Yahoo!, and most recently RelateIQ (acquired by Salesforce). Prior to founding Split in 2015, Adil’s tenure at these companies helped build the foundation for the startup giving him the needed experience in solving data-driven challenges and delivering data infrastructure. Adil holds a Bachelor of Science in Computer Science & Engineering from UCLA and a Master of Engineering in Computer Science from Cornell University.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
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/
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?
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
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?
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.
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”
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
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
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
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
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
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.
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.
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.
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.
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
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.
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
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?
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
Flag info x4
Access Level x2
Risk Level x2
Exit Strategy x2
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.
Experimentation - allows me to drive traffic to different features and measure conversions
Permission - change product experience - bucket your premium users into certain experiences
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.
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.
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.