Skip to content

Improving credit for community contributions #38349

Open
@richlander

Description

@richlander

Improving credit for community contributions

We're nearly five years into .NET Core as an open source project. As a .NET team member and Microsoft rep, I want to share a big thanks to everyone in the community that has taken the time and interest to participate in the project. I would like to start a conversation about community credit and attribution. Right now, we don’t have a consistent model in place that everyone can point to for giving credit for community contributions. That doesn't seem right, and I propose we fix it. What do you think?

The thesis of this document is that credit will be given more (both quantity and frequency) if everyone is empowered to give it, and that enabling more people to participate in credit giving will increase not diminish its meaningfulness.

What is credit?

Dictionary: Public acknowledgment or praise, typically that given or received when a person's responsibility for an action or idea becomes or is made apparent

Let's start with why credit is an important topic.

On the one hand, it's not necessary to give credit. Let's take one of the most well known contributors, Ben Adams. Anyone can query for Ben's commits. It's all open, right? And, if you look at some of his merged PRs, you'll see people saying thank you or approving Ben's work without any fanfare (an implicit validation of high-quality work). Sure, sure. I think we all know that this isn't credit, but basic personal interaction.

Side-bar: Are we doing a good enough job on personal interaction, or are .NET team members too terse and business-like? Do you see and recieve enough appreciation in PRs and issues in the dotnet org? Tell us.

Back to the main topic. Credit is something significantly beyond saying "thank you." Credit is given when a contribution is elevated so that everyone can see it. It's the higher level of visibility that's important. Here's an example from the .NET 5.0 Preview 2 post where one of Ben's contributions is given a high level of visibility. FYI: This example of credit is only given to community members.

Screen Shot 2020-06-06 at 9 54 59 PM

There are similar examples in the Preview 3, Preview 4 and Preview 5 posts. Visual Studio Code gives credit with their Thank You section in their release notes. The Xamarin team has a similar model in their release notes.

Other projects focus on contributors of the month, like Galaxy Project and Netdata. Note: These examples were found through searches. I have no idea what these projects do or what their history is.

Developing a better model for credit

People appreciate and are motivated by credit for their contributions, ideas, and hard work. We need to find more and better ways to give people the credit they deserve and need.

We can develop and adopt a better and multi-faceted model. Here are some thoughts on what that might look like:

  • Clearly defined and regularly applied.
  • Managed as a joint project between the .NET Team and the community.
  • Broad definition of contributions (PRs and issues, code and docs, blog posts and videos, ...)

In a lot of ways, credit is just another project, that requires up-front thought, broad agreement on the value, and features that need to be developed. While the goal of credit is admirable, we need to consider the regular care and feeding of a project focused on credit in order to satisfy the stated need. I propose we start with a good MVP (minimum viable product) in the dotnet/runtime repo, and watch how it is received. We can then extend or adjust (more repos, more ways of giving credit) from there.

The following is a proposal. It is a layered model that is intended to give 100% of contributors credit, enable both the community and Microsoft to play key roles, and start us down the path of more innovative models for credit giving.

  • Publish contributor lists for each release (for the whole product, not just the runtime repo)
    • We did this up until .NET Core 2.1. Producing this list was unintentionally dropped as a release activity.
    • Many projects product contributor lists in various forms. Mozilla's evergreen list of contributors is a good example.
    • Question: Do you like this format, or should we adopt a new one? Should it include GitHub avatars? Is it important to split contributors by repo? Should Microsoft and community contributions be mixed or separated (FYI: they have been mixed to date, and it is a technically simpler approach)? Should we look at an existing tool/model like All Contributors?
  • Create a community-maintained contribution epic linked to from the release epic.
    • The epic would be called "Community contributions".
    • The comunity would decide the bar for adding PRs/issues to its epic, and also the categorization within the epic.
    • GitHub permissions are a challenge, so the community would need to pick an editor and then have that person create and maintain the issue.
  • Consider creating monthly issues that give credit more frequently for contributions (this would be a closer analogue to the VS Code "thanks" approach, which is monthly)
    • These contributor lists need to be significantly curated or adopt some other unique approach in order to provide value beyond the release-specific contributor lists.
    • There are a many different (non-mututally-exclusive) approaches we could adopt/highlight: largest and most valuable contributions, first time contributors, multi-month contributors (>6 months, >12 months, ...), contribution with most reactions (example), most interesting closed-not-merged contribution (example), stale/closed community issue/PR that merits reconsideration ...
    • This idea would require an ongoing and significant time investment. It would need a lot of community engagement (if not managed exclusively by the community) to keep alive.
    • (re)Tweet these monthly issues from @dotnet twitter account when they are published.
  • Continue to use the same approach to offering credit in the Microsoft blog posts for previews and releases.
    • Link to the "community contributions" epic and to monthly contributions issues.
    • [For the .NET blog writer] Use those contribution issues for inspiration, to expand the offering of credit in the blog posts.
  • Consider an end-of-release blog post dedicated to community contributions
    • This post might be written by the same people managing the community-contribution issues described earlier.
  • Ensure that Microsoft PRs that borrow from the community give credit

Is this a good MVP? What else should we do or consider?

Diversity and inclusion (D&I)

The credit topic is focused on raising people and their contributions up. This is an objectively noble goal, however, it's only truly noble if we also use it as an opportunity for change. It is widely known that women, people of color, LBTGQ+ folks, people with disabilities (visible and invisible), and other groups, are under-represented in tech. We need to find ways to increase, motivate and celebrate contributions from people under-represented in tech. Equally important, we should also motivate and celebrate people who step up, as allies, to mentor underrepresented people to participate in tech. Please help us explore other ways to help connect people with barriers to contribution with help.

Is it necessary to bring D&I into a topic as simple and straightforward as credit? Yes. This is a perfect opportunity for raising people up that have well-established barriers to participation. Putting aside the moral reasons to do this, these are large groups of people that do not have the same ability to participate (as established groups that participate), and may be forward-looking sources of great contributors.

Next Steps

This .NET project started with Microsoft, but lives with the community. We need a set of community editors and curators to step forward to make much of this credit proposal real, and for the community to organize in some way to accept them as good stewards of community-generated credit giving.

A better credit system is an overdue addition for ensuring that everyone in the community feels that their participation is appreciated and acknowledged. I've offered some pretty obvious changes (like re-starting publishing contributor lists) and some more novel ones (like the "community contributions" epic ). We can simply start with those if you want. We would like to start a dialog. Please share your thoughts.

Metadata

Metadata

Labels

Priority:1Work that is critical for the release, but we could probably ship withoutUser StoryA single user-facing feature. Can be grouped under an epic.area-Meta

Type

No type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions