How GitHub Works

How GitHub Works

How GitHub Works.

Hint: it's pretty cool.

78b475797a14c84799063c7cd073962f?s=128

Zach Holman

March 09, 2012
Tweet

Transcript

  1. HoW WORKS GITHUB

  2. the story begins with

  3. 4 FOUNDERS IN A coffee shop

  4. 4 FOUNDERS IN A BAR

  5. 4 FOUNDERS IN A restaurant

  6. 4 FOUNDERS IN A plane

  7. 4 FOUNDERS IN A JAIL CELL

  8. 4 FOUNDERS IN A SOMEWHERE

  9. None
  10. no office had other jobs

  11. None
  12. this was the start of

  13. distributed happy flexible github was forced to be

  14. turns out, great way to work

  15. this talk is kind of about github

  16. but it’s really about improving your company

  17. @holman

  18. None
  19. works howgithub zachholman.com/posts/how-github-works

  20. BULLSHIT HOURS Are

  21. 9 to 5 DOES not wORK W O R K

    I N G
  22. crafting code is a hugely creative endeavor

  23. you can’t force creativity to happen between 9 and 5.

  24. the best solutions happen when you’re in the zone

  25. our early birds night owls nine-to-fivers traveling employees international employees

    office
  26. embraceflexiBility

  27. 90 hours/week and loving it! x

  28. working long hours isn’t a badge of honor ...it’s a

    badge of foolishness
  29. all-nighters are a recipe for redoing everything again later

  30. marathon code sessions drain you mentally lead to poor code

    quality impact future code
  31. WE LET GITHUbbers work WHEREver AND WHENever THEY WANT TO

    WORK
  32. we want to get the best work from our employees

    that happens when they are happy, fresh, and creative
  33. FAMILIES

  34. @MADDOX NEW DAD, May 26 @MOJOMBO NEW DAD, SOON @xpaulbettsx

    NEW DAD LATE 2012 @bethnewland NEW MOM 2012ish
  35. family github

  36. BE A FAMILY COMPANY

  37. being less hour-centric = more family-friendly

  38. happy families, happy coworkers productive companies happy coworkers,

  39. trust your employees

  40. you hired them, after all

  41. trust employees, help them out, then verify they’re doing the

    work.
  42. this requires communication are they committing? are they participating? what’s

    their code look like?
  43. bullshit hours w o r r y a b o

    u t g o o d w o r k are
  44. BE ASYNCHRONOUS

  45. asynchronous a distributed way of getting things done

  46. attention-aware J geographically-distributed G team-oriented g minimal process \

  47. G @ sanfrancisco S githubhq

  48. G turns out, the world is larger than just san

    francisco.
  49. G we want to hire the best S S S

    S S S S S S S
  50. G distributed work needs to be a priority for us

  51. G flexible hours help with flexible location T

  52. chat G limit required in-person contact beer:30 facetime recorded talks

  53. summit 2010 G encourage structured team building summit 2011 get

    people meeting in real-life! github summit 2012
  54. attention-aware J team-oriented g minimal process \ geographically-distributed G

  55. J we want developers in the zonetm

  56. J minimize distractions the zone is difficult to re-enter

  57. J no technical meetings no standup, daily, or planning meetings

  58. J no in-person distractions instead, ping over chat

  59. J no managers they just distract

  60. J we can work this way because:

  61. J dogfood product company full ownership profitable

  62. J each company is different find out what works best

    for yours
  63. G geographically-distributed attention-aware J team-oriented g minimal process \ G

  64. g G [ redacted ] [ redacted ] teams

  65. g G small teams let you move quickly&independently

  66. g G the danger room the serious room the enterprise

    room the design room the support room the internal room the native room the (redacted) roo the mobile room the ops room e notices room o 30+rooms:
  67. g G small teams let you focus

  68. G geographically-distributed attention-aware J team-oriented g minimal process \ G

  69. \ how do we actually do all this?

  70. \ plan·build·ship

  71. \ show It as soon as possible chat pull requests

    wikis, internal apps make it okay to say “no” plan
  72. \ ideas&projects everyone contributes avoid abandonment see status updates plan

  73. \ build simplebranching master branch pull request

  74. \ simplebranching designer friendly (”Non-technical”) build

  75. \ simplebranching simple rollback partial deploysstaff-only specific servers specific processes

    build
  76. \ pull requests are discussions that improve code quality build

  77. \ push branch get feedback make improvements merge branch build

  78. \ asynchronous, non-invasive extremely visible for your org one-click merge

    button replaces traditional code review build
  79. \ , superfasttests SHIP

  80. \ , 14000 assertions in 200 seconds build (still not

    fast enough)
  81. \ , a slow test is a regression build

  82. you don’t need distractions you don’t need to be in

    the same country you really don’t need a lot of process
  83. FOR OPTIMIZE HAPPINESS

  84. 2008 2009 2010 2011 May 2012

  85. employees 83 employees who have left 0

  86. a happiness-oriented workplace this requires

  87. LEADS TO UNHAPPINESS AND TO LEAVING EMPLOYEE BURNOUT

  88. EXPLORATION x

  89. FREEDOM )

  90. SELF-DIRECTION X

  91. shared side projects hubot internal apps hardware hacking EXPLORATION x

    PLAY
  92. spanish tutoring arduino lessons kindles&ebooks KEEP EVERYONE LEARNING EXPLORATION x

  93. ACCEPTED TO SPEAK AT A CONFERENCE? GITHUB PAYS FOR YOU

    AND A TRAVEL BUDDY NETWORKING EXPLORATION x MARKETING FOR GITHUB DRINKUPS, YOUR TALK MEET PEOPLE POTENTIAL HIRES, SOCIALIZING IS FUN
  94. BURNOUT HAPPENS WHEN YOU’RE NOT EXPLORATION x PERSONALLY GROWING

  95. NO SET HOURS ) FREEDOM

  96. NO MANAGERS ) FREEDOM

  97. NO MEETINGS ) FREEDOM

  98. NO NEED TO BE IN OFFICE ) FREEDOM

  99. NO VACATION TRACKING ) FREEDOM

  100. SELF-DIRECTION X WORK ON THINGS THAT INTEREST YOU

  101. SELF-DIRECTION X WE HAVE TEAMS, BUT TEAMS SHOULD BE EASY

    TO MOVE BEtweEN
  102. KEEP YOUR EMPLOYEES HAPPY REALLY REALLY REALLY

  103. flexible be

  104. build a company you want to work for

  105. happiness push for

  106. thanks.

  107. zachholman @holman zachholman.com/talks