Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How GitHub Works

How GitHub Works

How GitHub Works.

Hint: it's pretty cool.

Zach Holman

March 09, 2012
Tweet

More Decks by Zach Holman

Other Decks in Business

Transcript

  1. HoW
    WORKS
    GITHUB

    View Slide

  2. the
    story
    begins
    with

    View Slide

  3. 4 FOUNDERS
    IN A coffee shop

    View Slide

  4. 4 FOUNDERS
    IN A BAR

    View Slide

  5. 4 FOUNDERS
    IN A restaurant

    View Slide

  6. 4 FOUNDERS
    IN A plane

    View Slide

  7. 4 FOUNDERS
    IN A JAIL CELL

    View Slide

  8. 4 FOUNDERS
    IN A SOMEWHERE

    View Slide

  9. View Slide

  10. no office
    had other jobs

    View Slide

  11. View Slide

  12. this was the start of

    View Slide

  13. distributed happy
    flexible
    github was forced to be

    View Slide

  14. turns out,
    great way to work

    View Slide

  15. this talk
    is kind of about
    github

    View Slide

  16. but it’s really about
    improving your company

    View Slide

  17. @holman

    View Slide

  18. View Slide

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

    View Slide

  20. BULLSHIT
    HOURS Are

    View Slide

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

    View Slide

  22. crafting code is a
    hugely creative endeavor

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  26. embraceflexiBility

    View Slide

  27. 90
    hours/week
    and loving it!
    x

    View Slide

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

    View Slide

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

    View Slide

  30. marathon code sessions
    drain you mentally
    lead to poor code quality
    impact future code

    View Slide

  31. WE LET GITHUbbers work
    WHEREver AND WHENever
    THEY WANT TO WORK

    View Slide

  32. we want to get
    the best work
    from our employees
    that happens when they are
    happy, fresh, and creative

    View Slide

  33. FAMILIES

    View Slide

  34. @MADDOX
    NEW DAD, May 26
    @MOJOMBO
    NEW DAD, SOON
    @xpaulbettsx
    NEW DAD LATE 2012
    @bethnewland
    NEW MOM 2012ish

    View Slide

  35. family
    github

    View Slide

  36. BE A FAMILY COMPANY

    View Slide

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

    View Slide

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

    View Slide

  39. trust
    your employees

    View Slide

  40. you hired them, after all

    View Slide

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

    View Slide

  42. this requires communication
    are they committing?
    are they participating?
    what’s their code look like?

    View Slide

  43. bullshit
    hours
    w o r r y a b o u t g o o d w o r k
    are

    View Slide

  44. BE
    ASYNCHRONOUS

    View Slide

  45. asynchronous
    a distributed way of getting things done

    View Slide

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

    View Slide

  47. G
    @
    sanfrancisco
    S
    githubhq

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  51. G
    flexible hours
    help with flexible location
    T

    View Slide

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

    View Slide

  53. summit 2010 G
    encourage
    structured team building
    summit 2011
    get people
    meeting in
    real-life!
    github summit 2012

    View Slide

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

    View Slide

  55. J
    we want developers
    in the zonetm

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  59. J
    no managers
    they just distract

    View Slide

  60. J
    we can work this way because:

    View Slide

  61. J
    dogfood
    product
    company
    full
    ownership
    profitable

    View Slide

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

    View Slide

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

    View Slide

  64. g
    G
    [
    redacted
    ]
    [
    redacted
    ]
    teams

    View Slide

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

    View Slide

  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:

    View Slide

  67. g
    G
    small teams let you
    focus

    View Slide

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

    View Slide

  69. \
    how do we actually do all this?

    View Slide

  70. \
    plan·build·ship

    View Slide

  71. \
    show It as soon as possible
    chat
    pull requests
    wikis, internal apps
    make it okay to say “no”
    plan

    View Slide

  72. \
    ideas&projects
    everyone contributes
    avoid abandonment
    see status updates
    plan

    View Slide

  73. \
    build
    simplebranching
    master
    branch
    pull request

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  78. \
    asynchronous, non-invasive
    extremely visible for your org
    one-click merge button
    replaces traditional code review
    build

    View Slide

  79. \
    ,
    superfasttests
    SHIP

    View Slide

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

    View Slide

  81. \
    ,
    a slow test is
    a regression
    build

    View Slide

  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

    View Slide

  83. FOR
    OPTIMIZE
    HAPPINESS

    View Slide

  84. 2008 2009
    2010
    2011
    May 2012

    View Slide

  85. employees
    83
    employees who have left
    0

    View Slide

  86. a happiness-oriented workplace
    this requires

    View Slide

  87. LEADS TO UNHAPPINESS AND TO LEAVING
    EMPLOYEE BURNOUT

    View Slide

  88. EXPLORATION x

    View Slide

  89. FREEDOM
    )

    View Slide

  90. SELF-DIRECTION
    X

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  94. BURNOUT HAPPENS WHEN YOU’RE NOT
    EXPLORATION x
    PERSONALLY GROWING

    View Slide

  95. NO SET HOURS
    )
    FREEDOM

    View Slide

  96. NO MANAGERS
    )
    FREEDOM

    View Slide

  97. NO MEETINGS
    )
    FREEDOM

    View Slide

  98. NO NEED TO BE IN OFFICE
    )
    FREEDOM

    View Slide

  99. NO VACATION TRACKING
    )
    FREEDOM

    View Slide

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

    View Slide

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

    View Slide

  102. KEEP YOUR EMPLOYEES
    HAPPY
    REALLY
    REALLY
    REALLY

    View Slide

  103. flexible
    be

    View Slide

  104. build a company
    you want to work for

    View Slide

  105. happiness
    push for

    View Slide

  106. thanks.

    View Slide

  107. zachholman
    @holman
    zachholman.com/talks

    View Slide