Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incentive system to increase community involvement and ultimately bring in more Reviewers and Approvers #12229

Closed
juliev0 opened this issue Nov 20, 2023 · 19 comments · Fixed by #12359
Labels
type/feature Feature request

Comments

@juliev0
Copy link
Contributor

juliev0 commented Nov 20, 2023

Summary

I see that there are a lot of PRs that need reviewing and too few people with too few hours to approve them. Given that this is a community effort and that there are a lot of companies that depend on the wellness of the project, I'd like to see a system in which everyone commits a little.

I am thinking of adding something to the github README.md and posting in slack which invites companies (or possibly individuals) to sign up to pledge a certain number of hours per week (average over time) to groom people into Approvers and for existing Approvers to commit a certain number of hours to approving. It can be a modest amount (say something like 2 hours per week averaged over time), perhaps determined by the company itself.

Even better, there can be an incentive system in which companies who do this get priority on having their PRs reviewed.

Edit: per recommendations from others, another option is for a company to sponsor individuals outside of the company.

Current membership roles here for reference: https://github.com/argoproj/argoproj/blob/main/community/membership.md


Right now I'm just trying to get a feel for how many individuals or companies would be interested in participating in something like this to see if there's any traction. If you think you or your company might be interested (non-binding of course), please add a comment to this issue. Thanks.



Message from the maintainers:

Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

@juliev0 juliev0 added the type/feature Feature request label Nov 20, 2023
@agilgur5
Copy link
Member

agilgur5 commented Nov 20, 2023

Given that this is a community effort and that there are a lot of companies that depend on the wellness of the project, I'd like to see a system in which everyone commits a little.

💯 the number of companies using the project is roughly an order of magnitude or two larger than the number of contributors. And that's without taking company size or company affiliation into the mix, just flat numbers.

(Note that there are probably more users than listed in USERS.md and there are more contributors than in OWNERS, but the number of currently active contributors is roughly equal to the amount in OWNERS)

(and perhaps independent individuals)

Definitely a bit hesitant on this since the hours/week can fluctuate quite a bit without a company pledging to pay for a certain number of hours 😅

to sign up to pledge a certain number of hours per week

or a monetary commitment, alternatively, which can help pay for existing contributors to commit more time to the project. we probably need more of the former, but having more of the latter certainly helps too.

Even better, there can be an incentive system in which companies who do this get priority on having their PRs reviewed.

this effectively happens already, by virtue of Members being able to add reviewers on GH (and DM each other on Slack etc), as well as more implicitly due to higher levels of trust, meetings/topics, etc

@juliev0
Copy link
Contributor Author

juliev0 commented Nov 20, 2023

Definitely a bit hesitant on this since the hours/week can fluctuate quite a bit without a company pledging to pay for a certain number of hours 😅

Yeah, definitely don't need to include this - I was trying to allow for the possibility that somebody might want this if it meant their own PRs would get reviewed sooner.

or a monetary commitment, alternatively, which can help pay for existing contributors to commit more time to the project. we probably need more of the former, but having more of the latter certainly helps too.

That's interesting. I guess it will depend on if there are any such individuals with available hours to do so. We could list it as an option but with the caveat that there may not be individuals available?

this effectively happens already, by virtue of Members being able to add reviewers on GH (and DM each other on Slack etc), as well as more implicitly due to higher levels of trust, meetings/topics, etc

I see. But I think it will be better if it's more of an explicit thing.

@juliev0
Copy link
Contributor Author

juliev0 commented Nov 20, 2023

I will acknowledge that especially if companies put people into this role who have no experience contributing to the repo already or are still fairly beginner, then it does mean more PRs being contributed as they grow into the role. So, this could overwhelm things more initially. But I'm hoping that long term it proves out.

Also, it will need to be explicit that if you've for example gotten to the Reviewer role, then you should be putting more time into reviewing others' PRs.

@juliev0
Copy link
Contributor Author

juliev0 commented Nov 21, 2023

Edited to specify that it could be companies or individuals (TBD)

@terrytangyuan
Copy link
Member

terrytangyuan commented Nov 23, 2023

Some ideas:

  1. Encourage contributors to open a GitHub Sponsors profile (my sponsorship profile here as an example). If other contributors are interested, they can open their own profile too so that other companies/people can sponsor. This at least motivated me to continue contributing to non-work-related projects during my free time for the past few years.
  2. Small recognition programs like the Peer Appreciation Program for Argo from Akuity - The community can nominate individuals who they see as going above and beyond when it comes to contributing to and/or promoting the Argo Project.
  3. We could also do something similar to Feature bounties at Argo CD to offer monetary rewards for significant features to be added to Argo CD. Contributors are more likely to become reviewers/approvers with decent-sized contributions.

@juliev0 juliev0 changed the title Incentive system to increase number of active approvers Incentive system to increase community involvement and ultimately bring in more Reviewers and Approvers Nov 23, 2023
@sarabala1979
Copy link
Member

sarabala1979 commented Nov 28, 2023

I like the @terrytangyuan Sponsors profile. if any company wants to get their feature/bug/PR done quickly/prioritize, they can sponsor Argo workflow contributor/reviewer. This will motivate the Contributor/reviewer to commit some hours to get their job done.

We can add those profiles on (issue/PR) templates.

@GeunSam2
Copy link
Contributor

GeunSam2 commented Nov 28, 2023

It is a very interesting issue.

As someone who is interested in the argo project but does not contribute frequently, I think the contributor's mindset can change if financial compensation is followed in any form (even if the amount is trivial).

As a similar example, writing good articles on tech blogs and earning advertising revenue also help keep my blog running for the long term.

and haveing approve permission, there will also be a positive effect of having a sense of ownership and use more time for this project.

It would be helpful if the criteria and maintenance conditions for being a member of the approve authority became clearer.

@shuangkun
Copy link
Member

I am glad to participate in this system.

@juliev0
Copy link
Contributor Author

juliev0 commented Dec 5, 2023

It is a very interesting issue.

As someone who is interested in the argo project but does not contribute frequently, I think the contributor's mindset can change if financial compensation is followed in any form (even if the amount is trivial).

As a similar example, writing good articles on tech blogs and earning advertising revenue also help keep my blog running for the long term.

and haveing approve permission, there will also be a positive effect of having a sense of ownership and use more time for this project.

It would be helpful if the criteria and maintenance conditions for being a member of the approve authority became clearer.

Thanks for your input, @GeunSam2. As far as the criteria for becoming/being a reviewer/approver, I forgot to post this link earlier. Are you aware of it? (I will add it above.) But yeah, beyond that, there would need to be new criteria as part of this system, I suppose. And that is somewhat TBD. My thought is that once in an approver role, there should be 1-2 hours devoted per week maybe to reviews. However, 1-2 hours may not be enough time to get up to speed prior to becoming an approver, so there may need to be a little more time devoted during that time.

@juliev0
Copy link
Contributor Author

juliev0 commented Dec 6, 2023

As far as how to best implement this, there are some questions that arise:

  1. The simplest approach is for this to be on the level of a github ID rather than worrying about the company aspect itself - if you commit to working your way to approver and then doing some small amount of approvals once there, then you receive priority on your own PRs being reviewed. Alternative option is something more complicated where the team commits to getting somebody into the role, and everyone on that team receives priority.
  2. What should the terms be?
    I'm thinking that somebody of "member" level should be expected to write PRs but not necessarily review them, and somebody of "reviewer" level or "approver" level should be expected to do something like 2 hours a week on average of reviews, with the allowance of variation per-week. My thought is that this could be "on your honor" with the notion that it can be easily verified that somebody isn't doing it. As far as "members", is 2 hours a week enough for them to make progress as they learn the codebase, or should it be more?

Definitely open to feedback for these questions!

@juliev0
Copy link
Contributor Author

juliev0 commented Dec 12, 2023

As far as "members", is 2 hours a week enough for them to make progress as they learn the codebase, or should it be more?

I'm thinking something like 8 hours average per week. Please let me know if anyone thinks that's not the right amount.

@juliev0
Copy link
Contributor Author

juliev0 commented Dec 13, 2023

Just spoke to the leads, and it sounds like we will imitate what ArgoCD has done in that we'll create new "Scoped Reviewer" and "Scoped Approver" roles. These roles will allow someone to be scoped for example to the UI (or maybe to just the back end), to enable people to focus on just one area if they want to.

@juliev0
Copy link
Contributor Author

juliev0 commented Dec 13, 2023

Please see Draft PR above for proposed terms. I will keep it in Draft for awhile so everyone gets a chance to look at it and provide feedback. Thank you!

@agilgur5
Copy link
Member

2. Small recognition programs like the Peer Appreciation Program for Argo from Akuity -

Didn't know Akuity had that! Big fan of peer bonuses (though I may be a bit biased as I have received thousands internally at work 😅)

3. We could also do something similar to Feature bounties at Argo CD

We discussed these in SIG Security back in October and the money we have available is open to all Argo projects.

I like the @terrytangyuan Sponsors profile. if any company wants to get their feature/bug/PR done quickly/prioritize, they can sponsor Argo workflow contributor/reviewer. This will motivate the Contributor/reviewer to commit some hours to get their job done.

We did have a small discussion on GH Sponsors on Slack. Most GH sponsors are actually individuals, not companies, unfortunately, so that is inherently limiting. Corporations also tend to prefer sponsoring a fiscal host instead of individuals. I.e. sponsoring the CNCF as a whole or earmarking for a specific project

We can add those profiles on (issue/PR) templates.

I mentioned in that thread that GH has a specific mechanism for this, FUNDING.yml, but for a project with governance etc funding through CNCF would make more sense IMO.
I actually don't know what the CNCF process is for receiving donations for a project is

@shabeebk
Copy link
Contributor

I have not been contributing a lot to the open source, but I have gradually started and like to continue. I landed in this thread when I created a PR in Argo Workflow and it is nice to see such effort taken. IMHO, members should have more than 2 hrs (4-8 hours per week) of commitment to get up to the speed of development and to get an enriched understanding of the codebase. That being said, I am eager to see what is going to happen and how well I can be a part of this effort.

@terrytangyuan terrytangyuan unpinned this issue Jan 4, 2024
@juliev0
Copy link
Contributor Author

juliev0 commented Jan 9, 2024

To anyone watching this Issue, the "Sustainability Effort" has now started. Would love to get more people involved. If you're interested, just submit a PR adding yourself to the list at the bottom in the table. The current commitment for people who are members, or who have open membership requests in the argoproj repo is: average of 6 hours per week time spent either working on Issues, or helping out in other ways listed here (and feel free to have weeks of no activity, since it's an average over time). Hours are "on your honor", although for anyone interested in centrally tracking hours, I have a spreadsheet for that (optional to use).

@shabeebk
Copy link
Contributor

shabeebk commented Jan 9, 2024

@juliev0 I have been following this thread. I was wondering what would be the best thing to start as a new contributor and also have commitment.

@juliev0
Copy link
Contributor Author

juliev0 commented Jan 9, 2024

@juliev0 I have been following this thread. I was wondering what would be the best thing to start as a new contributor and also have commitment.

Hey @shabeebk. I'm glad to hear that! So, we ended up making this something for people who are either Members or otherwise have Membership requests open. Unfortunately, I would think it probably be too early to open a membership request at this point. But if you do want to start contributing and opening PRs, that would be great. Have you seen the guidance for new contributors?

@shabeebk
Copy link
Contributor

Hey @shabeebk. I'm glad to hear that! So, we ended up making this something for people who are either Members or otherwise have Membership requests open. Unfortunately, I would think it probably be too early to open a membership request at this point. But if you do want to start contributing and opening PRs, that would be great. Have you seen the guidance for new contributors?

Thanks @juliev0 for the response. I have read the guidance. Will continue contributing and attending the community meetings for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/feature Feature request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants