It takes a digital village

It takes a digital village

An analytical-ish look at what grows strong communities on GitHub.com

19d03ecc1ff5da1a5e63a3ddaa2d84c2?s=128

Ben Balter

May 11, 2017
Tweet

Transcript

  1. It takes a digital village An analytical-ish look at what

    grows strong communities on GitHub.com @benbalter ben.balter.com ben.balter@github.com
  2. The promise of open source Publish code People contribute

  3. Online communities are offline communities, just online

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

  5. Shared challenge a nice place to live, practicing religious beliefs,

    or an excuse to wear silly shoes
  6. Leaders elected officials, clergy, team captains

  7. Norms (and the means to enforce them) laws, religious teachings,

    league regulations
  8. Open source communities Challenge - Project goal Leaders - Maintainers

    Norms - Meta files
  9. Encouraging good 
 online citizenship

  10. The Community Profile API

  11. Community Profile API

  12. 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" } ]
  13. GitHub as a dataset 21M developers 58M Projects

  14. Three quick qualifiers

  15. Types of projects on GitHub 80% - Homework, published code,

    terrible ideas 20% - Open source projects
  16. Only looking at Public, non-fork, non-spammy repos

  17. Correlation != causation

  18. Opensource.guide

  19. The contributor funnel @MikeMcQuaid

  20. How to get more users

  21. Solve a shared problem

  22. Market your project

  23. Websites attract PRs # of Pull Requests % of repos

    with homepage 1-10 23% 11-100 44% 101-1000 65% 1000+ 84%
  24. Documentation maturity model README Wiki /docs

  25. How to get more contributors

  26. Reduce friction

  27. Friction (n) - the time it takes to go from

    "I want to contribute" to "I have"
  28. Foster a welcoming community Artifacts • README • Contributing •

    License • Code of conduct Practices • Welcoming • Coaching • Thanking • Mentoring
  29. Document process

  30. 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
  31. Articulate your vision

  32. 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/
  33. 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%
  34. License your project

  35. chosealicense.com

  36. 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%
  37. Add a code of conduct

  38. GitHub Community Guidelines

  39. 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
  40. None
  41. 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%*
  42. How to get more maintainers

  43. Get repeat contributors

  44. 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%
  45. Decentralize governance

  46. Large projects are organization owned # of pull requests %

    of org-owned repositories 1-10 19% 11-100 50% 101-1000 75% 1000+ 94%
  47. Take aways

  48. Number of contributors Complexity

  49. 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%
  50. What's next?

  51. None
  52. Expanded community metrics • Issue and PR templates • Issues

    opened by non-collaborator • Contributions from non-collaborators
  53. Product interventions

  54. Hi there! It looks like you're trying to start an

    open source project.
  55. Real-time community insights

  56. It takes a digital village An analytical-ish look at what

    grows strong communities on GitHub.com @benbalter ben.balter.com ben.balter@github.com