Slide 1

Slide 1 text

the best way to build and ship software How GitHub makes GitHub a @helaili - @AlainHelaili - ! [email protected]

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

the best way to build and ship software Git 3 " • Started by Linus Torvalds 2005 (search “torvalds git” on youtube) • Easy branching and merging - content oriented, remembers origin • Small and fast - local operations, smaller repos • Distributed - VCS on my laptop, full copy incl. history • Data assurance - sha1, gpg • Staging area - crafted, meaningful commits • Free and open source - did you read the first line of this slide?

Slide 4

Slide 4 text

" http://www.wired.com/2012/02/github-2/ Photo : Ariel Zambelich/Wired

Slide 5

Slide 5 text

the best way to build and ship software An ideal patch flow 5 " “(0) YOU COME UP WITH AN ITCH. YOU CODE IT UP. (1) SEND IT TO THE LIST AND CC PEOPLE WHO MAY NEED TO KNOW ABOUT THE CHANGE. (2) YOU GET COMMENTS AND SUGGESTIONS FOR IMPROVEMENTS. YOU MAY EVEN GET THEM IN A "ON TOP OF YOUR CHANGE" PATCH FORM. (3) POLISH, REFINE, AND RE-SEND TO THE LIST AND THE PEOPLE WHO SPEND THEIR TIME TO IMPROVE YOUR PATCH. GO BACK TO STEP (2). (4) THE LIST FORMS CONSENSUS THAT THE LAST ROUND OF YOUR PATCH IS GOOD. SEND IT TO THE MAINTAINER AND CC THE LIST. (5) A TOPIC BRANCH IS CREATED WITH THE PATCH AND IS MERGED TO ‘NEXT', AND COOKED FURTHER AND EVENTUALLY GRADUATES TO ‘MASTER'. - HTTPS://GITHUB.COM/GIT/GIT/BLOB/MASTER/DOCUMENTATION/SUBMITTINGPATCHES

Slide 6

Slide 6 text

"

Slide 7

Slide 7 text

" GitHub Social Coding

Slide 8

Slide 8 text

the best way to build and ship software GitHub key facts 8 " FOUNDED 2008 EMPLOYEES 382 UNIVERSITIES USING GITHUB 1,000+ TOTAL 
 REGISTERED USERS 11M TOTAL REPOSITORIES 30M PAYING ORGANIZATIONS >60,000

Slide 9

Slide 9 text

the best way to build and ship software 9 "

Slide 10

Slide 10 text

" What’s the secret?

Slide 11

Slide 11 text

the best way to build and ship software The Zen of GitHub 11 " • Responsive is better than fast • It’s not fully shipped until it’s fast • Anything added dilutes everything else • Practicality beats purity • Approachable is better than simple • Mind your words, they are important • Speak like a human • Half measures are as bad as nothing at all • Encourage flow • Non-blocking is better than blocking • Favor focus over features • Avoid administrative distraction • Design for failure • Keep it logically awesome

Slide 12

Slide 12 text

the best way to build and ship software 12 " DEVOPS CONTINUOUS DELIVERY The (very shorten) recipe CHATOPS # $ % ASYNCHRONOUS COMMUNICATION &

Slide 13

Slide 13 text

" GitHub Flow

Slide 14

Slide 14 text

Create a Feature Branch

Slide 15

Slide 15 text

Add commits

Slide 16

Slide 16 text

Open a Pull Request

Slide 17

Slide 17 text

Discuss and Review Code

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

" Code Review

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

1, 2… Some…. All?

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

the best way to build and ship software

Slide 28

Slide 28 text

Ship

Slide 29

Slide 29 text

the best way to build and ship software

Slide 30

Slide 30 text

" " hubot

Slide 31

Slide 31 text

the best way to build and ship software

Slide 32

Slide 32 text

the best way to build and ship software

Slide 33

Slide 33 text

the best way to build and ship software

Slide 34

Slide 34 text

the best way to build and ship software

Slide 35

Slide 35 text

the best way to build and ship software

Slide 36

Slide 36 text

the best way to build and ship software

Slide 37

Slide 37 text

the best way to build and ship software

Slide 38

Slide 38 text

the best way to build and ship software

Slide 39

Slide 39 text

the best way to build and ship software

Slide 40

Slide 40 text

the best way to build and ship software

Slide 41

Slide 41 text

the best way to build and ship software

Slide 42

Slide 42 text

the best way to build and ship software

Slide 43

Slide 43 text

Merge with master

Slide 44

Slide 44 text

" Questions?

Slide 45

Slide 45 text

the best way to build and ship software Resources 45 " • http://githubengineering.com/runnable-documentation/ • http://githubengineering.com/scripts-to-rule-them-all/ • http://githubengineering.com/exception-monitoring-and-response/ • http://githubengineering.com/deploying-branches-to-github-com/