Slide 1

Slide 1 text

the best way to build and ship software Leverage Open Source with 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

Slide 4

Slide 4 text

the best way to build and ship software GitHub key facts 4 " FOUNDED 2008 EMPLOYEES 600 UNIVERSITIES USING GITHUB 1,000+ TOTAL 
 REGISTERED USERS 15M TOTAL REPOSITORIES 40M PAYING ORGANIZATIONS >75,000

Slide 5

Slide 5 text

" Opensource

Slide 6

Slide 6 text

"

Slide 7

Slide 7 text

the best way to build and ship software The cathedral and the bazaar 7 "

Slide 8

Slide 8 text

the best way to build and ship software State of the open source 8 "

Slide 9

Slide 9 text

"

Slide 10

Slide 10 text

"

Slide 11

Slide 11 text

"

Slide 12

Slide 12 text

the best way to build and ship software Community 12 "

Slide 13

Slide 13 text

the best way to build and ship software All businesses will evolve into software businesses 13 "

Slide 14

Slide 14 text

the best way to build and ship software Opensourcing is for everyone 14 "

Slide 15

Slide 15 text

the best way to build and ship software Why open sourcing code 15 " • Great advertising for you and your company… translat[ing] into goodwill for [your company] and more superfans than ever before • Attract outside contributions : create a force multiplier that helps you get more work done faster and cheaper. More users means more use cases being explored which means more robust code • Attract talent : Smart people like to hang out with other smart people. Smart developers like to hang out with smart code. • Best technical interview possible, the one you don’t have to do because the candidate is already kicking • Retain talents

Slide 16

Slide 16 text

the best way to build and ship software Why YOU should open source 16 "

Slide 17

Slide 17 text

How people build software " a framework for assessing the effectiveness of behaviors, practices and processes, and identifying what capabilities to acquire next in order to produce the desired outcomes M A T U R I T Y M O D E L F O R A D O P T I N G O P E N S O U R C E

Slide 18

Slide 18 text

How people build software " MATURE UNDEVELOPED Evaluate Improve + " M A T U R I T Y M O D E L F O R A D O P T I N G O P E N S O U R C E

Slide 19

Slide 19 text

the best way to build and ship software 19 " a lot of work that wasn't truly open source — i.e. out-of-the-box useful to the community at-large The enthusiasm our team showed for open source led the Guild to next develop a set of Open Source First principles to institutionalize this openness. These principles encourage our engineers to share their code instead of hide it inside private repos, as well as "take ownership," "be safe," "provide documentation," and "ask for help."

Slide 20

Slide 20 text

How people build software " Maturity Model for Adopting Open Source CONSUMING CONTRIBUTING RELEASING EMBRACING Using open source software. Contributing back to the projects you use. Creating new open source projects. Strategically participating in open source.

Slide 21

Slide 21 text

How people build software " Maturity Model for Adopting Open Source CONSUMING CONTRIBUTING RELEASING EMBRACING Using open source software. What are the basics of open source? How do I find projects? How do I evaluate the quality and health of projects? How do I stay on top of security vulnerabilities? What are the basics of licensing? What do I need to do to comply with the license?

Slide 22

Slide 22 text

How people build software " Maturity Model for Adopting Open Source CONSUMING CONTRIBUTING RELEASING EMBRACING Contributing back to the projects you use. How do I report issues? How do I use GitHub? What do I need to know about IP?

Slide 23

Slide 23 text

How people build software " Maturity Model for Adopting Open Source CONSUMING CONTRIBUTING RELEASING EMBRACING Creating new open source projects. How do I get my source code ready for release? How do I choose a license? What else do I need to know about IP? How do I build a community? What other tools do I need for my community?

Slide 24

Slide 24 text

"

Slide 25

Slide 25 text

How people build software " Maturity Model for Adopting Open Source CONSUMING CONTRIBUTING RELEASING EMBRACING Strategically participating in open source. How can we get a competitive advantage? What open source releases show leadership? How effective is our open source involvement? What communities do we want to hire from? How do we work like an open source project internally?

Slide 26

Slide 26 text

" Innersource

Slide 27

Slide 27 text

"

Slide 28

Slide 28 text

the best way to build and ship software How will software be built in the future? 28 " InnerSource: The power of open source within the walls of the enterprise.

Slide 29

Slide 29 text

the best way to build and ship software Why do PayPal, Scania and IBM use InnerSource? 29 "

Slide 30

Slide 30 text

the best way to build and ship software What are the core tenets of InnerSource? 30 " • Everyone is expected to contribute and participate in reviews and mentoring • Contributions are judged based on their merits • All decisions are discussed publicly, stored indefinitely, and can be searched • Code and commentary are widely available • Autonomous organization of teams, self organizing and alignment

Slide 31

Slide 31 text

" Commercial Open Source

Slide 32

Slide 32 text

the best way to build and ship software Commercial Opensource 32 "

Slide 33

Slide 33 text

the best way to build and ship software Choose your license 33 " • License = business model • Fremium • Embed • Certification • Liability • Support • Ecosystem

Slide 34

Slide 34 text

" Social Coding

Slide 35

Slide 35 text

the best way to build and ship software GitHub Community Guidelines 35 "

Slide 36

Slide 36 text

the best way to build and ship software GitHub Community Guidelines 36 "

Slide 37

Slide 37 text

the best way to build and ship software Fork & Pull 37 "

Slide 38

Slide 38 text

the best way to build and ship software Fork & Pull 38 "

Slide 39

Slide 39 text

" GitHub Flow

Slide 40

Slide 40 text

Create a Feature Branch

Slide 41

Slide 41 text

Add commits

Slide 42

Slide 42 text

Open a Pull Request

Slide 43

Slide 43 text

Discuss and Review Code

Slide 44

Slide 44 text

Ship

Slide 45

Slide 45 text

Merge with master

Slide 46

Slide 46 text

" Fork & Pull Flow

Slide 47

Slide 47 text

# $ % & ' ' ( ) % * + ' ' Upstream Origin Fork

Slide 48

Slide 48 text

# $ % & ' ' ( ) % * + ' ' Upstream Origin Create a Feature Branch

Slide 49

Slide 49 text

# $ % & ' ' ( ) % * + ' ' Upstream Origin Add commits

Slide 50

Slide 50 text

# $ % & ' ' ( ) % * + ' ' Upstream Origin Open a Pull Request

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

# $ % & ' ' ( ) % * + ' ' Upstream Origin Discuss and Review Code

Slide 53

Slide 53 text

the best way to build and ship software Get CI status back in PR 53 "

Slide 54

Slide 54 text

the best way to build and ship software Pull Requests 54 "

Slide 55

Slide 55 text

# $ % & ' ' ) % * + ' ' Upstream Origin Merge (

Slide 56

Slide 56 text

# $ % & ' ' ( ) % * + ' ' Upstream Origin Pull from Upstream Master

Slide 57

Slide 57 text

" Dictator & Lieutenant Flow

Slide 58

Slide 58 text

# * $ + $ + + * * $ $ $ $ $ Dictator Lieutenants Public contributors

Slide 59

Slide 59 text

# * $ + $ + + * * $ $ $ $ $ Dictator Lieutenants Public contributors & & & & & & (

Slide 60

Slide 60 text

# * $ + $ + + * * $ $ $ $ $ Dictator Lieutenants Public contributors

Slide 61

Slide 61 text

" Git Flow

Slide 62

Slide 62 text

http://nvie.com/posts/a-successful-git-branching-model/

Slide 63

Slide 63 text

the best way to build and ship software Gerrit 63 " • Body Level One • Body Level Two • Body Level Three • Body Level Four • Body Level Five

Slide 64

Slide 64 text

" Questions?