Keynote at Railsconf

I did a keynote at Railsconf yesterday entitled “Optimizing for developer happiness.” Huge thanks to Ben Scofield and Chad Fowler for the invite. It was a blast!

Below is the video and here are the slides on Slideshare.

I’ve got a longer post in me that builds on the themes in the talk — hoping to get that up in the next couple of weeks!

Update: just found a talk called “Optimize for Happiness” by Tom Preston-Werner (Github co-founder) about optimizing for happiness vs. money. Tom’s talk definitely pre-dated mine and looks at happiness from a somewhat different point-of-view. Definitely worth reading/watching.

4 thoughts on “Keynote at Railsconf

  1. Out of interest, how many developers are in the team?
    How many ‘systems’ are there? (i.e. is etsy a monolithic app?)
    Dou you deploy deltas?
    Whats your rollback process?
    How do you handle schema changes?
    How long has your team been working together?
    Have you ever had a major production issue?

  2. @steven:

    Thanks for the questions. I and some folks on the team did a set of presentations about how we work that you might want to take a look at. Here are some links on our engineering blog that might be of interest:

    The talks I mention:

    http://codeascraft.etsy.com/2011/03/19/moving-fast-at-scale-slides-and-reprise/

    Video of those talks: http://www.livestream.com/etsy/video?clipId=pla_adbab6e2-c629-4bfe-b1fd-21c898693282

    How we work (inspired by question on Quora):

    http://codeascraft.etsy.com/2011/02/04/how-does-etsy-manage-development-and-operations/

    Now, on to your questions. . . .

    > Out of interest, how many developers are in the team?

    just over 70

    > How many ‘systems’ are there? (i.e. is etsy a monolithic app?)

    the core site is mostly PHP and sharded MySQL, with Lucene/Solr thrown in for search, and Gearman for offline jobs. There are some nuances beyond that, but that’s the basic setup.

    > Do you deploy deltas?

    I think you’re asking if we just deploy the diffs with each deploy and not the whole code base. Yes. Otherwise, deploys would take far too long. Given that we deploy small batches frequently, the deltas typically aren’t that big.

    > Whats your rollback process?

    As a philosophical principle, we “roll forward.” The reason is that there are scenarios where rollbacks aren’t possible (e.g. new columns in a database getting inserts). That being said, a “roll forward” can look like a traditional rollback in some cases.

    > How do you handle schema changes?

    These are scheduled — once a week on Thursdays. I think it will be a long time before schema changes are deployed continuously.

    > How long has your team been working together?

    Given how much we’ve grown, over half the team has been working together for less than a year.

    > Have you ever had a major production issue?

    Yes. We measure this. We had 6 deploy-related incidents in 2010, with a MTTR (mean time to recover) of 4.5 minutes. John Allspaw (our VP of ops) writes about the importance of focusing on MTTR on this blog:

    http://www.kitchensoap.com/2010/11/07/mttr-mtbf-for-most-types-of-f/

    @emmanuel – thanks!

  3. Hi Chad,

    It’s interesting (and reassuring) to see so many similarities to how we deploy and organize ourselves in the engineering group at Craigslist. We’re also shipping many times a day and have something like the push train, use IRC, and have a lot of self-organization at work.

    The one thing we don’t do enough of it to talk about how we work. Thanks for spreading the word about what works well for Etsy.

Comments are closed.