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 full-size slide

  2. the
    story
    begins
    with

    View full-size slide

  3. 4 FOUNDERS
    IN A coffee shop

    View full-size slide

  4. 4 FOUNDERS
    IN A BAR

    View full-size slide

  5. 4 FOUNDERS
    IN A restaurant

    View full-size slide

  6. 4 FOUNDERS
    IN A plane

    View full-size slide

  7. 4 FOUNDERS
    IN A JAIL CELL

    View full-size slide

  8. 4 FOUNDERS
    IN A SOMEWHERE

    View full-size slide

  9. no office
    had other jobs

    View full-size slide

  10. this was the start of

    View full-size slide

  11. distributed happy
    flexible
    github was forced to be

    View full-size slide

  12. turns out,
    great way to work

    View full-size slide

  13. this talk
    is kind of about
    github

    View full-size slide

  14. but it’s really about
    improving your company

    View full-size slide

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

    View full-size slide

  16. BULLSHIT
    HOURS Are

    View full-size slide

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

    View full-size slide

  18. crafting code is a
    hugely creative endeavor

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  22. embraceflexiBility

    View full-size slide

  23. 90
    hours/week
    and loving it!
    x

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  30. family
    github

    View full-size slide

  31. BE A FAMILY COMPANY

    View full-size slide

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

    View full-size slide

  33. happy families,
    happy coworkers
    productive companies
    happy coworkers,

    View full-size slide

  34. trust
    your employees

    View full-size slide

  35. you hired them, after all

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  39. BE
    ASYNCHRONOUS

    View full-size slide

  40. asynchronous
    a distributed way of getting things done

    View full-size slide

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

    View full-size slide

  42. G
    @
    sanfrancisco
    S
    githubhq

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  46. G
    flexible hours
    help with flexible location
    T

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  50. J
    we want developers
    in the zonetm

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  54. J
    no managers
    they just distract

    View full-size slide

  55. J
    we can work this way because:

    View full-size slide

  56. J
    dogfood
    product
    company
    full
    ownership
    profitable

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  59. g
    G
    [
    redacted
    ]
    [
    redacted
    ]
    teams

    View full-size slide

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

    View full-size slide

  61. 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 full-size slide

  62. g
    G
    small teams let you
    focus

    View full-size slide

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

    View full-size slide

  64. \
    how do we actually do all this?

    View full-size slide

  65. \
    plan·build·ship

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  68. \
    build
    simplebranching
    master
    branch
    pull request

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  74. \
    ,
    superfasttests
    SHIP

    View full-size slide

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

    View full-size slide

  76. \
    ,
    a slow test is
    a regression
    build

    View full-size slide

  77. 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 full-size slide

  78. FOR
    OPTIMIZE
    HAPPINESS

    View full-size slide

  79. 2008 2009
    2010
    2011
    May 2012

    View full-size slide

  80. employees
    83
    employees who have left
    0

    View full-size slide

  81. a happiness-oriented workplace
    this requires

    View full-size slide

  82. LEADS TO UNHAPPINESS AND TO LEAVING
    EMPLOYEE BURNOUT

    View full-size slide

  83. EXPLORATION x

    View full-size slide

  84. SELF-DIRECTION
    X

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  87. 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 full-size slide

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

    View full-size slide

  89. NO SET HOURS
    )
    FREEDOM

    View full-size slide

  90. NO MANAGERS
    )
    FREEDOM

    View full-size slide

  91. NO MEETINGS
    )
    FREEDOM

    View full-size slide

  92. NO NEED TO BE IN OFFICE
    )
    FREEDOM

    View full-size slide

  93. NO VACATION TRACKING
    )
    FREEDOM

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  96. KEEP YOUR EMPLOYEES
    HAPPY
    REALLY
    REALLY
    REALLY

    View full-size slide

  97. build a company
    you want to work for

    View full-size slide

  98. happiness
    push for

    View full-size slide

  99. zachholman
    @holman
    zachholman.com/talks

    View full-size slide