$30 off During Our Annual Pro Sale. View Details »

It takes a digital village

It takes a digital village

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

Ben Balter

May 11, 2017
Tweet

More Decks by Ben Balter

Other Decks in Technology

Transcript

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

    View Slide

  2. The promise of open source
    Publish code People contribute

    View Slide

  3. Online communities are offline
    communities, just online

    View Slide

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

    View Slide

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

    View Slide

  6. Leaders
    elected officials, clergy, team captains

    View Slide

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

    View Slide

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

    View Slide

  9. Encouraging good 

    online citizenship

    View Slide

  10. The Community Profile API

    View Slide

  11. Community Profile API

    View Slide

  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"
    }
    ]

    View Slide

  13. GitHub as a dataset
    21M
    developers
    58M
    Projects

    View Slide

  14. Three quick qualifiers

    View Slide

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

    View Slide

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

    View Slide

  17. Correlation != causation

    View Slide

  18. Opensource.guide

    View Slide

  19. The contributor funnel
    @MikeMcQuaid

    View Slide

  20. How to get more users

    View Slide

  21. Solve a shared problem

    View Slide

  22. Market your project

    View Slide

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

    View Slide

  24. Documentation maturity model
    README
    Wiki
    /docs

    View Slide

  25. How to get more contributors

    View Slide

  26. Reduce friction

    View Slide

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

    View Slide

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

    View Slide

  29. Document process

    View Slide

  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

    View Slide

  31. Articulate your vision

    View Slide

  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/

    View Slide

  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%

    View Slide

  34. License your project

    View Slide

  35. chosealicense.com

    View Slide

  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%

    View Slide

  37. Add a code of conduct

    View Slide

  38. GitHub Community Guidelines

    View Slide

  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

    View Slide

  40. View Slide

  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%*

    View Slide

  42. How to get more maintainers

    View Slide

  43. Get repeat contributors

    View Slide

  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%

    View Slide

  45. Decentralize governance

    View Slide

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

    View Slide

  47. Take aways

    View Slide

  48. Number of contributors
    Complexity

    View Slide

  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%

    View Slide

  50. What's next?

    View Slide

  51. View Slide

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

    View Slide

  53. Product interventions

    View Slide

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

    View Slide

  55. Real-time community insights

    View Slide

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

    View Slide