Top Banner
How people build software ! " OPEN’16 Lutger Kunst @lukeart
33

5/ GitHub Inner Source @ OPEN'16

Apr 12, 2017

Download

Software

Kangaroot
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 5/ GitHub Inner Source @ OPEN'16

How people build software

!

"

OPEN’16Lutger Kunst @lukeart

Page 2: 5/ GitHub Inner Source @ OPEN'16

How people build software

Inner Sourceadopting open source principlesto ship better code earlier & more often

2

Lutger Kunst

Solutions Engineer

GitHub

Page 3: 5/ GitHub Inner Source @ OPEN'16

How people build software

!About us

3

FOUNDED

2008

GLOBAL RANK

#55

OFFICES

San Francisco Tokyo, Amsterdam, Boulder

USERS

15M

DAILY VISITORS

3M

REPOSITORIES

38M

Page 4: 5/ GitHub Inner Source @ OPEN'16

How people build software

gA brief history of GitHub

4

g

2 0 1 0 . C O R P O R A T E T E A M S

Usage expands to include

working groups and project

teams within corporations

2 0 1 2 . E N T E R P R I S E

Major enterprises begin to

leverage the GitHub approach

to software development

2 0 0 8 . S O C I A L C O D I N G

GitHub launches a social

software platform that makes it

easy for anyone to share code.

Page 5: 5/ GitHub Inner Source @ OPEN'16

How people build software

HappinessNo mockery in this world ever sounds to me so hollow as that of being told to cultivate happiness. What does such advice mean? Happiness is not a potato, to be planted in mould, and tilled with manure.

― Charlotte Brontë, Villette

5

$

Page 6: 5/ GitHub Inner Source @ OPEN'16

How people build software

Open Source DevelopmentThe development of open source software involves bringing a widely distributed group of people together to work on complex problems while primarily communicating online.

6

%

Page 7: 5/ GitHub Inner Source @ OPEN'16

How people build software

!2300% more requests served per second

7

Page 8: 5/ GitHub Inner Source @ OPEN'16

!

How people build software

Open source projects have constraints

8

&

GEOGRAPHY TIMEZONE CULTURE

'%

Page 9: 5/ GitHub Inner Source @ OPEN'16

!

How people build software

Open source principles

9

TRANSPARENCY PARTICIPATION COLLABORATION

( ) *

Page 10: 5/ GitHub Inner Source @ OPEN'16

!

How people build software

The medium and the message are transparent

10

+ ' )

ELECTRONIC ASYNCHRONOUS LOCK-FREE

Page 11: 5/ GitHub Inner Source @ OPEN'16

!

How people build software

The medium and the message are transparent

11

+ ' )

ELECTRONIC ASYNCHRONOUS LOCK-FREE

ARCHIVED,

Page 12: 5/ GitHub Inner Source @ OPEN'16

!

How people build software

Minimizing friction enables participation

12

- ) &

DOCUMENTATIONREADME.md

CONTRIBUTING.md

GITHUB FLOWMake it easy to

propose changes

AUTOMATIONAllows reviewers tofocus on substance

Page 13: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Minimizing friction - Documentation

13

Page 14: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Minimizing friction - GitHub Flow

14

Page 15: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Minimizing friction - GitHub Flow

15

Experimentation Without Risk

Branch — Question, Hypothesis, Experiment, Analyze,

Conclude

Pull Request — Gather feedback from peers and

integrate with 3rd party products to perform

automation for quality of code, build status, and

deployment

Page 16: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Minimizing friction - GitHub Flow

16

Pull Request feedback loop

Writing a Pull Request — Include the purposes and why

the work is taking place. Include any references. Be

explicit about when and what kind of feedback you want.

Use @mentions to bring people into the conversation.

Providing feedback — Make sure you understand the

context of the pull request and explain any code changes

you propose. Use positive language.

Responding to feedback — Express that you appreciate

their feedback. Ask for clarification if needed or clarify

why you made certain decisions. Try to respond to any

comment.

Page 17: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Minimizing friction - Automation

17

Page 18: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Minimizing friction - Automation

18

Page 19: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Apple Swift - Expanding Commit Access

19

Page 20: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Minimizing friction - Automation

20

Page 21: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Code deploys - bring operations to the developer

21

+--------------------+ +--------+ +-----------------+ | GitHub Auto-Deploy | | GitHub | | Your Server | | Service | +--------+ +-----------------+ +--------------------+ | | | | | | Create Deployment | | |------------------------>| | | | | | | | | | Deployment Event | | |--------------------------------->| | | | | | Deployment Status (pending) | | |<---------------------------------| | | | | | | | | Deployment Status (success) | | |<---------------------------------| | | |

Page 22: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Deploy on every push commit

22

Page 23: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Deploy master on merge

23

Page 24: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Use branch based deployments

24

Page 25: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Deployment status

25

Page 26: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Haystack exception tracking

26

Page 27: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Code refactoring with Scientist

27

Page 28: 5/ GitHub Inner Source @ OPEN'16

!

How people build software

Put everyone in one spot with chat…

28

• Team rooms• Region based rooms• Social rooms• Private chat• Ops rooms

Page 29: 5/ GitHub Inner Source @ OPEN'16

How people build software

!… and bring your tools into your conversations

29

Page 30: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Meet Hubot

30

Page 31: 5/ GitHub Inner Source @ OPEN'16

How people build software

!Hubot deploy example

31

Page 32: 5/ GitHub Inner Source @ OPEN'16

!

How people build software

Steps to create happy developers

32

• Ensure quality• Implement rigorous testing and build• Short-lived branches for small features• Make deploys boring and predictable• Require documentation in the

repositories• Require mature and respectful

behavior

• Improve collaboration • Let developers share their work• Require public and focused code

reviews• Give employees the confidence to

contribute code• Put everyone in one spot with chat• Share your experiences

Page 33: 5/ GitHub Inner Source @ OPEN'16

How people build software

!

"

Thank you!