Scalac/Dotty Issue-Fixing Donation Competition Proposal

Continuing gitter discussion

I was thinking how to motivate (and even grow) the community to help and resolve Scala issues.

The competition concept

What do you think about organizing a Scalac/Dotty issue-fixing competition? Give the community and interested companies a chance to place a monetary bounty on issues important to them, and have the community try and close them, if they wish to get the bounty. Since a lot of the community’s work is based-on volunteers, I suggest that there will be no direct money prizes, but a chance to choose which non-profit target will receive the bounty donation.

The Good

The work being put in is payed-in twice. Once, for the good of the Scala community, since annoying issues are being fixed. Second, for the good of the whole, since the bounty is given to a good cause.

Main points discussed

Publicity

We need people to compete for bounties, and people to place bounties. So we need the competition to be known among Scala contributors and users (companies as well). Additionally, among general programming communities (e.g. computer science faculties), which might take a try at Scala because of the competition.

Bounty Platform

I have no idea if such things were done in the past. I know of regular-prized competitions and sprees. But this is kind of a crowdfunded-donation-competition that is somehow connected to the Scala github issue database (even if a loose connection that just lets the user write an issue number when placing the bounty). I guess it needs its own dedicated platform. However, maybe Scala Center can contact a few of the major crowdfunding platforms to see if they can provide something appropriate.

Target non-profits

Since international money transactions may prove to be problematic, it is best to keep the Scala Center away from it. It is recommended to parter with donation organizations (like GiveWell). Such an organization can provide both a coverage-umbrella for the money transfers, and a publicity advantage, to encourage people to place bounties, knowing their money will be put to good use.
It is still important in my view that the bounty winner will have a range of charities to pick from, since this choice is the prize.

Legal issues

Like everything in life that involves money, a lawyer is required :frowning_face:


An Honor-Based System

If handling the money proves to be too complex, it is possible to set the competition rules to be honor-based. Meaning, the bounty-setter is “pledging” to donate if the issue is resolved. Once the issue is resolved, the fixer mentions his/her target charity for inspection by the bounty-setter. Worst case, the bounty-setter can ‘nag-on’ the deal, and a Scala issue is still resolved. Yeah, it will leave a taste of bitterness, but it’s an acceptable ‘risk’, as an alternative to dealing with money…

It is also possible that the bounty-setter can say “Donating XXX$ for YYY when issue ZZZ is resolved”, but I think it is less “fun” the competitors.


Discussion

There are other more small issues:

  • Having Scala-Center as a target non-profit. This was proposed during our gitter discussion. Personally, I’m against it if Scala Center organizes the competition. However, I am open donating to open-source non-profits and other ventures (e.g, Wikipedia).
  • Is there a time-limit? This bounty mechanism can theoretically remain active forever. I think that it is good to set a limit, since it will be more beneficial to all sides to reach completeness more quickly. However, if there is a limit and bounties are paid in advance, then there should be clear rules what happens to unclaimed bounties.
  • Wall-of-honor: Since the competition doesn’t provide tangible prizes, I think it will be nice to have a page on Scala Center with the letter of thanks from the charities that were given donations.

Please comment your thoughts on the matter. I must say that both as a scala user and recent contributer I would have loved to take part in both ends of the competition: to place small bounties on issues I care about, and try to take a crack at issues other people care about.

Cheers,
Oron

2 Likes

It might be a good way to get some extra publicity. I’m not sure whether it will really give a big extra incentive to possible contributors though. But maybe I’m just too cynical.

Honestly, I suspect that the money per se is a minor point. But by structuring things this way, it somewhat gamifies the process, and there’s a good deal of evidence that that does get some folks more engaged. I don’t know that it’ll cause a tidal wave of contributions, but it’s likely to help…

The gamification may give some real gains and I can easily see people trying to earn more points than their fellows. I just wonder if it will be easy enough to handle by scala community alone? The idea seems to be applicable to the whole OS community.

It is indeed applicable for the whole OS community. However, I think it won’t benefit the Scala community more if it becomes a general contest.

As stated previously in our Gitter discussion, I think this is an excellent idea.

I find this is the best way to motivate me to do challenging tasks on the compiler/ecosystem. Personally, if someone was to pay me money to get an issue done I would be picky about the issue and the contract details. But if someone promises to pledge a bounty on issues that when closed will go to my favorite non-profit(s), without the overhead of going through the legal details, I would find myself hacking on these issues much more often.

I think this is due to several factors:

  1. Getting someone to pay you to close a ticket is difficult and uncommon. In terms of probability, convincing a company to give away money to a non-profit is more likely than convincing it to hire a consultant/engineer for some hours.
  2. The fact of giving the money away gives a feeling of satisfaction for both the contributor and the company, plus the feeling of having an impact on the Scala community at the same time.
  3. Under the legislation of lots of countries, companies are incentivized to donate this money via a tax reduction on the amount of money donated.
  4. I, as a contributor, have the power to choose what I want and what I don’t want to do, and I can stop whenever I want because there is no legal contract saying otherwise. This protects me from burnout.

In my view, I think this formula could motivate others to learn the compiler and Scala library internals. This can also be applied not only for the core of the Scala language, but also the tooling living around it.

I do not wish the Scala Center is in control of this initiative, money wise. We can be involved organizing events, helping with the structure of the project, and encouraging others to participate. But I think we should not see any of this money.

I think that the best way to solve this issue is by having the company compromise on donating the money in a period of less than a year. We can explore doing this via a standard contract or by trusting its word. If the company does not abide by this rule, its name and other donations that has pledged to give will be removed from the issue tracker(s).

I like the idea of partnering with GiveWell and similar organizations, using their names officially and suggesting that effective non-profit are the most rewarded. In fact, to avoid political issues regarding where the money goes, I propose that at first we only allow donations to non-profit that have been supervised/analysed by GiveWell. If the project succeeds, we can explore enlarging the amount of non-profit contributors can “donate to”.

I would start with the less restrictions as possible first. If completion seems to be a problem, we can consider adding a timeline. But I think it won’t be necessary.

Totally agreed, and this would also be an incentive for companies to “donate” this money. We can put this wall of honor both in the Scala Center website and the Scala official website.

I think that this gamification, and other things I mention previously, are the reason why this project could be a success.

Agreed, let’s start small, and we move from there :smile:.

What we haven’t discussed is whether there would be a minor “donation” that can be pledged for an issue. In my opinion, there should be such a minimum. 50$ would be reasonable, if we consider the amount of time (both in the implementation and the review time) that contributors spend even to fix a typo or add docs, two of the simplest tasks available to them right now.

3 Likes