This is the updated version of my "How GitHub Works" talk.
Read more: http://zachholman.com/posts/how-github-works/
githubworkshow
View Slide
we all workin the finestindustry ofall time
dream itthat morning
build itthat afternoon
that’s remarkable.
can we do better?
we’ve been on thesame path foryears
can weimprove howproduct is built?
working asynchronouslyoptimizinghappinessforfive years latergithub
@holman
github, inc.
ASYNCHRONOUSLYWORKingthe philosophy
when github was founded they:worked on what they wantedworked where they wantedworked when they wanted
when github was founded they:were happy
why change this?
developer happinessis central to our workflow
no managers · NO DEADLINESNO MEETINGS · NO WORK HOURSthis:reflects that workflow
in hindsight,we work likea big open sourceproject
WORK LIKEOPEN SOURCE
the open sourcemodel works
distributedcollaboration
GEOGRAPHY
open sourcehappens everywheresmart people are everywhere
build a company thatcan work anywhere
tools are our officeplanning, discussing, building
all informationshould be accessible
HOURS
open sourcehappens at any timepeople are creative at all hours
code is acreative endeavorlet your people stay fresh
night owlsain’t morning people
morning peopleain’t night owls
you can’tenforce creativity
minimalprocess
every step you addincreases complexity
every step you addincreases onboarding
every step you addincreases inefficiency
minimize humanprocesses
code branching & release (WRONG)V2BRANCHQAMANAGERSTABLE mergedFEATUREBRANCHTUESDAYCODE REVIEW
code branching & release (WRONG)V2BRANCHQAMANAGERSTABLE mergedFEATUREBRANCHX TUESDAYCODE REVIEW
minimize humanprocessescode branching & release
code branching & releasebranch pull requestmaster merged
code branching & releasemergedrun testsauto-deploy
sometimes it’s notabout automationsometimes you have toremove barriers
ship code quicker
less metawork,more actual work
ASYNCHRONOUSLYWORKingwith tools
pull requestsa requestto mergeyour code
pull requests3,108 github/github pull requests399 in the last month63 in the last month - 1 year
pull requests3.11.4 pull requests PER employeeper month, 2011pull requests PER employeeper month, 2012
pull requestswe use pulls forany new code
pull requestsasynchronousask for feedback at their leisure
pull requestsmentionsping users, teams
pull requestsavoid meetings& in-person code review
chat
chatchat is inherentlyasynchronous
chattapping me on myshoulder is inherentlybeing a jerk
chatscheduling a meeting isinherently probably ahate crime
chat83 chat rooms
chatping someone
chatping someonenative OS X + ios notifications
chatget someone’s attentionwithout bothering them
OPTIMIZingHAPPINESSfor
WHY BEHAPPY?
if you’re asking,you’re probablya horrible personbut...
investing in employeesmakes fiscal sense(I can’t believe I had to say that)
happy peopleproduce better work
happy peoplehelp you recruit
happy peoplekeep you happier
so how?
BREAKCONVENTIONfrom
work styleasynchronous, distributed
side project culturelet people build cool thingshubot · CI testing · deploy infrastructuredoor me · music server · support toolsdev environment management · more
travel
company summit 2x/yearcompany-wide brainstormtravel
mini-summit 1x/yearteam-based brainstormtravel
any talk, anywhereyour talk or as a travel buddytravel
github destinationshack house for a dozen for a monthtravel
github destinationshack house for a dozen for a monthtravelberlin · hawaii · Uruguay · Beijing · rome · etc.
travelwhy?
traveltravel is eye-openingnew perspectives, new approaches
travelface timebond with your coworkers
travelstay fresh
FAMILYfocus
people havekids and stuff
flexible hours &locations are great
120 hourwork weeks are silly
family-friendlycompany events
existence of familiesreflects success
f i v eYEARSLATER
four years in,github’s the same
four years in,github’s changed
changes and constantsare fascinating
MOREHUMANS
2010
20102011
201020112012
2012
132 employees today
2.5 million users today
death of thehero developer
work moves acrossops, design, backend,& frontend morefrequently
rely on other teamsfor sanity checks
pull requestsbottleneck prevention:
we average 10-20 per day
means fast developmentwithout sacrificing quality
INTERNALTOOLING
the bigger we get, themore time we spend oninternal tools
our dev tools areprettier than mostfor-profit products
SUPPORT
Chat
TEAM
it becomesmathematicallyimprobable that thistime was wasted
teams
teams let you focus
but teams shouldn’tbe about lock-in
permissive repositoriespermit people to float
self-selecting teamshugely important in crisis
we still suck at teamsit’s importantto get right though
how you workis as important to me aswhat your work is
can this work for yourcompany?maybe, maybe not.
the point is toreevaluate what isimportant to you.
thanks.