Optimizing for developer happiness

86
Optimizing for developer happiness Chad Dickerson CTO, Etsy [email protected] @chaddickerson Video of talk: http://www.youtube.com/watch?v=22EECFEk9Xs

description

Keynote at Railsconf 2011. Video here: http://www.youtube.com/watch?v=22EECFEk9Xs

Transcript of Optimizing for developer happiness

Page 1: Optimizing for developer happiness

Optimizing for developer happiness

Chad DickersonCTO, [email protected] @chaddickerson

Video of talk: http://www.youtube.com/watch?v=22EECFEk9Xs

Page 2: Optimizing for developer happiness
Page 3: Optimizing for developer happiness

We deploy code to production about 25x per day

Page 4: Optimizing for developer happiness

Across a team of 70 engineers

Page 5: Optimizing for developer happiness

We have a lot of people depending on us.

Page 6: Optimizing for developer happiness

400,000+ active sellers

Page 7: Optimizing for developer happiness

9+ million registered members

Page 8: Optimizing for developer happiness

$300+ million in sales in 2010

Page 9: Optimizing for developer happiness

> 1 billion page views / month

Page 10: Optimizing for developer happiness

Business in over 150 countries

Page 11: Optimizing for developer happiness

How?

Page 12: Optimizing for developer happiness

Culture.

Page 13: Optimizing for developer happiness

One that optimizes for developer happiness.

Page 14: Optimizing for developer happiness

Erik Kastner

Page 15: Optimizing for developer happiness

Ruby is designed to make programmers happy.— Yukihiro Matsumoto, aka “Matz”

Page 16: Optimizing for developer happiness

Connect engineers to their work

Page 17: Optimizing for developer happiness

by making it easy to ship

Page 18: Optimizing for developer happiness

with the support of a community.

Page 19: Optimizing for developer happiness

Etsy operates internally like an online community: chaotic, irreverent, self-regulating and self-sustaining.

-- Noah Sussman, Software Engineer

Page 20: Optimizing for developer happiness

The way we do things shouldn’t work.

Page 21: Optimizing for developer happiness

It does.

Page 22: Optimizing for developer happiness

Constant progress

Page 23: Optimizing for developer happiness

powered by

Page 24: Optimizing for developer happiness

radical decentralization of authority

Page 25: Optimizing for developer happiness

we trust people.

Page 26: Optimizing for developer happiness

(and dogs)

“Dogs are part of the team, and are expected to commit code.”

MiloDottie

Page 27: Optimizing for developer happiness
Page 28: Optimizing for developer happiness

Ari JM Diego Eric Seth

Page 29: Optimizing for developer happiness
Page 30: Optimizing for developer happiness

Fred

Page 31: Optimizing for developer happiness

Milo

Page 32: Optimizing for developer happiness

Milo

Code going out to our servers

Progress bar

Page 33: Optimizing for developer happiness

Milo

Page 34: Optimizing for developer happiness
Page 35: Optimizing for developer happiness
Page 36: Optimizing for developer happiness
Page 37: Optimizing for developer happiness

Etsy respects the trade of engineering.  Code as Craft.  The first time I came to Etsy there was a quilt over the room where the engineers sat, it said "We [heart] engineers."

- Bill Massie, Software Engineer

Page 38: Optimizing for developer happiness
Page 39: Optimizing for developer happiness
Page 40: Optimizing for developer happiness
Page 41: Optimizing for developer happiness
Page 42: Optimizing for developer happiness
Page 43: Optimizing for developer happiness
Page 44: Optimizing for developer happiness
Page 45: Optimizing for developer happiness
Page 46: Optimizing for developer happiness
Page 47: Optimizing for developer happiness

Peter Drucker

Page 48: Optimizing for developer happiness

the traditional assembly line "deprives the worker of satisfaction. . . by the confinement of the worker to one

manipulation repeated endlessly which denies the satisfaction of finishing a job."

Page 49: Optimizing for developer happiness
Page 50: Optimizing for developer happiness
Page 51: Optimizing for developer happiness
Page 52: Optimizing for developer happiness

If companies really want their workers to produce, they should try to impart a sense of meaning—not just through vision statements but by allowing employees to feel a sense of completion and ensuring that a job well done is acknowledged.

-- Dan Ariely, The Upside of Irrationality (2010)

Page 53: Optimizing for developer happiness

Easy deploys =

developer happiness

Page 54: Optimizing for developer happiness
Page 55: Optimizing for developer happiness
Page 56: Optimizing for developer happiness
Page 57: Optimizing for developer happiness
Page 58: Optimizing for developer happiness

Complete.At Etsy, this cycle takes an

average of 21 minutes.

Page 59: Optimizing for developer happiness

Peter Drucker

Page 60: Optimizing for developer happiness

“[the corporation’s] social function as a community is as important as its economic function as an efficient producer.”

Page 61: Optimizing for developer happiness
Page 62: Optimizing for developer happiness

We use it about 25x a day

Page 63: Optimizing for developer happiness
Page 64: Optimizing for developer happiness

The “Push Train”

Page 65: Optimizing for developer happiness

Ross Snyder

Page 66: Optimizing for developer happiness

IRC Topic

Page 67: Optimizing for developer happiness

20:11 -!- ross changed the topic of #push to: steve | mike | rachel | bill | ross

Page 68: Optimizing for developer happiness

3. rachel 4. ross 2. mike 5. bill

1. steve

Page 69: Optimizing for developer happiness

“intricate ballet in which the individual dancers and ensembles all have distinctive parts which miraculously reinforce each other and compose an orderly whole.”

Jane Jacobs

Page 70: Optimizing for developer happiness
Page 71: Optimizing for developer happiness

Community

Page 72: Optimizing for developer happiness

The fact that the IRC and communication channels are as entertaining as they are useful is great. It makes newcomers feel comfortable and supported.

--Justin Donato, Software Engineer

Page 73: Optimizing for developer happiness

We use tools

Page 74: Optimizing for developer happiness

to build happy communities

Page 75: Optimizing for developer happiness

“. . . . unconscious assumption of general street support when the chips are down.”

Page 76: Optimizing for developer happiness

Dev and ops cooperation. This can never be overstated.. . . . So many engineers watching each others backs.

--Mike Brittain, Software Engineer

Page 77: Optimizing for developer happiness

Your team is your community.

Page 78: Optimizing for developer happiness

Help them finish things.

Page 79: Optimizing for developer happiness

Give them a voice.

Page 80: Optimizing for developer happiness

There is a quality even meaner than outright ugliness or disorder, and this meaner quality is the dishonest mask of pretended order, achieved by ignoring or suppressing the real order that is struggling to exist and to be served.

Jane JacobsThe Death and Life of Great American Cities

1961

Page 81: Optimizing for developer happiness

Build a community

Page 82: Optimizing for developer happiness

where you allow real human order to emerge to

get things done

Page 83: Optimizing for developer happiness

and great things will happen.

Page 84: Optimizing for developer happiness

Optimize for the happiness of people.

Page 85: Optimizing for developer happiness

Thank you.

Page 86: Optimizing for developer happiness

Photo credits• Fred Wilson deploying: http://www.flickr.com/photos/allspaw/5436215259/

• Eatsy: http://www.flickr.com/photos/zsqr0000/5594193193/

• Coding and guitar: http://www.flickr.com/photos/zsqr0000/5181883749/

• Milo pushing deploy: http://www.flickr.com/photos/zsqr0000/5269002895/

• Eating at desk: http://www.flickr.com/photos/jshiell/2498464557/

• Just ship tshirt: http://www.etsy.com/listing/70249006/just-ship-knuckle-tattoo-tshirt

• Women on assembly line: http://www.loc.gov/pictures/item/fsa1992000956/PP/

• B-25 bomber: http://www.loc.gov/pictures/item/fsa1992001167/PP/ 

• Planes lined up: http://www.flickr.com/photos/llarsonphotography/2434063007/

• Jane Jacobs: http://hdl.loc.gov/loc.pnp/cph.3c37838