We, in a way, have financial upside to people completing (some) of the issues we've posted, so sometimes it feels like it would be mutually beneficial to pass some of that through to the contributors as people contribute.
I'm wondering... if we added a "bounty/reward" in the issue text that said we'd pay $X amount for someone to resolve the issue, would that make people more or less likely to contribute?
On one hand it seems to go against the historic "vibe" of open-source, but on the other commercial open-source seems much more acceptable these days and would maybe be a nice bonus for the. contributor.
Any thoughts, experience, or ideas here? Anyone have experience really incentivizing people to contribute to open source?
The only way I've seen this work is with a pool of users contributing money and then an "internal" developer -- someone well-established in the project who is trusted to write good code -- stepping up and saying "ok, for that much money I can turn away other gigs to work on this". The catch is that you need to decide which developers are trusted to do the work, and you can run into political difficulties.
Reading the valid criticism here of such a scheme, why not just approach some contributors, ask them if they would like to contribute more, and offer them short term contracts / rewards for their work?
"We've seen your activity on our issue tracker and we would like to hire you (short term for now) to help us out (home office work). Are you interested, and if so, considering other obligations you might have, how many hours a week would you be able to contribute to the project so we can ballpark a first payment?"
Alternatively you could simply pay for contributions already made to the project. Cherry-picking the contributors you want to see more of seems to be a good system? Even considering the effort this would cause, I do think your idea would be even more cumbersome, as you would have to set up a system to evaluate every single contribution.
I know of a nice open source project, where the lead programmer used part of the project's funding (plus even some of his own assets as far as I know) and more or less out-sourced a lot of work partly to one of the project's most loyal contributors, who he's been working with. Said individual is somewhere from Eastern Europe, where even a "relatively small" amount of money comes a long way. Everyone involved (project lead, the person hired, the community) benefited greatly.
There's a lot of back and forth on the code reviews and no guarantee your code will be merged (and thus paid). You could address all code review comments and even then your PR may get ignored once it's all ready to merge.
From the maintainer side, PRs still take a lot of work to review and merge in. So you need to factor in the overhead of doing the code review and communications back and forth, and trying to parse someone else's code.
I think OSS is best built the way it's always been built, by passion or necessity from contributors. I think for more substantial projects, money for output works, but then it's better off going into a contract/agreement rather than having a bunch of contributors independently throwing in their shot.
On the flip side, I think the bigger problem is getting open source maintainers paid too, rather than fly-by contributors.
I also remember another company in my batch that did the same thing as well. I think they pivoted? You could talk to them (W18).
[1] There are exceptions especially if one is a student / just getting started. But once you have some experience, bug bounties tend to look like underpaid homework problems.
edit: Also the assumption that the 'vibe' of open source is free work-for-hire is a gross misinterpretation.
1) We don't live in a gift-based economy. Companies approve budgets for software purchase every day but cannot easily justify donations for many reasons.
2) Individuals have to choose between donating to a software project, or to famous charities fighting poverty and diseases, or save money in case of any future rainy day. Difficult to justify donating to FOSS: you cannot even ask your money back in case of a health emergency.
3) Developers want long term employment/contracting based on trust. Being offered occasional work on bounties can feel dehumanizing and unprofessional.
4) Most bounties are very small and tend to attract only very unskilled developers.
If you pay $X for someone to "resolve" the issue, when they submit a patch that doesn't work, or doesn't follow the style guide, or doesn't fit the software architecture, or is otherwise unsatisfactory, how much time are you going to spend fixing/massaging/arguing? Will it be worth it to answer the jilted contributor who keeps sending "I want my $50!!!!" emails?
Nadia also has a quick 10-minute presentation on some ways you can use money to help open source, but without actually paying for bug fixes. [2]
[0] https://smile.amazon.com/dp/0578675862 [1] https://blog.domenic.me/hacktoberfest/ [2] https://www.youtube.com/watch?v=bjAinwgvQqc
Here's an example of a feature I'd want to financially contribute to that has a lot of support: https://github.com/RocketChat/Rocket.Chat/issues/2049
From my perspective it is the killer feature that enables me to switch from slack, saving my business hundreds of dollars a month. I can't just "hire a developer to do it" - the best deal would be if one of the existing contributors did it.
Also, some open sources struggle with funding and priorities - I'm sure there's features out there where the community would commit tens of thousands of dollars (Kickstarter style)
Other than highly mechanical tasks, the time investment to resolve an issue is unpredictable. It's highly unlikely someone only interested in monetary compensation would just randomly pick up an issue in a random repo and work on it. There's a reason why most contractors bill by the hour rather than by number of JIRA tickets closed.
Even if there are people interested in the bounty, it'll eventually turn into the 99designs of coding: dozens of people competing to be the first to resolve an issue and that usually results in a drop in quality for speed (see Goodharts law)
You could also try out some kind of bidding process for issues with issue auctions having different minimum reputation levels that developers need to be above in order to submit a bid. Newer developers could bid on the easier/simple tasks that pay less, but for more advanced features or features that have a tight time frame could require higher reputations and pay accordingly. At this point though, it starts to look a lot like a separate start up that uses contracting work, but maybe the social aspect of reputations could get more better work done for a cheaper cost.
A few things stand out in your request for me (imho) -
1. Open sourcing software in order to get free contributions is .. not a fair exchange. In most circumstances, your software is likely only useful to your company, or one that builds something off your tool for a competing product ... or attract uncouth elements like what happened with DigitalOcean's OSS contrib promotion earlier.
2. Open sourcing components that facilitate _interop_ with other systems seems worth it and would help your ecosystem grow while also serving your users. Do you have pieces you can cordon off like that?
3. You're already making a contribution to society by building your product. So don't beat yourself up about not "contributing to open source".
4. If you're prepared to pay your contributors, might as well spend that budget hiring staff to work on your product? It would save a lot of effort in figuring out who to compensate, besides you'll need a few folks in your company paying attention to what's happening with your repos instead of working on your product .. thus potentially reducing velocity.
And if you're going to pre-qualify people for a particular issue, you've basically just gone down the "hire a contractor" path, so you might as well just hire a contractor.
I can't see any reasonable way to make this work.
The main motivation for contributing to open source is altruism and/or the desire to contribute to something meaningful and/or have something for your resume.
By paying people, you make it about the money, and likely the money is far below what someone with the skills to really contribute could make. That gets them thinking not about the money and not about how fun it would be to contribute.
I guess in hindsight one could say that bounties are too messy while a subscription-based approach is much clearer (less managing overhead etc.).
Quoting from https://wiki.snowdrift.coop/market-research/history/software
"Many bounty sites have been tried over many years. Some sites that have come and gone: The Free Software Bazaar, CoSource, Fundry, Public Software Fund, BountyOSS, BitKick, COFundOS (which alled users to place bounties for new applications as well as for changes to existing programs), Opensourcexperts.com, Donorge, Bountycounty, Bounty Hacker, microPledge, FundHub (some unrelated site uses that name now, not surprisingly), GitBo, Catincan, DemandRush, and Open Funding (broken though the main domain openinitiative.com still exists) — and probably others we never discovered. GNOME and Launchpad each made attempts at supporting bounties but that never came to anything substantial. FOSS Factory (which is still live but has had no activity for years) bothered writing their own essay on the history of other failed bounty sites."
You might also want to check out https://wiki.snowdrift.coop/market-research/other-crowdfundi...
One thing I think is often overlooked is the value of writing a good description. I genuinely believe an issue in the form of a user story can require as much work defining the task as it does implementing it. Some contributions question, clarify, articulate, or integrate an issue so that the implementation becomes straightforward. If you can find a way to pay for that, then I think everything else becomes easy.
Another thing is that sometimes the best solution takes some exploration to find, but if you only pay for the final solution then the cost of finding it is not aligned with the price and the system cannot stabilize. I think this is similar to the problem that Science is facing where funding sources prioritize positive, novel results over the bare truth. I think if you find a way to reward experimentation even if it fails you will have solved a big problem. I think the key might be to realize (in both senses) the value in a failed experiment.
There was a study about a neighborhood daycare center that was trying to avoid parents being late to pick up their kids. The daycare instituted a penalty fee if a parent is late to the pick-up. From an economic perspective, this is a larger cost, and should result in one-time pick-ups. Instead, people were consistently later in picking up their kids. Before money was added to the equation, it was "Person X, who I know and enjoy talking with, is troubled when I am late. To avoid hurting their feelings, I should be on time." After, the situation changed to "Being 30 minutes late is a $10 fee. I still need to get groceries today, and that is worth $10." By thinking of it in monetary terms, people stopped considering each other as much as people. Even when the fee was removed, the damage had already been done, and the late pick-ups continued.
My guess is that you might get a few more contributors here and there, but it would turn off more than would start.
For me personally, I've spent time fixing bugs in open-source javascript libraries that I happened to notice while browsing. It would have felt a bit off had there been a monetary reward, because that wasn't why I made the bugfix. Or one time I made a character builder for an out-of-print RPG system, and was beaming for weeks at being mentioned in that company's weekly newsletter. Had they tossed me $50 for it, objectively I would have been better off, but rather put out. $50 would have shifted it from a social exchange into a working exchange, and not one that valued the months of evenings/weekends that were spent in development.
That said, a lot of it depends on the amount. Other posters have recommended reaching out to offer part-time jobs to contributors. This sounds like a reasonable route, so long as it is at a reasonable hourly rate for the full time contributors put in, not just the difference from before. Remember, by making the offer you are taking away the entire social exchange, and need to make a good enough offer to counteract that effect.
The main barrier I experience when contributing to open source projects is being ignored by the clique. If you're short on the time, energy, or disposition for joining the in-group, then set expectations low: feature PRs, and sometimes even simple bug-fixes, may go ignored for long periods, and receive only cursory attention.
(There are exceptions to this. I'll call out three projects I remember for very positive interactions despite being a drive-through contributor: Dovecot IMAP, and Ruby on Rails, and, showing my age now, wu-ftpd).
From my own experience, solutions to the social dynamics move the needle more than financial incentives. By which token I reckon the most effective agent of the last three decades was Github, but there is plenty more to do.
1) it would need to be the kind of issue where it's pretty clear whether they did an acceptable job or not; some kinds of rearchitecting would just not be objective enough
2) you cannot assume that it will work; it should be a "nice to have" kind of issue, not a "we need this for the roadmap why hasn't someone done it yet" kind of issue
3) there is a lot of discussion among psychologists about the consequences of putting money on something, you might want to read this and ponder it: https://priceonomics.com/effectiveness-of-fines-for-late-pic...
Having said all that, I don't think anything horrible would happen if you just tried it out to see if it worked.
Certainly this system could be gamed or become more hassle than it’s worth. We’ve only seen that in narrow cases (e.g. during hacktoberfest). On the whole it’s been great and it feels good to do it.
I encourage you to try it and see how it goes.
More here: https://lbry.com/faq/appreciation
Many other people have been similarly incentivized and compensated on the same project to the point where probably 2/3 of the development comes from the company that started it and the other 1/3 is bounties.
That is the problem right there. As Alan Watts used to say "It is double bind". Kind of saying "you MUST love me spontaneously"
open-source or closed-source 1)volunteers will do volunteers using their own "free will"- You don't have to do anything 2) If you want "influence" 1 then it is not 1 so hire professional and pay money to do work.
What about employees in their off-time? Can they collect a bounty on issue completed outside of normal work hours?
You are going to be trading your time, creating bounties that are objective, testable and fair.
This model is just too interesting for it to never get figured out. I am sure at least one successful case will happen (if it hasn't already) in the next ten years.
Programming is one of the few things I love in this world, and these groups made me start hating it.
I hope you can keep your feedback and leadership positive, I think it's too late for some areas I've worked in.
Also, consult a lawyer on legal issues with compensation and volunteers.
Just the first hit searching now: https://firstmonday.org/ojs/index.php/fm/article/view/1488
In that case, I would also want to have a clear understanding of under what conditions my pull request will be accepted, and when.
The real problem is that a bunch of people pledging $5 or $10 or even $100 just isn't going to add up to enough.
People even posted YouTube tutorial videos on how to submit a pull requests using github just to get a t-shirt.
If you inventive solving issues expect to get a lot of nonsense issues posted, and 30 seconds later "someone else" solving it.
There is no way to compensate based on code amount or code commits or anything.
Feel free to change my view! But basically you just need to sign on everyone and pay them based on time with bonuses based on milestones. Or just hire people the normal and time consuming way.
Plug-in architectures can also help so people can contribute to an ecosystem with their own open source free/pro edition work like is done with Wordpress.
Writing the code is not the hard part. Verifying its good quality is. Bounties encourage people to do the absolute minimum which works poorly.
Compare that to security bug bounties. Its much more binary - you either hacked us or you didn't. Even then, 90% of submissions are crap and sorting through bad submissions is a significant effort
Well, if you want to waste your time, and money...
Monetizing open source is very, very difficult. It can of course be done (I've made a few, a very few, quid out of it) , but it is statistically unlikely that you will do it.
I loved finding feature requests for rocket chat on bounty source years ago - this gave use lowly users the ability to crowdsource how ideas should be implemented and crowdfund them. I found many other people who really wanted to add the option for 'login without email addy or registration' and to hook that login into permissions options already established.
Together we put in over $600 I think, which I believed would be a pretty simply code chunk to add. That amount got the attention of a coder who knew the rocket chat system and decided he could get it done in a short enough time to make it good money per hour for him and he put it together and it went to code review and they added it!
I started to imagine how powerful this could be for wordpress and similar - but some story broke about bounty-source that made it fade - like said elsewhere in thread https://news.ycombinator.com/user?id=neolog , don't recall what it was at this moment either.
With wordpress you can kind of do this - but it's less crowdsourcing and more try your luck with codeable or freelancer or whatever - and you won't get a code review from the core WP team, and it likely won't become part of 'core' so you'll have to maintain updates, breaking code and security and crap all on your own - but it's kind of an option nonetheless.
I have really wanted to do this with matrix/synapse / fluffy/element - as there are important mods I think should be implemented immediately - and they already have a roadmap with priorities and those are gonna take a while.
So I think for popular projects with lots of users it can be a boon for features being developed and it could work out good for everyone. Your project may not have enough people with eyes on for the same kind of thing. Maybe hiring a contractor that gets subcontractors to take care of the small things for you would be better at this time?
I'd love to see a bountysource reborn with variable options, and glad to see others mention similar portals that I am eager to take a look at.
If I had a big project going, I'd like to be able to make an 'official page' on a portal like so that could setup revenue splits as well - as I can imagine it would be easy to get overwhelmed with new code chunks being sent and it would take time and money to review security and how things in this new chunk could affect other things and all that.
I'd also put up a page where people could vote a thumbs up, as well as the vote with held in escrow dollars that I enjoyed with b-source time ago..
I'd consider giving users who bought a premium copy or pay for premium cloud or whatever to get 20 'super likes' per renewal so they could collectively vote up feature requests.. often I/we/I notice others, are quite surprised at what they users want most while we work on features we think are most important.
last note - with you coming out with a premium version in the future - as a 'bounty coder' or funder - I might feel slighted paying or coding for open source with the premium version coming at a later time - I think it's important to note that boldly so no one is surprised by it - and offer a guarantee that code will still be available - like wordpress does. I'd hate to spend time or money on something that was set to take advantage of that and then wall off and drop everyone ala fbook and google with xmpp kind of situation.