8

Code contributions are easy to account; one totals commits, reviews, and lines of code in whatever code management system the project uses.

However, non-code contributions, particularly in the areas of advocacy, event management, coordination, mentoring, and logistics don't necessarily leave a trail in a repository. For communities where voting in elections requires a certain threshold of contributions, counting these contributions is critical.

What methods have communities used to count non-code, non-repository contributions? Please give methods that you have insight into, and for which you can relate success or failure.

ADDITIONAL INFORMATION: Many projects, such as Kubernetes and PostgreSQL, have a numerical threshold for the number of code/doc contributions required in order to be considered a contributor, and thus have certain privileges (voting, attend summit, listed on home page). Neither of those example projects has any way to incorporate activity that doesn't generate git commits into that numerical threshold. I'm looking for a way to do so.

  • 3
    "communities where voting in elections requires a certain threshold of contributions" - What communities? What are the actual requirements imposed in your situation? Even for code, counting lines of code that a particular contributor has added is almost certainly not meaningful. – Brandin Oct 16 '18 at 11:48
  • Kubernetes, for example, requires a specifc threshold of "contributor activity" as measured by devstats in order to vote in the Steering Committee elecations. – Josh Berkus Oct 16 '18 at 14:15
  • 3
    This is a specific question about Kubernetes's process and is apparently already directly answered on github.com/kubernetes/steering/blob/master/elections.md "We explicitly believe the [contributions data] will be innacurate and not represent the entire community. Thus we provide [a voting exception form] for those who have contributed to the project but may not meet the above criteria." – Brandin Oct 16 '18 at 14:58
  • 6
    @Brandin I don't think this is Kubernetes specific. All open source projects necessary have an "inner circle" of privileged individuals who either direct or represent the project in some capacity, and many projects recognize a need to include non-technical contributors within that inner circle. This question asks what strategies exist to give non-technical contributors privileges to direct the project commensurate with their contributions. A good answer might include Kubernetes' strategy as one possible option (or as a subclass of some broader category). – apsillers Oct 16 '18 at 16:04
8

I'm not aware of any hard metrics that can be used to automatically count non-code contributions (and I'm not sure there could be one) but I do know about projects that (1) survey contribution types in volunteer collaborative communities centered around software development, with the specific goal of encouraging the recognition of non-code contributions, and (2) provide tools to help in the collection of information related to such contributions:

  • all-contributors is the main one that I'm aware of, and lists a couple dozen contributor types.
  • foss-heartbeat has similar goals, and identifies seven major contribution types (Issue reporter; Issue responder; Code contributor; Documentation contributor; Reviewer; Maintainer; Connector), but it seems to be unmaintained.
  • Maintainer Mountaineer’s name-your-contributors covers issue reporters, PR submitters, PR reviewers, and issue/PR commenters.

I'd also point out similar efforts in communities that whose primary collective activity is not software development:

  • The Wikimedia community has produced a Contribution Taxonomy Project and a survey of Wikimedia Volunteer Roles; more closely related to software development is MediaWiki's How to contribute page, which lists several ways people can get involved.

  • Stack Overflow Badges are another well-known example of a community platform feature aiming to explicitly recognize the various ways people can contribute to a shared project.

Hopefully the common patterns manifested in these dispersed initiatives can over time coalesce into a standard set of guidelines for open collaborative projects, or at least become sufficiently popular to have the same effect (who knows, maybe GitHub will add something along these lines to their community profile dashboard, as they have recently adopted the contributing.md and code_of_conduct.md "standards" that emerged organically through popular use).

But until then, the tools listed above can certainly inform any community's efforts to be more inclusive in their recognition of contributions to their shared projects.

  • Excellent synopsis - +1 from me! – MadHatter supports Monica Oct 24 '18 at 7:14
  • 2
    Thanks! I'm looking to find ways to count things that don't generate any github activity at all, but the AllContributors thing looks like it has some framework for that. – Josh Berkus Oct 24 '18 at 16:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.