Slide 1

Slide 1 text

It takes a digital village An analytical-ish look at what grows strong communities on GitHub.com @benbalter ben.balter.com [email protected]

Slide 2

Slide 2 text

The promise of open source Publish code People contribute

Slide 3

Slide 3 text

Online communities are offline communities, just online

Slide 4

Slide 4 text

All communities have three things e.g., neighborhoods, congregations, bowling leagues

Slide 5

Slide 5 text

Shared challenge a nice place to live, practicing religious beliefs, or an excuse to wear silly shoes

Slide 6

Slide 6 text

Leaders elected officials, clergy, team captains

Slide 7

Slide 7 text

Norms (and the means to enforce them) laws, religious teachings, league regulations

Slide 8

Slide 8 text

Open source communities Challenge - Project goal Leaders - Maintainers Norms - Meta files

Slide 9

Slide 9 text

Encouraging good 
 online citizenship

Slide 10

Slide 10 text

The Community Profile API

Slide 11

Slide 11 text

Community Profile API

Slide 12

Slide 12 text

GET /repositories/:repo_id/community/profile [ { "health_percentage": 100, "files": { "code_of_conduct": { "name": "Contributor Covenant", "key": "contributor_covenant", "url": null, "html_url": "https://github.com/octocat/Hello-World/blob/master/CODE_OF_CONDUCT.md" }, "contributing": { "url": "https://api.github.com/repos/octocat/Hello-World/contents/CONTRIBUTING", "html_url": "https://github.com/octocat/Hello-World/blob/master/CONTRIBUTING" }, "license": { "name": "MIT License", "key": "mit", "url": "https://api.github.com/licenses/mit", "html_url": "https://github.com/octocat/Hello-World/blob/master/LICENSE" }, "readme": { "url": "https://api.github.com/repos/octocat/Hello-World/contents/README.md", "html_url": "https://github.com/octocat/Hello-World/blob/master/README.md" } }, "updated_at": "2017-02-28T19:09:29Z" } ]

Slide 13

Slide 13 text

GitHub as a dataset 21M developers 58M Projects

Slide 14

Slide 14 text

Three quick qualifiers

Slide 15

Slide 15 text

Types of projects on GitHub 80% - Homework, published code, terrible ideas 20% - Open source projects

Slide 16

Slide 16 text

Only looking at Public, non-fork, non-spammy repos

Slide 17

Slide 17 text

Correlation != causation

Slide 18

Slide 18 text

Opensource.guide

Slide 19

Slide 19 text

The contributor funnel @MikeMcQuaid

Slide 20

Slide 20 text

How to get more users

Slide 21

Slide 21 text

Solve a shared problem

Slide 22

Slide 22 text

Market your project

Slide 23

Slide 23 text

Websites attract PRs # of Pull Requests % of repos with homepage 1-10 23% 11-100 44% 101-1000 65% 1000+ 84%

Slide 24

Slide 24 text

Documentation maturity model README Wiki /docs

Slide 25

Slide 25 text

How to get more contributors

Slide 26

Slide 26 text

Reduce friction

Slide 27

Slide 27 text

Friction (n) - the time it takes to go from "I want to contribute" to "I have"

Slide 28

Slide 28 text

Foster a welcoming community Artifacts • README • Contributing • License • Code of conduct Practices • Welcoming • Coaching • Thanking • Mentoring

Slide 29

Slide 29 text

Document process

Slide 30

Slide 30 text

CONTRIBUTING files attract contributions Pull requests Unique contributors Repeat contributors 1-10 2% 1% 1% 11-100 8% 16% 22% 101-1000 25% 42% 34% 1000+ 58% 6%* 1%* Percentage of repositories with a CONTRIBUTING file

Slide 31

Slide 31 text

Articulate your vision

Slide 32

Slide 32 text

Things to include in your README • What problems are we solving? • What's the technology stack? • What's the project's status? • How to use/contribute? • If you want contributions http://ben.balter.com/2017/04/14/your-projects-readme-is-your-project-constitution/

Slide 33

Slide 33 text

Percentage of repositories with a README Pull requests Unique contributors Repeat contributors 1-10 86% 69% 73% 11-100 92% 86% 84% 101-1000 97% 85% 81%* 1000+ 98% 99.75% 99.84%

Slide 34

Slide 34 text

License your project

Slide 35

Slide 35 text

chosealicense.com

Slide 36

Slide 36 text

Percentage of repositories with a LICENSE Pull requests Unique contributors Repeat contributors 1-10 28% 18% 24% 11-100 50% 64% 66% 101-1000 67% 75% 78% 1000+ 82% 97% 97%

Slide 37

Slide 37 text

Add a code of conduct

Slide 38

Slide 38 text

GitHub Community Guidelines

Slide 39

Slide 39 text

Why add a code of conduct? • Reasonable people disagree on the internet • Establishes expectations for community norms • Signals that your project is a welcoming community • Better to have before something happens, not after • It's the right thing to do

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

Percentage of repositories with a Code of Conduct Pull requests Unique contributors Repeat contributors 1-10 0% 0% 0% 11-100 1% 1% 1% 101-1000 2% 3% 3% 1000+ 8% 0%* 0%*

Slide 42

Slide 42 text

How to get more maintainers

Slide 43

Slide 43 text

Get repeat contributors

Slide 44

Slide 44 text

Repeat contributors are hard to find # of single contributors Code of Conduct CONTRIBUTING LICENSE README Homepage 1-10 0% 1% 16% 68% 11% 11-100 1% 19% 66% 86% 28% 101-1000 5% 51% 78% 92% 20% 1000+ 1% 3% 97% 99% 17%

Slide 45

Slide 45 text

Decentralize governance

Slide 46

Slide 46 text

Large projects are organization owned # of pull requests % of org-owned repositories 1-10 19% 11-100 50% 101-1000 75% 1000+ 94%

Slide 47

Slide 47 text

Take aways

Slide 48

Slide 48 text

Number of contributors Complexity

Slide 49

Slide 49 text

Adoption is low % of repositories >= 1 issue >= 1 PR >= 5 PRs >= 100 PRs >= 500 PRs Code of Conduct 0% 0% 1% 2% 5% CONTRIBUTING 0% 3% 7% 27% 50% LICENSE file 4% 31% 47% 68% 80% README file 10% 87% 90% 96% 98%

Slide 50

Slide 50 text

What's next?

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

Expanded community metrics • Issue and PR templates • Issues opened by non-collaborator • Contributions from non-collaborators

Slide 53

Slide 53 text

Product interventions

Slide 54

Slide 54 text

Hi there! It looks like you're trying to start an open source project.

Slide 55

Slide 55 text

Real-time community insights

Slide 56

Slide 56 text

It takes a digital village An analytical-ish look at what grows strong communities on GitHub.com @benbalter ben.balter.com [email protected]