SlideShare ist ein Scribd-Unternehmen logo
1 von 97
Downloaden Sie, um offline zu lesen
#abtesting@csaintamant #abtesting@csaintamant
#abtesting@csaintamant
we can do better
#abtesting@csaintamant
brainstorm. test.brainstorm. test. measure.
#abtesting@csaintamant
data driven
product development
#abtesting@csaintamant
continuous
improvement
vs ba
a b
A
B
C
D
E
F
G
A
B
C
D
E
F
G
A
B
C
D
E
F
G
A
B
C
D
E
F
G
A
B
C
D
E
F
G
A
B
C
D
E
F
G
A
B
C
D
E
F
G
Test 1 Test 2 Test 3 Test 4 Test 5 Test 6 Test 7
#abtesting@csaintamant
it gets
messy
#abtesting@csaintamant
▶ design
▶ define
▶ deliver
#abtesting@csaintamant
#abtesting@csaintamant
(testable)
hypothesis
#abtesting@csaintamant
individual profiles in a multi-
user household will create a
more personalized experience

and result in higher retention
#abtesting@csaintamant
test
variables
#abtesting@csaintamant
test cells
Variables Gate
Gate w/
Remember
Simple Setup Detailed Setup
Cell 1 (control)
Cell 2 ✓
Cell 3 ✓ ✓
Cell 4 ✓ ✓
Cell 5 ✓ ✓
#abtesting@csaintamant
be mindful
#abtesting@csaintamant
iterate later
#abtesting@csaintamant
▶ design
▶ define
▶ deliver
#abtesting@csaintamant
#abtesting@csaintamant
test identifiers
#abtesting@csaintamant
test # 1234
test cells 1 - 5
var tests = user.getTests();
if (tests.in(1234, 2) || tests.in(1234, 3) ||
tests.in(1234, 4) || tests.in(1234, 5)) {
// profiles enabled?
if (tests.in(1234, 3) || tests.in(1234, 4) ||
tests.in(1234, 5)) {
// gate?
if (tests.in(1234, 4)) {
// gate with remember?
}
}
}
else {
// control behavior
}
#abtesting@csaintamant
externalize config
{
meta: {
id: 1234,
name: 'profiles',
},
cells: {
'1': { control: true, profilesEnabled: false },
'2': { profilesEnabled: true, simpleSetup: true },
'3': { profilesEnabled: true, simpleSetup: true, gate: true },
'4': { profilesEnabled: true, simpleSetup: true, gate: true,
gateRemember: true },
'5': { profilesEnabled: true, detailedSetup: true, gate: true }
}
}
var profilesTest = user.getTests().get('profiles');
if (profilesTest.attr('profilesEnabled')) {
// profiles enabled?
if (profilesTest.attr('gate')) {
// gate?
if (profilesTest.attr('gateRemember')) {
// gate with remember?
}
}
}
else {
// control behavior
}
#abtesting@csaintamant
feature flags?
yep.
profilesEnabled =
new Rule('profilesEnabled', function(context, params) {
// check test flag
var profilesTest = context.getTests().get('profiles');
return profilesTest.attr('profilesEnabled');
});
rules
profilesEnabled =
new Rule('profilesEnabled', function(context, params) {
// check app config
return context.getAppConfig().profilesEnabled;
});
rules
var tests = user.getTests();
if (tests.in(1234, 3) ||
tests.in(1234, 4) ||
tests.in(1234, 5)) {
// gate?
}
before after
if (rules.profilesGate) {
// gate!
}
#abtesting@csaintamant
▶ design
▶ define
▶ deliver
#abtesting@csaintamant
#abtesting@csaintamant
UI assembly / delivery
HTML + (CSS + JS)
#abtesting@csaintamant
templating
profiles-setup.template
<div id="profiles-form">
<h1>Who will be watching Netflix?</h1>
<input id="profile1" /><label for-"profile1">That's you!</label>
<input id="profile2" />
<input id="profile3" />
<input id="profile4" />
<input id="profile5" />
<button>Continue</button>
</div>
<div id="profiles-promo">
<ul>
<li>Up to 5 people</li>
<li>No extra fees</li>
<li>Each person gets suggestions based on their own viewing and tastes</li>
<li>Great for kids</li>
</ul>
</div>
<div id="profiles-form">
<h1>Who will be watching Netflix?</h1>
<input id="profile1" /><label for-"profile1">That's you!</label>
<input id="profile2" />
<input id="profile3" />
<input id="profile4" />
<input id="profile5" />
<button>Continue</button>
</div>
<div id="profiles-promo">
{#control}
<ul>
<li>Up to 5 people</li>
<li>No extra fees</li>
<li>Each person gets suggestions based on their own viewing and tastes</li>
<li>Great for kids</li>
</ul>
{/control}
{#promo1}
<ul>
<li>Up to 5 people</li>
<li>No extra fees</li>
<li>Each person gets suggestions based on their own viewing and tastes</li>
<li>Kids under 12 get a safe area with kid-friendly movies and TV shows</li>
</ul>
{/promo1}
{#promo2}
<ul>
<li>Up to 5 people</li>
<li>No extra fees</li>
<li>Each person gets suggestions based on their own viewing and tastes</li>
<li>Kids under 12 get a safe area with kid-friendly movies and TV shows</li>
</ul>
{/promo2}
{#promo3}
<img src="images/profiles-setup.png" />
<h2>Each person added will get suggestions based on what they like to watch</h2>
<ul>
<li>Up to 5 people</li>
<li>No extra fees</li>
</ul>
{/promo3}
{#promo4}
<img src="images/profiles-setup.png" />
<h2>Have up to 5 profiles at no extra cost</h2>
<ul>
<li>Each person will get suggestions based on their own viewing and tastes</li>
<li>Great for kids</li>
</ul>
{/promo4}
</div>
profiles-setup.tmpl
if ifif if if
Control Promo 1 Promo 2 Promo 3 Promo 4
profiles-setup.tmpl
promo.tmpl promo2.tmplpromo1.tmpl promo3.tmpl promo4.tmpl
if ifif if if
<div id="profiles-form">
<h1>Who will be watching Netflix?</h1>
[...]
</div>
<div id="profiles-promo">
{> promo /}
</div>
promo.json
profiles-setup.tmpl
?
promo.tmpl promo2.tmplpromo1.tmpl promo3.tmpl promo4.tmpl
promo.json
{
"rules": [],
"templateName": "promo"
},
{
"rules": ["profilesPromo(1)"],
"templateName": "promo1"
},
{
"rules": ["profilesPromo(2)"],
"templateName": "promo2"
},
{
"rules": ["profilesPromo(3)"],
"templateName": "promo3"
},
{
"rules": ["profilesPromo(4)"],
"templateName": "promo4"
}
profilesPromo =
new Rule('profilesPromo', function(context, params) {
// check test membership
var test = context.getTests().get('profilesSetup');
return test && test.cell(params.id-1);
});
rules
#abtesting@csaintamant
how does it work?
profiles-setup.tmpl template engine partial
resolver promo.json
(mappings)
rules
rules
promo.tmpl
promo1.tmpl
promo2.tmpl
profiles-setup.tmpl template engine resolver
#abtesting@csaintamant
template loading
simplified
#abtesting@csaintamant
client-side
packaging
app.js
import backbone from 'backbone';
import search from 'search';
import profiles from 'profiles';
export ...
#abtesting@csaintamant
search
app.js
profiles
dep1 dep2 dep3 dep4 dep5
sub-dep sub-depsub-dep sub-dep sub-dep sub-dep
#abtesting@csaintamant
search
app.js
profiles
dep1 dep2 dep3 dep4 dep5
sub-dep sub-depsub-dep sub-dep sub-dep sub-dep
search
app.js
profiles
dep1 dep2 dep3 dep4 dep5
sub-dep sub-depsub-dep sub-dep sub-dep sub-dep
#abtesting@csaintamant
100s of files..?
Millions of combinations..?
#abtesting@csaintamant
conditional
dependencies
search
app.js
profiles
dep1 dep2 dep3 dep4 dep5
sub-dep sub-depsub-dep sub-dep sub-dep sub-dep
rules again!
profilesEnabled =
new Rule('profilesEnabled', function(context, params) {
// check test flag
var profilesTest = context.getTests().get('profiles');
return profilesTest.attr('profilesEnabled');
});
/*
* @includewhen rule.profilesEnabled
*/
profiles.js
/*
* @includewhen rule.searchEnabled
*/
search.js
#abtesting@csaintamant
build time:
static analysis
#abtesting@csaintamant
minify / compress
build time:
profiles.js
backbone
search.js
app.js
registry
"app.js": {
"deps": [
"backbone",
"search.js",
"profiles.js",
],
"depsFull": [
"react",
"searchDep2.js",
"searchDep1.js",
"search.js",
"profilesDep2.js",
"profilesDep1.js",
"profiles.js"
]
}
"profiles.js": {
"rule": "profilesEnabled",
"deps": [
"backbone",
"profilesDep2.js",
"profilesDep1.js",
],
"depsFull": [
"backbone",
"profilesSubDep3.js",
"profilesSubDep2.js"
"profilesSubDep1.js"
"profilesDep2.js",
"profilesDep1.js"
]
}
rule!
javascript
registry
build
#abtesting@csaintamant
request time:
evaluate rules
#abtesting@csaintamant
assemble package
request time:
registry
rulespackager
request
#abtesting@csaintamant
packaging
simplified
#abtesting@csaintamant
everything is
a module
#abtesting@csaintamant
define dependencies
#abtesting@csaintamant
only load

what you need
…per user
#abtesting@csaintamant
isolate complexity
#abtesting@csaintamant
▶ design
▶ define
▶ deliver
#abtesting@csaintamant
#abtesting@csaintamant
multivariate testing
is powerful…
#abtesting@csaintamant
…but complex
#abtesting@csaintamant
plan for complexity
“Simplicity is the
ultimate sophistication”
- Leonardo da Vinci
go experiment!
questions?
Chris Saint-Amant
@csaintamant
#abtesting

Weitere ähnliche Inhalte

Was ist angesagt?

Accelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineAccelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineSmartBear
 
Acceptance Test Driven Development With Spec Flow And Friends
Acceptance Test Driven Development With Spec Flow And FriendsAcceptance Test Driven Development With Spec Flow And Friends
Acceptance Test Driven Development With Spec Flow And FriendsChristopher Bartling
 
Continuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQContinuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQTomas Riha
 
Adding value in an agile context
Adding value in an agile contextAdding value in an agile context
Adding value in an agile contextHouseofTest
 
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
BDD to the Bone: Using Behave and Selenium to Test-Drive Web ApplicationsBDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
BDD to the Bone: Using Behave and Selenium to Test-Drive Web ApplicationsPatrick Viafore
 
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NETNDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NETjbandi
 
Web Performance Culture and Tools at Etsy
Web Performance Culture and Tools at EtsyWeb Performance Culture and Tools at Etsy
Web Performance Culture and Tools at EtsyMike Brittain
 
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsContinuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsMike Brittain
 
Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users AnonymousDave Haeffner
 
DjangoCon 2013 - How to Write Fast and Efficient Unit Tests in Django
DjangoCon 2013 - How to Write Fast and Efficient Unit Tests in DjangoDjangoCon 2013 - How to Write Fast and Efficient Unit Tests in Django
DjangoCon 2013 - How to Write Fast and Efficient Unit Tests in DjangoCasey Kinsey
 
PHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersPHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersAdam Englander
 
Testing GraphQL in Your JavaScript Application: From Zero to Hundred Percent
Testing GraphQL in Your JavaScript Application: From Zero to Hundred PercentTesting GraphQL in Your JavaScript Application: From Zero to Hundred Percent
Testing GraphQL in Your JavaScript Application: From Zero to Hundred PercentRoy Derks
 
Growing Manual Testers into Automators
Growing Manual Testers into AutomatorsGrowing Manual Testers into Automators
Growing Manual Testers into AutomatorsCamille Bell
 
Adapting Agility: Getting your Agile Transformation Unstuck
Adapting Agility: Getting your Agile Transformation UnstuckAdapting Agility: Getting your Agile Transformation Unstuck
Adapting Agility: Getting your Agile Transformation UnstuckCamille Bell
 
Accelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineAccelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineSmartBear
 
Dev and Ops Collaboration and Awareness at Etsy and Flickr
Dev and Ops Collaboration and Awareness at Etsy and FlickrDev and Ops Collaboration and Awareness at Etsy and Flickr
Dev and Ops Collaboration and Awareness at Etsy and FlickrJohn Allspaw
 
Testing for Agility: Bringing Testing into Everything
Testing for Agility: Bringing Testing into EverythingTesting for Agility: Bringing Testing into Everything
Testing for Agility: Bringing Testing into EverythingCamille Bell
 
James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie CAST 2014 Standards – promoting quality or restricting competi...James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie CAST 2014 Standards – promoting quality or restricting competi...James Christie Christie
 

Was ist angesagt? (20)

Accelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineAccelerating Your Test Execution Pipeline
Accelerating Your Test Execution Pipeline
 
Bdd and spec flow
Bdd and spec flowBdd and spec flow
Bdd and spec flow
 
Acceptance Test Driven Development With Spec Flow And Friends
Acceptance Test Driven Development With Spec Flow And FriendsAcceptance Test Driven Development With Spec Flow And Friends
Acceptance Test Driven Development With Spec Flow And Friends
 
Selenium Frameworks
Selenium FrameworksSelenium Frameworks
Selenium Frameworks
 
Continuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQContinuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQ
 
Adding value in an agile context
Adding value in an agile contextAdding value in an agile context
Adding value in an agile context
 
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
BDD to the Bone: Using Behave and Selenium to Test-Drive Web ApplicationsBDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
 
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NETNDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
 
Web Performance Culture and Tools at Etsy
Web Performance Culture and Tools at EtsyWeb Performance Culture and Tools at Etsy
Web Performance Culture and Tools at Etsy
 
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsContinuous Delivery: The Dirty Details
Continuous Delivery: The Dirty Details
 
Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users Anonymous
 
DjangoCon 2013 - How to Write Fast and Efficient Unit Tests in Django
DjangoCon 2013 - How to Write Fast and Efficient Unit Tests in DjangoDjangoCon 2013 - How to Write Fast and Efficient Unit Tests in Django
DjangoCon 2013 - How to Write Fast and Efficient Unit Tests in Django
 
PHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersPHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for Beginners
 
Testing GraphQL in Your JavaScript Application: From Zero to Hundred Percent
Testing GraphQL in Your JavaScript Application: From Zero to Hundred PercentTesting GraphQL in Your JavaScript Application: From Zero to Hundred Percent
Testing GraphQL in Your JavaScript Application: From Zero to Hundred Percent
 
Growing Manual Testers into Automators
Growing Manual Testers into AutomatorsGrowing Manual Testers into Automators
Growing Manual Testers into Automators
 
Adapting Agility: Getting your Agile Transformation Unstuck
Adapting Agility: Getting your Agile Transformation UnstuckAdapting Agility: Getting your Agile Transformation Unstuck
Adapting Agility: Getting your Agile Transformation Unstuck
 
Accelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineAccelerating Your Test Execution Pipeline
Accelerating Your Test Execution Pipeline
 
Dev and Ops Collaboration and Awareness at Etsy and Flickr
Dev and Ops Collaboration and Awareness at Etsy and FlickrDev and Ops Collaboration and Awareness at Etsy and Flickr
Dev and Ops Collaboration and Awareness at Etsy and Flickr
 
Testing for Agility: Bringing Testing into Everything
Testing for Agility: Bringing Testing into EverythingTesting for Agility: Bringing Testing into Everything
Testing for Agility: Bringing Testing into Everything
 
James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie CAST 2014 Standards – promoting quality or restricting competi...James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie CAST 2014 Standards – promoting quality or restricting competi...
 

Andere mochten auch

Netflix JavaScript Talks - Scaling A/B Testing on Netflix.com with Node.js
Netflix JavaScript Talks - Scaling A/B Testing on Netflix.com with Node.jsNetflix JavaScript Talks - Scaling A/B Testing on Netflix.com with Node.js
Netflix JavaScript Talks - Scaling A/B Testing on Netflix.com with Node.jsChris Saint-Amant
 
Experimentation Platform at Netflix
Experimentation Platform at NetflixExperimentation Platform at Netflix
Experimentation Platform at NetflixSteve Urban
 
Design in Tech Report 2017
Design in Tech Report 2017Design in Tech Report 2017
Design in Tech Report 2017John Maeda
 
Storytelling for the Professional
Storytelling for the ProfessionalStorytelling for the Professional
Storytelling for the ProfessionalRob Clark
 
Digital Leadership Interview : James Patterson, MVP and Head of Capital One Labs
Digital Leadership Interview : James Patterson, MVP and Head of Capital One LabsDigital Leadership Interview : James Patterson, MVP and Head of Capital One Labs
Digital Leadership Interview : James Patterson, MVP and Head of Capital One LabsCapgemini
 
Optimizely Experience Customer Story - Atlassian
Optimizely Experience Customer Story - AtlassianOptimizely Experience Customer Story - Atlassian
Optimizely Experience Customer Story - AtlassianOptimizely
 
Netflix Cinematic Design
Netflix Cinematic DesignNetflix Cinematic Design
Netflix Cinematic DesignNavin Iyengar
 
SXSW 2016 Schedule Shortcut
SXSW 2016 Schedule ShortcutSXSW 2016 Schedule Shortcut
SXSW 2016 Schedule ShortcutPoke London
 
Designing for the Mind - SXSW 2015
Designing for the Mind - SXSW 2015Designing for the Mind - SXSW 2015
Designing for the Mind - SXSW 2015Roger Dooley
 
A/B Testing – How to Break Things and Fail Fast (Without Breaking Things) - M...
A/B Testing – How to Break Things and Fail Fast (Without Breaking Things) - M...A/B Testing – How to Break Things and Fail Fast (Without Breaking Things) - M...
A/B Testing – How to Break Things and Fail Fast (Without Breaking Things) - M...Atlassian
 
SXSW 2016 : SHORTCUT SCHEDULE FOR DESIGNERS
SXSW 2016 : SHORTCUT SCHEDULE FOR DESIGNERSSXSW 2016 : SHORTCUT SCHEDULE FOR DESIGNERS
SXSW 2016 : SHORTCUT SCHEDULE FOR DESIGNERSLex Johnson
 
A/B testing at Spotify
A/B testing at SpotifyA/B testing at Spotify
A/B testing at SpotifyAli Sarrafi
 
The Evolution of Big Data at Spotify
The Evolution of Big Data at SpotifyThe Evolution of Big Data at Spotify
The Evolution of Big Data at SpotifyJosh Baer
 
How to Execute and A/B Test Cross-Channel Personalization
How to Execute and A/B Test Cross-Channel PersonalizationHow to Execute and A/B Test Cross-Channel Personalization
How to Execute and A/B Test Cross-Channel PersonalizationCXL
 
Netflix-Using analytics to predict hits
Netflix-Using analytics to predict hitsNetflix-Using analytics to predict hits
Netflix-Using analytics to predict hitsGaurav Dutta
 
A Portfolio Strategy To Execute Digital Transformation
A Portfolio Strategy To Execute Digital TransformationA Portfolio Strategy To Execute Digital Transformation
A Portfolio Strategy To Execute Digital TransformationCapgemini
 
Accessibility Empathy - SXSW 2017 Proposal
Accessibility Empathy - SXSW 2017 ProposalAccessibility Empathy - SXSW 2017 Proposal
Accessibility Empathy - SXSW 2017 ProposalYvonne So
 
Netflix - Enabling a Culture of Analytics
Netflix - Enabling a Culture of AnalyticsNetflix - Enabling a Culture of Analytics
Netflix - Enabling a Culture of AnalyticsBlake Irvine
 

Andere mochten auch (20)

Netflix JavaScript Talks - Scaling A/B Testing on Netflix.com with Node.js
Netflix JavaScript Talks - Scaling A/B Testing on Netflix.com with Node.jsNetflix JavaScript Talks - Scaling A/B Testing on Netflix.com with Node.js
Netflix JavaScript Talks - Scaling A/B Testing on Netflix.com with Node.js
 
Experimentation Platform at Netflix
Experimentation Platform at NetflixExperimentation Platform at Netflix
Experimentation Platform at Netflix
 
Design in Tech Report 2017
Design in Tech Report 2017Design in Tech Report 2017
Design in Tech Report 2017
 
Storytelling for the Professional
Storytelling for the ProfessionalStorytelling for the Professional
Storytelling for the Professional
 
Digital Leadership Interview : James Patterson, MVP and Head of Capital One Labs
Digital Leadership Interview : James Patterson, MVP and Head of Capital One LabsDigital Leadership Interview : James Patterson, MVP and Head of Capital One Labs
Digital Leadership Interview : James Patterson, MVP and Head of Capital One Labs
 
Optimizely Experience Customer Story - Atlassian
Optimizely Experience Customer Story - AtlassianOptimizely Experience Customer Story - Atlassian
Optimizely Experience Customer Story - Atlassian
 
A/B Testing at Scale
A/B Testing at ScaleA/B Testing at Scale
A/B Testing at Scale
 
Netflix Cinematic Design
Netflix Cinematic DesignNetflix Cinematic Design
Netflix Cinematic Design
 
SXSW 2016 Schedule Shortcut
SXSW 2016 Schedule ShortcutSXSW 2016 Schedule Shortcut
SXSW 2016 Schedule Shortcut
 
Designing for the Mind - SXSW 2015
Designing for the Mind - SXSW 2015Designing for the Mind - SXSW 2015
Designing for the Mind - SXSW 2015
 
A/B Testing – How to Break Things and Fail Fast (Without Breaking Things) - M...
A/B Testing – How to Break Things and Fail Fast (Without Breaking Things) - M...A/B Testing – How to Break Things and Fail Fast (Without Breaking Things) - M...
A/B Testing – How to Break Things and Fail Fast (Without Breaking Things) - M...
 
SXSW 2016 : SHORTCUT SCHEDULE FOR DESIGNERS
SXSW 2016 : SHORTCUT SCHEDULE FOR DESIGNERSSXSW 2016 : SHORTCUT SCHEDULE FOR DESIGNERS
SXSW 2016 : SHORTCUT SCHEDULE FOR DESIGNERS
 
A/B testing at Spotify
A/B testing at SpotifyA/B testing at Spotify
A/B testing at Spotify
 
Web proposal
Web proposalWeb proposal
Web proposal
 
The Evolution of Big Data at Spotify
The Evolution of Big Data at SpotifyThe Evolution of Big Data at Spotify
The Evolution of Big Data at Spotify
 
How to Execute and A/B Test Cross-Channel Personalization
How to Execute and A/B Test Cross-Channel PersonalizationHow to Execute and A/B Test Cross-Channel Personalization
How to Execute and A/B Test Cross-Channel Personalization
 
Netflix-Using analytics to predict hits
Netflix-Using analytics to predict hitsNetflix-Using analytics to predict hits
Netflix-Using analytics to predict hits
 
A Portfolio Strategy To Execute Digital Transformation
A Portfolio Strategy To Execute Digital TransformationA Portfolio Strategy To Execute Digital Transformation
A Portfolio Strategy To Execute Digital Transformation
 
Accessibility Empathy - SXSW 2017 Proposal
Accessibility Empathy - SXSW 2017 ProposalAccessibility Empathy - SXSW 2017 Proposal
Accessibility Empathy - SXSW 2017 Proposal
 
Netflix - Enabling a Culture of Analytics
Netflix - Enabling a Culture of AnalyticsNetflix - Enabling a Culture of Analytics
Netflix - Enabling a Culture of Analytics
 

Ähnlich wie A/B Testing at Scale: Minimizing UI Complexity (SXSW 2015)

Django Introduction Osscamp Delhi September 08 09 2007 Mir Nazim
Django Introduction Osscamp Delhi September 08 09 2007 Mir NazimDjango Introduction Osscamp Delhi September 08 09 2007 Mir Nazim
Django Introduction Osscamp Delhi September 08 09 2007 Mir NazimMir Nazim
 
Meetup django common_problems(1)
Meetup django common_problems(1)Meetup django common_problems(1)
Meetup django common_problems(1)Eric Satterwhite
 
Angular JS2 Training Session #2
Angular JS2 Training Session #2Angular JS2 Training Session #2
Angular JS2 Training Session #2Paras Mendiratta
 
Knockout mvvm-m5-slides
Knockout mvvm-m5-slidesKnockout mvvm-m5-slides
Knockout mvvm-m5-slidesMasterCode.vn
 
Интеграция решения по тестированию производительности в существующий фреймвор...
Интеграция решения по тестированию производительности в существующий фреймвор...Интеграция решения по тестированию производительности в существующий фреймвор...
Интеграция решения по тестированию производительности в существующий фреймвор...COMAQA.BY
 
Why You Should be Using Web Components Right Now. And How. ForwardJS July 2015
Why You Should be Using Web Components Right Now. And How. ForwardJS July 2015Why You Should be Using Web Components Right Now. And How. ForwardJS July 2015
Why You Should be Using Web Components Right Now. And How. ForwardJS July 2015Phil Leggetter
 
Supercharging your Organic CTR
Supercharging your Organic CTRSupercharging your Organic CTR
Supercharging your Organic CTRPhil Pearce
 
Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Michelangelo van Dam
 
Django - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosDjango - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosIgor Sobreira
 
Why you should be using Web Components. And How - DevWeek 2015
Why you should be using Web Components. And How - DevWeek 2015Why you should be using Web Components. And How - DevWeek 2015
Why you should be using Web Components. And How - DevWeek 2015Phil Leggetter
 
Practical HTML5: Using It Today
Practical HTML5: Using It TodayPractical HTML5: Using It Today
Practical HTML5: Using It TodayDoris Chen
 
WordPress Accessibility: WordCamp Chicago
WordPress Accessibility: WordCamp ChicagoWordPress Accessibility: WordCamp Chicago
WordPress Accessibility: WordCamp ChicagoJoseph Dolson
 
HTML5 New and Improved
HTML5   New and ImprovedHTML5   New and Improved
HTML5 New and ImprovedTimothy Fisher
 

Ähnlich wie A/B Testing at Scale: Minimizing UI Complexity (SXSW 2015) (20)

Django Introduction Osscamp Delhi September 08 09 2007 Mir Nazim
Django Introduction Osscamp Delhi September 08 09 2007 Mir NazimDjango Introduction Osscamp Delhi September 08 09 2007 Mir Nazim
Django Introduction Osscamp Delhi September 08 09 2007 Mir Nazim
 
Django
DjangoDjango
Django
 
Meetup django common_problems(1)
Meetup django common_problems(1)Meetup django common_problems(1)
Meetup django common_problems(1)
 
Angular JS2 Training Session #2
Angular JS2 Training Session #2Angular JS2 Training Session #2
Angular JS2 Training Session #2
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 
Knockout mvvm-m5-slides
Knockout mvvm-m5-slidesKnockout mvvm-m5-slides
Knockout mvvm-m5-slides
 
Code Management
Code ManagementCode Management
Code Management
 
Going web native
Going web nativeGoing web native
Going web native
 
Интеграция решения по тестированию производительности в существующий фреймвор...
Интеграция решения по тестированию производительности в существующий фреймвор...Интеграция решения по тестированию производительности в существующий фреймвор...
Интеграция решения по тестированию производительности в существующий фреймвор...
 
Why You Should be Using Web Components Right Now. And How. ForwardJS July 2015
Why You Should be Using Web Components Right Now. And How. ForwardJS July 2015Why You Should be Using Web Components Right Now. And How. ForwardJS July 2015
Why You Should be Using Web Components Right Now. And How. ForwardJS July 2015
 
Supercharging your Organic CTR
Supercharging your Organic CTRSupercharging your Organic CTR
Supercharging your Organic CTR
 
Struts2
Struts2Struts2
Struts2
 
Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12
 
Django - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosDjango - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazos
 
Why you should be using Web Components. And How - DevWeek 2015
Why you should be using Web Components. And How - DevWeek 2015Why you should be using Web Components. And How - DevWeek 2015
Why you should be using Web Components. And How - DevWeek 2015
 
Angular 2 introduction
Angular 2 introductionAngular 2 introduction
Angular 2 introduction
 
Practical HTML5: Using It Today
Practical HTML5: Using It TodayPractical HTML5: Using It Today
Practical HTML5: Using It Today
 
WordPress Accessibility: WordCamp Chicago
WordPress Accessibility: WordCamp ChicagoWordPress Accessibility: WordCamp Chicago
WordPress Accessibility: WordCamp Chicago
 
HTML5 New and Improved
HTML5   New and ImprovedHTML5   New and Improved
HTML5 New and Improved
 
Django
DjangoDjango
Django
 

Kürzlich hochgeladen

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
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 2024The Digital Insurer
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
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 Takeoffsammart93
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 

Kürzlich hochgeladen (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 

A/B Testing at Scale: Minimizing UI Complexity (SXSW 2015)