SlideShare a Scribd company logo
1 of 58
Experimenting on Humans 
Aviran Mordo 
Head of Back-end Engineering 
@aviranm 
http://www.linkedin.com/in/aviran 
http://www.aviransplace.com 
Talya Gendler 
Back-end Team Leader 
www.linkedin.com/in/talyagendler
Wix In Numbers 
Over 55M users + 1M new users/month 
Static storage is >1.5Pb of data 
3 data centers + 3 clouds (Google, Amazon, Azure) 
1.5B HTTP requests/day 
800 people work at Wix, of which ~ 300 in R&D
Agenda 
Basic A/B testing 
Experiment driven development 
PETRI – Wix’s 3rd generation open source experiment system 
Challenges and best practices 
Complexities and effect on product
00:59 A/B Test
Home page results 
(How many registered)
This is the Wix editor
Our gallery manager 
What can we improve?
Is this better?
Product Experiments 
Toggles & Reporting 
Infrastructure
How do you know what is running?
Why so many? 
If I “know” it is better, do I really need 
to test it?
Sign-up 
Choose 
Template 
The theory 
Edit site Publish Premium
Conclusion 
EVERY new feature is A/B tested 
We open the new feature to a % of users 
Measure success 
 If it is better, we keep it 
 If worse, we check why and improve 
If flawed, the impact is just for % of our users
Start with 50% / 50% ?
Sh*t happens (Test could fail) 
New code can have bugs 
Conversion can drop 
Usage can drop 
Unexpected cross test dependencies
Minimize affected users 
(in case of failure) 
Gradual exposure (percentage of…) 
Language 
GEO 
Browser 
User-agent 
OS 
Company employees 
User roles 
Any other criteria you have 
(extendable) 
All users
Not all users are equal 
First time visitors = Never visited wix.com 
New registered users = Untainted users
Start new experiment (limited population)
Adding a mobile view
First trial failed 
Performance had to be improved
Halting the test results in loss of data. 
What can we do about it?
Solution – Pause the experiment! 
• Maintain NEW experience for already exposed users 
• No additional users will be exposed to the NEW feature
PETRI’s pause implementation 
Use cookies to persist assignment 
If user changes browser assignment is unknown 
Server side persistence solves this 
You pay in performance & scalability
Decision 
Keep feature Drop feature 
Improve code & 
resume experiment 
Keep backwards compatibility for 
exposed users forever? 
Migrate users to another equivalent 
feature 
Drop it all together (users lose 
data/work)
Reaching statistical significance 
Numbers look good but sample size is small 
We need more data! 
Expand 
Control Group (A) 
Test Group (B)
Keep user experience consistent 
Control 
Group 
(A) 
Test 
Group 
(B)
Keeping persistent UX 
Signed-in user (Editor) 
Test group assignment is determined by the user ID 
 Guarantee toss persistency across browsers 
Anonymous user (Home page) 
 Test group assignment is randomly determined 
Can not guarantee persistent experience if changing 
browser 
11% of Wix users use more than one desktop browser
Always exclude robots 
Don’t let Google index a losing page 
Don’t let bots affect statistics
Possible states >= 2^(# experiments) 
# of active 
experiment 
Possible # of 
states 
10 1024 
20 1,048,576 
30 1,073,741,824 
Wix has ~200 active experiments = 1.606938e+60
Managing an ever changing production env. 
Supporting 2^N different users is challenging 
How do you know which experiment causes errors?
Specialized tools 
Override options (URL parameters, cookies, headers…) 
Near real time user BI tools
Integrated into the product
Why should product care about the 
system architecture
Share document with other users
Document owner is part of a test that 
enables a new video component
What will the other user experience 
when editing a shared document ? 
Owner Friend
Assignment may be different than owner’s 
Owner (B) Friend (A)
Possible solutions 
Enable features by existing content 
Enable features by document owner’s assignment 
Exclude experimental features from shared 
documents
Petri is more than just an A/B test framework 
Feature toggle 
A/B Test 
Internal testing 
Personalization 
Continuous 
deployment 
Jira integration 
Experiments 
Dynamic 
configuration 
QA 
Automated 
testing
Petri is now an open source project 
https://github.com/wix/petri
Q&A 
http://goo.gl/L7pHnd 
Aviran Mordo 
Head of Back-end Engineering 
@aviranm 
http://www.linkedin.com/in/aviran 
http://www.aviransplace.com 
Talya Gendler 
Back-end Team Leader 
www.linkedin.com/in/talyagendler 
https://github.com/wix/petri
Credits 
http://upload.wikimedia.org/wikipedia/commons/b/b2/Fiber_optics_testing.jpg 
http://goo.gl/nEiepT 
https://www.flickr.com/photos/ilo_oli/2421536836 
https://www.flickr.com/photos/dexxus/5791228117 
http://goo.gl/SdeJ0o 
https://www.flickr.com/photos/112923805@N05/15005456062 
https://www.flickr.com/photos/wiertz/8537791164 
https://www.flickr.com/photos/laenulfean/5943132296 
https://www.flickr.com/photos/torek/3470257377 
https://www.flickr.com/photos/i5design/5393934753 
https://www.flickr.com/photos/argonavigo/5320119828
Why Petri 
Modeled experiment lifecycle 
Open source (developed using TDD from day 1) 
Running at scale on production 
No deployment necessary 
Both back-end and front-end experiment 
Flexible architecture
PERTI Server Your app 
Laboratory 
DB Logs

More Related Content

What's hot

What's hot (20)

Responsive App Design with the Salesforce Lightning Design System
Responsive App Design with the Salesforce Lightning Design SystemResponsive App Design with the Salesforce Lightning Design System
Responsive App Design with the Salesforce Lightning Design System
 
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
 
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
 
Deployment Automation in de praktijk
Deployment Automation in de praktijkDeployment Automation in de praktijk
Deployment Automation in de praktijk
 
Continuous everything
Continuous everythingContinuous everything
Continuous everything
 
Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015
 
QAorHighway2016
QAorHighway2016QAorHighway2016
QAorHighway2016
 
Avoiding test hell
Avoiding test hellAvoiding test hell
Avoiding test hell
 
Accelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineAccelerating Your Test Execution Pipeline
Accelerating Your Test Execution Pipeline
 
WinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows Conference
WinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows ConferenceWinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows Conference
WinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows Conference
 
Jeffrey Snover - Empowering DevOps with Azure Stack
Jeffrey Snover - Empowering DevOps with Azure StackJeffrey Snover - Empowering DevOps with Azure Stack
Jeffrey Snover - Empowering DevOps with Azure Stack
 
Visual Studio LightSwitch (Beta 1) Overview
Visual Studio LightSwitch (Beta 1) OverviewVisual Studio LightSwitch (Beta 1) Overview
Visual Studio LightSwitch (Beta 1) Overview
 
Deployment Flexibility: Introducing Support for Microsoft Azure
Deployment Flexibility: Introducing Support for Microsoft AzureDeployment Flexibility: Introducing Support for Microsoft Azure
Deployment Flexibility: Introducing Support for Microsoft Azure
 
Being Elastic -- Evolving Programming for the Cloud
Being Elastic -- Evolving Programming for the CloudBeing Elastic -- Evolving Programming for the Cloud
Being Elastic -- Evolving Programming for the Cloud
 
[Christopher Ngo] Intro DevOPS XP Day 2015
[Christopher Ngo] Intro DevOPS XP Day 2015[Christopher Ngo] Intro DevOPS XP Day 2015
[Christopher Ngo] Intro DevOPS XP Day 2015
 
How Optimizely Scaled its REST API with asyncio
How Optimizely Scaled its REST API with asyncio  How Optimizely Scaled its REST API with asyncio
How Optimizely Scaled its REST API with asyncio
 
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
 
Putting Quality First through Continuous Testing
Putting Quality First through Continuous TestingPutting Quality First through Continuous Testing
Putting Quality First through Continuous Testing
 
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
 
Performance Testing w/ WebPage Test Private Instance (DrupalCamp Ohio)
Performance Testing w/ WebPage Test Private Instance (DrupalCamp Ohio)Performance Testing w/ WebPage Test Private Instance (DrupalCamp Ohio)
Performance Testing w/ WebPage Test Private Instance (DrupalCamp Ohio)
 

Viewers also liked

Strategies in continuous delivery
Strategies in continuous deliveryStrategies in continuous delivery
Strategies in continuous delivery
Aviran Mordo
 

Viewers also liked (15)

Wix Dev-Centric Culture And Continuous Delivery
Wix Dev-Centric Culture And Continuous DeliveryWix Dev-Centric Culture And Continuous Delivery
Wix Dev-Centric Culture And Continuous Delivery
 
Wix Architecture at Scale - QCon London 2014
Wix Architecture at Scale - QCon London 2014Wix Architecture at Scale - QCon London 2014
Wix Architecture at Scale - QCon London 2014
 
The Art of A/B Testing
The Art of A/B TestingThe Art of A/B Testing
The Art of A/B Testing
 
Lessons Learned Monitoring Production
Lessons Learned Monitoring ProductionLessons Learned Monitoring Production
Lessons Learned Monitoring Production
 
The Immor(t)ality of Legacy Projects - Dalia Simons, Wix - DevOpsDays Tel Avi...
The Immor(t)ality of Legacy Projects - Dalia Simons, Wix - DevOpsDays Tel Avi...The Immor(t)ality of Legacy Projects - Dalia Simons, Wix - DevOpsDays Tel Avi...
The Immor(t)ality of Legacy Projects - Dalia Simons, Wix - DevOpsDays Tel Avi...
 
TDD - Cultivating a Beginner's Mind
TDD -  Cultivating a Beginner's MindTDD -  Cultivating a Beginner's Mind
TDD - Cultivating a Beginner's Mind
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.com
 
Scaling up to 30M users - The Wix Story
Scaling up to 30M users - The Wix StoryScaling up to 30M users - The Wix Story
Scaling up to 30M users - The Wix Story
 
Experimenting on Humans
Experimenting on HumansExperimenting on Humans
Experimenting on Humans
 
Scaling Wix engineering
Scaling Wix engineering Scaling Wix engineering
Scaling Wix engineering
 
Mircoservices, dev ops and Engineering best practices at Wix.com
Mircoservices, dev ops and Engineering best practices at Wix.comMircoservices, dev ops and Engineering best practices at Wix.com
Mircoservices, dev ops and Engineering best practices at Wix.com
 
Strategies in continuous delivery
Strategies in continuous deliveryStrategies in continuous delivery
Strategies in continuous delivery
 
Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)
 
Introduction to HTTP protocol
Introduction to HTTP protocolIntroduction to HTTP protocol
Introduction to HTTP protocol
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)
 

Similar to Experimenting on Humans - Advanced A/B Tests - QCon SF 2014

Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.comAdvanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
DevOpsDays Tel Aviv
 
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
Curiosity Software Ireland
 
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
Anna Russo
 
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
Anna Russo
 

Similar to Experimenting on Humans - Advanced A/B Tests - QCon SF 2014 (20)

Advanced A/B testing - Aviran Mordo
Advanced A/B testing - Aviran MordoAdvanced A/B testing - Aviran Mordo
Advanced A/B testing - Aviran Mordo
 
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.comAdvanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
 
Petri for kyiv.pptx
Petri for kyiv.pptxPetri for kyiv.pptx
Petri for kyiv.pptx
 
Lightning Talks by Globant - Automation (This app runs by itself )
Lightning Talks by Globant -  Automation (This app runs by itself ) Lightning Talks by Globant -  Automation (This app runs by itself )
Lightning Talks by Globant - Automation (This app runs by itself )
 
Nuevosoft Test Manager Overview
Nuevosoft Test Manager OverviewNuevosoft Test Manager Overview
Nuevosoft Test Manager Overview
 
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
 
Andy singleton continuous delivery-fcb - nov 2014
Andy singleton   continuous delivery-fcb - nov 2014Andy singleton   continuous delivery-fcb - nov 2014
Andy singleton continuous delivery-fcb - nov 2014
 
UX in ALM Series - UX Project Worflow using TFS 2008
UX in ALM Series - UX Project Worflow using TFS 2008UX in ALM Series - UX Project Worflow using TFS 2008
UX in ALM Series - UX Project Worflow using TFS 2008
 
Testwarez 2009 Use Proper Tool
Testwarez 2009 Use Proper ToolTestwarez 2009 Use Proper Tool
Testwarez 2009 Use Proper Tool
 
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
 
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
 
Choosing right-automation-tool
Choosing right-automation-toolChoosing right-automation-tool
Choosing right-automation-tool
 
Accelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineAccelerating Your Test Execution Pipeline
Accelerating Your Test Execution Pipeline
 
Software Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails ApplicationsSoftware Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails Applications
 
Continuously testing govt.nz - DevOpsDays Ignite Wellington 2018
Continuously testing govt.nz - DevOpsDays Ignite Wellington 2018Continuously testing govt.nz - DevOpsDays Ignite Wellington 2018
Continuously testing govt.nz - DevOpsDays Ignite Wellington 2018
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran Kinsbruner
 
Everything You Need to Know About Regression Testing Automation.pdf
Everything You Need to Know About Regression Testing Automation.pdfEverything You Need to Know About Regression Testing Automation.pdf
Everything You Need to Know About Regression Testing Automation.pdf
 
Impetus qLabs Solutions
Impetus qLabs SolutionsImpetus qLabs Solutions
Impetus qLabs Solutions
 
Making the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To TestingMaking the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To Testing
 

More from Aviran Mordo

More from Aviran Mordo (9)

Platform as a Runtime - PaaR QCON 2024 - Final
Platform as a Runtime - PaaR QCON 2024 - FinalPlatform as a Runtime - PaaR QCON 2024 - Final
Platform as a Runtime - PaaR QCON 2024 - Final
 
Scaling Engineering by Hacking Conway’s Law - Geecon,2022
Scaling Engineering by Hacking Conway’s Law - Geecon,2022Scaling Engineering by Hacking Conway’s Law - Geecon,2022
Scaling Engineering by Hacking Conway’s Law - Geecon,2022
 
Arrested by the cap devoxx uk 2018
Arrested by the cap devoxx uk 2018Arrested by the cap devoxx uk 2018
Arrested by the cap devoxx uk 2018
 
Scaling wix.com to 100 million users
Scaling wix.com to 100 million users Scaling wix.com to 100 million users
Scaling wix.com to 100 million users
 
Scaling wix with microservices architecture jax london-2015
Scaling wix with microservices architecture jax london-2015Scaling wix with microservices architecture jax london-2015
Scaling wix with microservices architecture jax london-2015
 
Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015
 
Wix.com Back-end Engineering Guild Manifesto
Wix.com Back-end Engineering Guild ManifestoWix.com Back-end Engineering Guild Manifesto
Wix.com Back-end Engineering Guild Manifesto
 
Scaling Wix with microservices architecture and multi-cloud platforms - Reve...
 Scaling Wix with microservices architecture and multi-cloud platforms - Reve... Scaling Wix with microservices architecture and multi-cloud platforms - Reve...
Scaling Wix with microservices architecture and multi-cloud platforms - Reve...
 
Scaling r&d org while maintaining quality
Scaling r&d org while maintaining qualityScaling r&d org while maintaining quality
Scaling r&d org while maintaining quality
 

Recently uploaded

Recently uploaded (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Experimenting on Humans - Advanced A/B Tests - QCon SF 2014

  • 1. Experimenting on Humans Aviran Mordo Head of Back-end Engineering @aviranm http://www.linkedin.com/in/aviran http://www.aviransplace.com Talya Gendler Back-end Team Leader www.linkedin.com/in/talyagendler
  • 2.
  • 3. Wix In Numbers Over 55M users + 1M new users/month Static storage is >1.5Pb of data 3 data centers + 3 clouds (Google, Amazon, Azure) 1.5B HTTP requests/day 800 people work at Wix, of which ~ 300 in R&D
  • 4.
  • 5. Agenda Basic A/B testing Experiment driven development PETRI – Wix’s 3rd generation open source experiment system Challenges and best practices Complexities and effect on product
  • 7.
  • 8. Home page results (How many registered)
  • 9.
  • 10. This is the Wix editor
  • 11. Our gallery manager What can we improve?
  • 13.
  • 14. Product Experiments Toggles & Reporting Infrastructure
  • 15. How do you know what is running?
  • 16. Why so many? If I “know” it is better, do I really need to test it?
  • 17.
  • 18. Sign-up Choose Template The theory Edit site Publish Premium
  • 19.
  • 20.
  • 21. Conclusion EVERY new feature is A/B tested We open the new feature to a % of users Measure success  If it is better, we keep it  If worse, we check why and improve If flawed, the impact is just for % of our users
  • 22. Start with 50% / 50% ?
  • 23.
  • 24. Sh*t happens (Test could fail) New code can have bugs Conversion can drop Usage can drop Unexpected cross test dependencies
  • 25. Minimize affected users (in case of failure) Gradual exposure (percentage of…) Language GEO Browser User-agent OS Company employees User roles Any other criteria you have (extendable) All users
  • 26. Not all users are equal First time visitors = Never visited wix.com New registered users = Untainted users
  • 27. Start new experiment (limited population)
  • 28.
  • 30. First trial failed Performance had to be improved
  • 31. Halting the test results in loss of data. What can we do about it?
  • 32. Solution – Pause the experiment! • Maintain NEW experience for already exposed users • No additional users will be exposed to the NEW feature
  • 33. PETRI’s pause implementation Use cookies to persist assignment If user changes browser assignment is unknown Server side persistence solves this You pay in performance & scalability
  • 34. Decision Keep feature Drop feature Improve code & resume experiment Keep backwards compatibility for exposed users forever? Migrate users to another equivalent feature Drop it all together (users lose data/work)
  • 35.
  • 36. Reaching statistical significance Numbers look good but sample size is small We need more data! Expand Control Group (A) Test Group (B)
  • 37. Keep user experience consistent Control Group (A) Test Group (B)
  • 38. Keeping persistent UX Signed-in user (Editor) Test group assignment is determined by the user ID  Guarantee toss persistency across browsers Anonymous user (Home page)  Test group assignment is randomly determined Can not guarantee persistent experience if changing browser 11% of Wix users use more than one desktop browser
  • 39.
  • 40. Always exclude robots Don’t let Google index a losing page Don’t let bots affect statistics
  • 41.
  • 42. Possible states >= 2^(# experiments) # of active experiment Possible # of states 10 1024 20 1,048,576 30 1,073,741,824 Wix has ~200 active experiments = 1.606938e+60
  • 43. Managing an ever changing production env. Supporting 2^N different users is challenging How do you know which experiment causes errors?
  • 44. Specialized tools Override options (URL parameters, cookies, headers…) Near real time user BI tools
  • 46. Why should product care about the system architecture
  • 47. Share document with other users
  • 48. Document owner is part of a test that enables a new video component
  • 49. What will the other user experience when editing a shared document ? Owner Friend
  • 50. Assignment may be different than owner’s Owner (B) Friend (A)
  • 51. Possible solutions Enable features by existing content Enable features by document owner’s assignment Exclude experimental features from shared documents
  • 52.
  • 53. Petri is more than just an A/B test framework Feature toggle A/B Test Internal testing Personalization Continuous deployment Jira integration Experiments Dynamic configuration QA Automated testing
  • 54. Petri is now an open source project https://github.com/wix/petri
  • 55. Q&A http://goo.gl/L7pHnd Aviran Mordo Head of Back-end Engineering @aviranm http://www.linkedin.com/in/aviran http://www.aviransplace.com Talya Gendler Back-end Team Leader www.linkedin.com/in/talyagendler https://github.com/wix/petri
  • 56. Credits http://upload.wikimedia.org/wikipedia/commons/b/b2/Fiber_optics_testing.jpg http://goo.gl/nEiepT https://www.flickr.com/photos/ilo_oli/2421536836 https://www.flickr.com/photos/dexxus/5791228117 http://goo.gl/SdeJ0o https://www.flickr.com/photos/112923805@N05/15005456062 https://www.flickr.com/photos/wiertz/8537791164 https://www.flickr.com/photos/laenulfean/5943132296 https://www.flickr.com/photos/torek/3470257377 https://www.flickr.com/photos/i5design/5393934753 https://www.flickr.com/photos/argonavigo/5320119828
  • 57. Why Petri Modeled experiment lifecycle Open source (developed using TDD from day 1) Running at scale on production No deployment necessary Both back-end and front-end experiment Flexible architecture
  • 58. PERTI Server Your app Laboratory DB Logs

Editor's Notes

  1. Who here does A/B tests? Who plans to do A/B test?
  2. A/B test is embedded in our development process Petri is based on our experience and lessons we learned
  3. You divide your users into group and measure which reached your goal
  4. What does it mean better? What is your goal?
  5. Measure conversion to register
  6. The theory – we can make a better gallery Our goal – make it easier for our users to build their sites (converting to premium)
  7. It is not about winning, its about not losing
  8. Lessons learned from 4 years of experience Petri allows PM to manage their tests
  9. A screenshot of the UI we built on top of PETRI
  10. Premium link in the editor
  11. If we shorten the funnel more users will reach the purchase page, thus increasing our sales
  12. Why did it fail. T-Shirt time
  13. Who thinks we should start with 50%
  14. Remember a test could fail
  15. Product manager defines a limited new experiment
  16. We also test new must have features
  17. There is no A version. Control group just don’t get it.
  18. we need to improve before releasing to all users.
  19. Lose mobile view ? Unable to update ?
  20. Pause is a temporary state until system improves and resume test
  21. Server side state – performance vs correctness, cross-datacenters replicas
  22. The end result of every A/B test is reaching a decision. For this we need enough numbers. Add %, countries etc’
  23. As discussed in the pause scenario, here too we cannot take away the ‘new’ experience
  24. For anonymous users – this is the best we can do. This means sometimes (~11%) users will see different experiences.
  25. What would you expect the result should be for a bot? A? B? 2-nd T-Shirt time!
  26. Production is never in a ‘known’ state At least 2^ (more than 2 options)
  27. It is hard to know and we don’t always know exactly. Try to understand what was opened recently / recreate and eliminate
  28. Overrides also list of users.
  29. The obvious answer may be – allow the friend to edit the component if it’s already in the site But then – what if the friend deletes the component by mistake (or on purpose)? Then if he’s assigned to A he won’t be able to add it back. Possible solution – assign by site owner instead of by user (this means you must implement server side state) (why? Bcos you don’t know what lang/geo etc the site owner was when he got assigned – you only know his user id) Not perfect, user may experience something else on his own document
  30. Expose features internally to company employees Select assignment by sites (not only by users)
  31. santa
  32. Take screenshot from github!