This can then get us more contributors, and also avoid us putting too much effort on one enthusiastic developer (but not team member). It would also help these developers sort of gain a stream of income, and be motivated to contribute to Dgraph on a continuous basis.
Would also help with increasing our contributor count, which has it’s benefits in adding to the authenticity of the project (along with Github stars).
The idea of using bounties to compensate contributors is intriguing. These are quite popular and very successfully used by Google, FB, MS and others especially when looking for vulnerabilities in product. Less familiar with bounties being used to develop features, functionality, or even fix bugs but I can see the appeal.
I think bounties would work better if we have a few from time to time rather than have more than a couple of them run simultaneously. So not everything we need from contributors may lend itself to be done via bounties. Which is why I’m less sure about bounties completely replacing the need for paid contributors.
Could we come up with some concrete examples of what might make sense for a bounty and estimate the bounty we should have? One area I feel we could try to get help via a bounty is adding more GraphQL feature support, which we’ve spread over several releases.
Bounties for security vulnerabilities are definitely quite publicized. Particularly, when people get thousands of dollars from Facebook if they find some really bad ones. But note that these big ones are not open source, so they are restricted to vulnerabilities only.
Bounties for features are common too. Check out the link I shared above, for Neovim. It’s in early dev stage, and they are using the money for feature development. Ubuntu and others are similar.
We already decided not to spend time on part time contributors due to the amount of training required, so no interns, etc. This would be a good middle ground where we can get external people to contribute, without spending too much time in training them.
We can start with our existing v0.4 help list and see how that goes, before we look for help in the most core part of Dgraph.
Btw, Jeff Atwood’s post on Bounties:
Update: Based on Jeff’s post, providing money for development can also attract wrong kind of people. They’re more willing to fight with you to accept their change because they only get money when they get accepted.
This is something I’ve also seen happening in Question Answering services like Mahalo. That’s why Quora stayed away from providing any monetary incentives to the best answers.
This is something we’ll have to figure out if we want to go down this path. One way to probably tackle this is to have only one person work on one task at a time, and only if they fail to achieve the results in a given time, does the task get reassigned. Also, we can ask the contributors to explain their general approach on discuss, before we okay them to do the task. But, once assigned, the contributor is sure to get the bounty and hence can put in more effort towards a successful completion of the task.
Update
Opening this up for Users category, to see if our users have any advice / suggestions in this regard.
Mutex-ing a bug/bounty adds a bit of order to the proceedings and leads to a very interesting CS problem . So we have 1 core, and we want to assign it the process which will release it at the earliest (defined as solving the bug). You want to come up with “nice” value for each of the bounty-hunters to resolve contention ?
Along with this,we can mention a general procedure to be followed. That is ,discuss the issue and come up with a preliminary design before the issue gets assigned to someone.
We should also have some way to make sure they are serious and finish the task that they have been assigned. Like a scoring system which assigns positive score if a task is completed successfully and negative score if they miss the milestone, just like we have trello scores and if the score goes below some negative value, they can’t take up any more tasks for sometime.
We can’t completely automate this assignment process just yet. So, we can start with talking to the contributors who are interested and manually assigning the issue to the right person; and over time figure out how to automate some of this stuff.
That’s the easiest for us to implement. We can also do bank transfer within the US. But, international transfers get complicated. What do you have in mind?
The problem with bitcoin is Indian regulations are not exactly known. I cannot use it directly everywhere in India. Converting it may be complicated. I am not sure. International transfers can be tricky. Maybe use paypal?