Top Banner
Experimenting on Humans Advanced A/B Testing Aviran Mordo Head of Back-end Engineering @aviranm www.linkedin.com /in/aviran www.aviransplace.com
59
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Advance A/B Testing - GeeCon Krakow 2015

Experimenting on HumansAdvanced A/B Testing

Aviran Mordo

Head of Back-end Engineering

@aviranm

www.linkedin.com/in/aviran

www.aviransplace.com

Page 2: Advance A/B Testing - GeeCon Krakow 2015
Page 3: Advance A/B Testing - GeeCon Krakow 2015

Wix In Numbers

Over 65M users + 1.5M new users/month

Static storage is >2Pb of data

3 data centers + 3 clouds (Google, Amazon, Azure)

2B HTTP requests/day

1000 people work at Wix, of which ~ 500 in R&D

Page 4: Advance A/B Testing - GeeCon Krakow 2015

1542 (A/B Tests in 3 months)

Page 5: Advance A/B Testing - GeeCon Krakow 2015

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

Agenda

Page 6: Advance A/B Testing - GeeCon Krakow 2015

00:36A/B Test

Page 7: Advance A/B Testing - GeeCon Krakow 2015

To B or NOT to B?A

B

Page 8: Advance A/B Testing - GeeCon Krakow 2015

Home page results (How many registered)

Page 9: Advance A/B Testing - GeeCon Krakow 2015

Experiment Driven Development

Page 10: Advance A/B Testing - GeeCon Krakow 2015

This is the Wix editor

Page 11: Advance A/B Testing - GeeCon Krakow 2015

Gallery managerWhat can we improve?

Page 12: Advance A/B Testing - GeeCon Krakow 2015

Is this better?

Page 13: Advance A/B Testing - GeeCon Krakow 2015

It’s not about winning – it’s about NOT LOSING

Page 14: Advance A/B Testing - GeeCon Krakow 2015

Product Experiments Toggles & Reporting

Infrastructure

Page 15: Advance A/B Testing - GeeCon Krakow 2015

How do you know what is running?

Page 16: Advance A/B Testing - GeeCon Krakow 2015

If I “know” it is better, do I really need to test it?

Why so many?

Page 17: Advance A/B Testing - GeeCon Krakow 2015
Page 18: Advance A/B Testing - GeeCon Krakow 2015

Sign-upChoose Templat

eEdit site Publish Premiu

m

The theory

Page 19: Advance A/B Testing - GeeCon Krakow 2015

Result = Fail

Page 20: Advance A/B Testing - GeeCon Krakow 2015

Intent matters

Page 21: Advance A/B Testing - GeeCon Krakow 2015

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

Conclusion

Page 22: Advance A/B Testing - GeeCon Krakow 2015

Start with 50% / 50% ?

Page 23: Advance A/B Testing - GeeCon Krakow 2015
Page 24: Advance A/B Testing - GeeCon Krakow 2015

New code can have bugs

Conversion can drop

Usage can drop

Unexpected cross test dependencies

Sh*t happens (Test could fail)

Page 25: Advance A/B Testing - GeeCon Krakow 2015

Language

GEO

Browser

User-agent

OS

Minimize affected users (in case of failure)

Gradual exposure (percentage of…)

Company employees

User roles

Any other criteria you have (extendable)

All users

Page 26: Advance A/B Testing - GeeCon Krakow 2015

First time visitors = Never visited wix.com

New registered users = Untainted users

Existing registered users = Already familiar with the

service

Not all users are equal

Page 27: Advance A/B Testing - GeeCon Krakow 2015

Start new experiment (limited population)

Page 28: Advance A/B Testing - GeeCon Krakow 2015

Calling Laboratory is Easy

Page 29: Advance A/B Testing - GeeCon Krakow 2015

We need that feature

…and failure is not an option

Page 30: Advance A/B Testing - GeeCon Krakow 2015

Adding a mobile view

Page 31: Advance A/B Testing - GeeCon Krakow 2015

First trial failed Performance had to be

improved

Page 32: Advance A/B Testing - GeeCon Krakow 2015

Halting the test results in loss of data.

What can we do about it?

Page 33: Advance A/B Testing - GeeCon Krakow 2015

Solution – Pause the experiment!• Maintain NEW experience for already exposed

users• No additional users will be exposed to the NEW

feature

Page 34: Advance A/B Testing - GeeCon Krakow 2015

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

Page 35: Advance A/B Testing - GeeCon Krakow 2015

Decision (What to do with the data) 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)

Page 36: Advance A/B Testing - GeeCon Krakow 2015

The road to success

Page 37: Advance A/B Testing - GeeCon Krakow 2015

Numbers look good but sample size is small

We need more data!

Expand

Reaching statistical significance

25% 50% 75% 100%

75% 50% 25% 0%Control Group (A)

Test Group (B)

Page 38: Advance A/B Testing - GeeCon Krakow 2015

Keep user experience consistent

Control Group

(A)

Test Group

(B)

Page 39: Advance A/B Testing - GeeCon Krakow 2015

Signed-in user Test group is determined by the user IDGuarantee toss consistency across browsers

Anonymous user (Home page)Test group is randomly determinedCannot guarantee consistent experience cross

browsers

11% of Wix users use more than one desktop browser

Keeping consistent UX

Page 40: Advance A/B Testing - GeeCon Krakow 2015

Robots are users too!

Page 41: Advance A/B Testing - GeeCon Krakow 2015

Always exclude robots

Don’t let Google index a losing page

Don’t let bots affect statistics

Page 42: Advance A/B Testing - GeeCon Krakow 2015

There is MORE than one

Page 43: Advance A/B Testing - GeeCon Krakow 2015

# of active experiment Possible # of states

10 1024

20 1,048,576

30 1,073,741,824

Possible states >= 2^(# experiments)

Wix has ~400 active experiments ~2.58225e+120

Page 44: Advance A/B Testing - GeeCon Krakow 2015

Supporting 2^N different users is challenging

How do you know which experiment causes errors?

Managing an ever changing production env.

Page 45: Advance A/B Testing - GeeCon Krakow 2015

Near real time user BI tools

Override options (URL parameters, cookies, headers…)

Specialized tools

Page 46: Advance A/B Testing - GeeCon Krakow 2015

Integrated into the product

Page 47: Advance A/B Testing - GeeCon Krakow 2015

Why should product managers care about the

system architecture

Page 48: Advance A/B Testing - GeeCon Krakow 2015

Share document with other users

Page 49: Advance A/B Testing - GeeCon Krakow 2015

Document owner is part of a test that enables a new video

component

Page 50: Advance A/B Testing - GeeCon Krakow 2015

?

What will the other user experience when editing a shared document ?

Owner Friend

Page 51: Advance A/B Testing - GeeCon Krakow 2015

Assignment may be different than owner’s

Owner (B) Friend (A)

Page 52: Advance A/B Testing - GeeCon Krakow 2015

Enable features by existing content What will happened when you remove a component

Enable features by document owner’s assignment The friend now expects to find the new feature on his own

docs

Exclude experimental features from shared documents

You are not really testing the entire system

Possible solutions

Page 53: Advance A/B Testing - GeeCon Krakow 2015

A/B testing introduces complexity

Page 54: Advance A/B Testing - GeeCon Krakow 2015

Petri is more than just an A/B test framework

Feature toggle

A/B TestPersonalizatio

n

Internal testing

Continuous deployment

Jira integration

Experiments

Dynamic configuration

QA

Automated testing

Page 56: Advance A/B Testing - GeeCon Krakow 2015

Q&A

https://github.com/wix/petri

http://goo.gl/dqyely

Aviran Mordo

Head of Back-end Engineering

@aviranm

www.linkedin.com/in/aviran

www.aviransplace.com

Page 57: Advance A/B Testing - GeeCon Krakow 2015

Creditshttp://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

Page 58: Advance A/B Testing - GeeCon Krakow 2015

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

Why Petri

Page 59: Advance A/B Testing - GeeCon Krakow 2015

PERTI Server Your appLaborator

y

DB Logs