Download pdf - Managing experimentation

Transcript
Page 1: Managing experimentation

Wil Stuckey@quiiver

Page 2: Managing experimentation
Page 3: Managing experimentation
Page 4: Managing experimentation
Page 5: Managing experimentation

25 Million Members

Page 6: Managing experimentation

25 Million Members

900,000 Shops

`

Page 7: Managing experimentation

25 Million Members

900,000 Shops

1.4B Page Views / Month

Page 8: Managing experimentation

Managing Experimentation

Page 9: Managing experimentation

Managing Experimentation

Page 10: Managing experimentation

ManagingLaunches

Page 11: Managing experimentation

1. Experiments2. Rampups3. Communications

Page 12: Managing experimentation

Life Before Continuous Deployments

Page 13: Managing experimentation

Initial Idea &Planning

Page 14: Managing experimentation
Page 15: Managing experimentation

Geocities-ize

Page 16: Managing experimentation

Initial Idea &Planning

Design & Development

Page 17: Managing experimentation
Page 18: Managing experimentation

Initial Idea &Planning

Deploy &Launch!

Design & Development

Page 19: Managing experimentation

Pain?

Page 20: Managing experimentation

Testing?

Page 21: Managing experimentation

Communication?

Page 22: Managing experimentation

How can we do better?

Page 23: Managing experimentation

Living in a Continuous

Deployment World

Page 24: Managing experimentation

Total Deploys: 4,040Total Commits: 45,447Total Unique Authors: 220

2013 ... So far

Page 25: Managing experimentation

Total Deploys: 4,040Total Commits: 45,447Total Unique Authors: 220

Average Deploys per day: 35.75Average Authors per deploy: 7.01Average Commits per deploy: 11.25

2013 ... So far

Page 26: Managing experimentation

That’s a lot of people

Page 27: Managing experimentation

We are only halfway through the year!

Page 28: Managing experimentation

CHAOS

Page 29: Managing experimentation

Config System

$server_config['my_awesome_feature'] = [ 'enabled' => 10, 'admin' => 'on', 'groups' => [1234], 'users' => ['wstuckey', 'dmckinley'], ];

Page 30: Managing experimentation

Branching in Code

if (Feature::isEnabled('my_awesome_feature')) { // display my_awesome_feature...} else { // continue on}

Page 31: Managing experimentation

Typical LaunchCycle

Page 32: Managing experimentation

Initial Idea &Planning

Page 33: Managing experimentation

Initial Idea &Planning

Design & Development Launch!

Page 34: Managing experimentation

Initial Idea &Planning

Design & Development Launch!

Internal Admin Launch

Page 35: Managing experimentation

Initial Idea &Planning

Design & Development Launch!

Internal Admin LaunchPublic Prototype

Page 36: Managing experimentation

Initial Idea &Planning

Design & Development Launch!

Internal Admin LaunchPublic Prototype50% Experiment

Page 37: Managing experimentation

• Small iterative changes

Page 38: Managing experimentation

• Small iterative changes

• Product exists in prod as soon as possible

Page 39: Managing experimentation

• Small iterative changes

• Product exists in prod as soon as possible

• Can be available for small groups for testing and feedback.

Page 40: Managing experimentation

• Small iterative changes

• Product exists in prod as soon as possible

• Can be available for small groups for testing and feedback.

• Easy to communicate milestones because they happen as part of the development process.

Page 41: Managing experimentation

Because of the constant change you

have to constantly communicate.

Page 42: Managing experimentation

Start Simple

Page 43: Managing experimentation

Wiki + Email

Page 44: Managing experimentation

• Works great in the beginning

Wiki

Page 45: Managing experimentation

• Works great in the beginning

• Quickly becomes overwhelming as you increase your concurrent launches.

Wiki

Page 46: Managing experimentation

• Works great in the beginning

• Quickly becomes overwhelming as you increase your concurrent launches.

• Requires manual labor to keep stakeholders informed

Wiki

Page 47: Managing experimentation

FRUSTRATION

Page 48: Managing experimentation

We can do better!

Page 49: Managing experimentation

Frank Harris@hirefrank

Page 50: Managing experimentation

Launch Calendar

Page 51: Managing experimentation

Launch Calendar

• Simple web app

• Collect structured meta-data about the launch

• Central location for upcoming, current and past launch information

Page 52: Managing experimentation

Launch CalendarCollect launch specific meta-data

Page 53: Managing experimentation

Launch Calendar

• Owner

• Launch Date

• Internal Launch Date

• Team

• Expected Reaction

Collect launch specific meta-data

Page 54: Managing experimentation

Launch Calendar

✉Make your email work for you

Page 55: Managing experimentation

Launch Calendar

• Automated emails to product owners around deadlines

• Daily emails to product groups containing upcoming and recently launched launches

Make your email work for you

Page 56: Managing experimentation

Launch CalendarMake your email work for you

Page 57: Managing experimentation

Launch Calendar

• Highly utilized across the organization

• During the year+ that it was running we recorded and tracked over 275 launches

How did it go?

Page 58: Managing experimentation

“This beats the crap out of the wiki page in every conceivable way.” - real

feedback

Page 59: Managing experimentation

What could we do better?

Page 60: Managing experimentation

What would a more integrated product look

like?

Page 61: Managing experimentation

Can we automate more?

Page 62: Managing experimentation

We can do better!

Page 63: Managing experimentation
Page 64: Managing experimentation

CatapultA unified launch management tool.

Page 65: Managing experimentation
Page 66: Managing experimentation

“I believe that by changing the ‘add to cart’ button to

blue we will increase conversion rate.”

Page 67: Managing experimentation

Catapult

Page 68: Managing experimentation
Page 69: Managing experimentation
Page 70: Managing experimentation

$server_config['my_awesome_button'] = [ 'enabled' => 50, 'admin' => 'on',];

Remember this?

Page 71: Managing experimentation
Page 72: Managing experimentation
Page 73: Managing experimentation
Page 74: Managing experimentation

Hack, Deploy, Hack, Hack Deploy!

Page 75: Managing experimentation
Page 76: Managing experimentation
Page 77: Managing experimentation
Page 78: Managing experimentation
Page 79: Managing experimentation
Page 80: Managing experimentation
Page 81: Managing experimentation

Integration is awesome.

Page 82: Managing experimentation

Communication is awesome.

Page 83: Managing experimentation

Start Simple.

Page 84: Managing experimentation

Build process that enable you to Ship.

Page 85: Managing experimentation

Never stop deploying!

Page 86: Managing experimentation

Thank You!

Page 87: Managing experimentation

Wil Stuckey@quiiver