Just Ship
                              Managing to Stay Out of the Way




                                                                 Ken Little
                                                                @timesopen
                                                                  9/7/11
Tuesday, September 13, 2011
What is Etsy?



Tuesday, September 13, 2011
Tuesday, September 13, 2011
1+ Billion Pageviews
                                    Per Month



Tuesday, September 13, 2011
~80 Engineers



Tuesday, September 13, 2011
Still Evolving: Heavy Bias Toward
                                     Change



Tuesday, September 13, 2011
HEAVY.



Tuesday, September 13, 2011
The Management Challenge: Create
                   an Environment that ENCOURAGES
                      Experimentation and Rapid
                             Development


Tuesday, September 13, 2011
Rule of Thumb: If You’re not Coding,
                              Be a Catalyst



Tuesday, September 13, 2011
Rule of Thumb: If You’re not Coding,
                              Be a Catalyst
                              Find Ways to Make Coders Better, Stronger, Faster




Tuesday, September 13, 2011
Constant Change




Tuesday, September 13, 2011
Constant Change

      • Make Small(ish), Measurable Changes



Tuesday, September 13, 2011
Constant Change

      • Make Small(ish), Measurable Changes
      • All Roads Lead to Prod


Tuesday, September 13, 2011
Constant Change

      • Make Small(ish), Measurable Changes
      • All Roads Lead to Prod
      • No Barriers. If You Can do the Work, Then You
             Can... do the Work...

Tuesday, September 13, 2011
Small(ish) Changes



Tuesday, September 13, 2011
“All existing revision control systems
               were built by people who build installed
               software”

                                                  - Paul Hammond,
                                    Always Ship Trunk, Velocity 2010




Tuesday, September 13, 2011
The Web is NOT Installed Software



Tuesday, September 13, 2011
Commit Daily



Tuesday, September 13, 2011
Commit Daily
                               TO TRUNK


Tuesday, September 13, 2011
No Branches



Tuesday, September 13, 2011
No Sleepy Repose in QA / Stage



Tuesday, September 13, 2011
DO IT LIVE!



Tuesday, September 13, 2011
DO IT LIVE?
                                (OK Not Quite)




Tuesday, September 13, 2011
Branch in Code



Tuesday, September 13, 2011
Config Flags
       if ($cfg::isEnabled(‘awesome_new_search’))
       {
              # new hotness
              $rsp = do_solr();
       } else {
              # boring old stuff
              $rsp = do_grep();
       }


Tuesday, September 13, 2011
Keep it Simple




Tuesday, September 13, 2011
Ding Ding!


           $conf[‘awesome_new_search’] = array(

           ! enabled => ‘ADMINONLY’

           );




Tuesday, September 13, 2011
Ding Ding!

      • Allows Multiple Contributors Without Drifting from Trunk
      • Provides Tremendous Visibility into Project Progress
      • Once Done, Code’s already Deployed

Tuesday, September 13, 2011
Turning it on in Production is
                                    Actually Boring



Tuesday, September 13, 2011
Tuesday, September 13, 2011
Do (Most) Change Management Along the Way




Tuesday, September 13, 2011
Do (Most) Change Management Along the Way

      • Code Reviews With each Commit



Tuesday, September 13, 2011
Don’t Think, Just do it




Tuesday, September 13, 2011
Do (Most) Change Management Along the Way

      • Code Reviews With each Commit
      • Unit Tests - We’ve Got Boatloads


Tuesday, September 13, 2011
Do (Most) Change Management Along the Way

      • Code Reviews With each Commit
      • Unit Tests - We’ve Got Boatloads
      • Constantly Monitor for Trouble. Correct Quickly.

Tuesday, September 13, 2011
Graph Everything




Tuesday, September 13, 2011
Graph Everything




Tuesday, September 13, 2011
No, Really. Everything.




Tuesday, September 13, 2011
mean time to detect:
                                 < 5 minutes


                                           mean time to resolve:
                                              4.5 minutes




Tuesday, September 13, 2011
All Roads Lead to Prod



Tuesday, September 13, 2011
Rampups


           $conf[‘awesome_new_search’] = array(

           ! enabled => ‘ADMINONLY’

           );




Tuesday, September 13, 2011
Rampups


           $conf[‘awesome_new_search’] = array(

           ! enabled          => ‘WHITELIST’,

           ! whitelist => array(‘kenlittle’, ‘yournamehere’)

           );




Tuesday, September 13, 2011
Rampups


           $conf[‘awesome_new_search’] = array(

           ! enabled => ‘RAMPUP’,

           ! percent => 1 //percent of users

           );




Tuesday, September 13, 2011
1%



Tuesday, September 13, 2011
Experiments



Tuesday, September 13, 2011
Tuesday, September 13, 2011
Hack Week



Tuesday, September 13, 2011
Tuesday, September 13, 2011
Make it Harder to Talk About an Idea
                           Than to Just do it



Tuesday, September 13, 2011
No Barriers. If You Can do the Work,
                     Then You Can... do the Work...



Tuesday, September 13, 2011
Mike Becak




Tuesday, September 13, 2011
Mike Becak
                              Product Dude




Tuesday, September 13, 2011
Mike’s Commit Stream




Tuesday, September 13, 2011
Mike’s Code Reviews




Tuesday, September 13, 2011
Mike’s Push




Tuesday, September 13, 2011
Sam Haskins




Tuesday, September 13, 2011
Sam Haskins
                              Rocking Engineering
                              Intern




Tuesday, September 13, 2011
Sam Announcing a New Feature




Tuesday, September 13, 2011
Wrap it Up



Tuesday, September 13, 2011
Small, Constant Change



Tuesday, September 13, 2011
Prod is a Great Context to Dev in



Tuesday, September 13, 2011
Help the Folks that Do, Do More



Tuesday, September 13, 2011
http://kellanem.etsy.com




Tuesday, September 13, 2011
Thanks!
                    • http://codeascraft.etsy.com
                    • http://www.etsy.com/careers/
                    • ken.little@etsy.com

Tuesday, September 13, 2011

Just Ship: Managing to Stay Out of the Way