Engineering Change

32
Engineering Change: Enable rapid experimentation Kellan Elliott-McCrea @kellan CTO, Etsy Thursday, May 17, 12

Transcript of Engineering Change

Page 1: Engineering Change

Engineering Change: Enable rapid experimentation

Kellan Elliott-McCrea@kellanCTO, Etsy

Thursday, May 17, 12

Page 2: Engineering Change

* A marketplace for handmade and vintage goods.

In April 2012

* 875,000 artisans and creative independents* $63.6 million USD in sales* 1.32 billion page views

Thursday, May 17, 12

Page 3: Engineering Change

Engineering Change:

* Continuous Deployment* Metrics driven development

Thursday, May 17, 12

Page 4: Engineering Change

Engineering Change:

* Make mistakes quickly* Learn from mistakes

Thursday, May 17, 12

Page 5: Engineering Change

Engineering Change:

* Continuous Deployment* Metrics driven development

Thursday, May 17, 12

Page 6: Engineering Change

Continuous Deployment:

a technique for rapid iteration

Thursday, May 17, 12

Page 7: Engineering Change

Continuous Deployment:

make failure cheap

Thursday, May 17, 12

Page 8: Engineering Change

Continuous Deployment:

small changes, pushed frequently

Thursday, May 17, 12

Page 9: Engineering Change

Continuous Deployment:

small changes, pushed frequently.

To production.

Thursday, May 17, 12

Page 10: Engineering Change

Continuous Deployment:

10,068 releases to production in 2011

@ Etsy

Thursday, May 17, 12

Page 11: Engineering Change

Continuous Deployment:

How?

Thursday, May 17, 12

Page 12: Engineering Change

Continuous Deployment:

No branching.

“All existing revision control systems werebuilt by people who build installedsoftware”- Paul Hammond,Always Ship Trunk, Velocity 2010Thursday, March 17, 2011

Thursday, May 17, 12

Page 13: Engineering Change

if ($cfg[‘awesome_new_search’]) {# new hotness$rsp = do_solr();

} else {# boring old stuff$rsp = do_grep();

}

Continuous Deployment:

feature flags

Thursday, May 17, 12

Page 14: Engineering Change

Continuous Deployment:

Ramp - ups (on top of feature flags)

1. Launch to staff only2. Launch to 1% of all users3. Launch to members of a beta group

Thursday, May 17, 12

Page 15: Engineering Change

Continuous Deployment:

any engineer can launch a feature to

1% of users

Thursday, May 17, 12

Page 16: Engineering Change

Continuous Deployment:

~200 experiments live right now

Thursday, May 17, 12

Page 17: Engineering Change

Metrics driven development:

optimize for learning

Thursday, May 17, 12

Page 18: Engineering Change

Metrics driven development:

measure everything

Thursday, May 17, 12

Page 19: Engineering Change

Metrics driven development:

getting started:make it easy

Thursday, May 17, 12

Page 20: Engineering Change

Metrics driven development:

measure everything:logs, monitoring, A/B, graphs, StatsD

Thursday, May 17, 12

Page 21: Engineering Change

Metrics driven development:

StatsD @Instagram, Pinterest, Github, Mozilla, LAN.com, Zynga, Kickstarter, LivingSocial and 70+ other companies

Thursday, May 17, 12

Page 22: Engineering Change

Metrics driven development:

StatsD“We love statsd at Instagram. Written by Etsy, it’s a network daemon that aggregates and rolls-up data into Graphite. At its core, it has two types of statistics: counter and timers. We use the counters to track everything from number of signups per second to number of likes, and we use timers to time generation of feeds, how long it takes to follow users, and any other major action.” - Mike Krieger, Founder and CTO, Instagram.

Thursday, May 17, 12

Page 23: Engineering Change

Metrics driven development:

StatsD Open source, a daemon for timing and counting things, graphs rates, averages and 95th percentile, 20-30 minute install, easy to use

Thursday, May 17, 12

Page 24: Engineering Change

Metrics driven development

StatsD::timing("page.render", $msec);

Thursday, May 17, 12

Page 25: Engineering Change

Metrics driven development

Thursday, May 17, 12

Page 26: Engineering Change

Metrics driven development

getting started:your 5 core metrics

Thursday, May 17, 12

Page 27: Engineering Change

Metrics driven development

5 core metrics @ Etsy:sign ups, logins, checkout, new listings, posts in the bugs forums

Thursday, May 17, 12

Page 28: Engineering Change

Metrics driven development

378,000 metrics, collected roughly once a second

Thursday, May 17, 12

Page 29: Engineering Change

Metrics driven development

the confidence to change

Thursday, May 17, 12

Page 30: Engineering Change

Adapt, find market fit.

Engineering change:Rapid experimentation

Thursday, May 17, 12

Page 31: Engineering Change

Adapt, find market fit,addictive to engineers.

Engineering change:Rapid experimentation

Thursday, May 17, 12

Page 32: Engineering Change

Thank you!

Lean more: http://codeascraft.etsy.com

Thursday, May 17, 12