It happens all the time, a maintainer quits/abandons some opensource project due to economic realities. There are comics, jokes, threads, and so on about what the realities of maintaining opensource software are and that most people are not willing to donate or contribute in any way besides opening issues.
There is a lot of resistance to stuff like the business source license, but people do have to earn a living somehow. Doing so with opensource would be amazing. In lieu of the contested licence, could a template similar to Reminna’s actually work? Basically “pay to get this fixed/implemented, make a PR, or it’s low priority/ ‘I will get to it when I get to it’”.
Relevant part of template
### Contributions
In return, or to fix this issue, I'd be willing to:
- [ ] Fix this myself.
- [ ] [Donate](https://remmina.org/donations/) ___ and/or have donated ___ towards fixing it.
- [ ] Take a donation of ___ to fix it.
- [ ] Update the [documentation](https://remmina.gitlab.io/remminadoc.gitlab.io/md__c_o_n_t_r_i_b_u_t_i_n_g.html).
- [ ] Update the [wiki](https://gitlab.com/Remmina/Remmina/-/wikis/home).
- [ ] Translate Remmina in my native language(s) (___) on [Hosted Weblate](https://hosted.weblate.org/projects/remmina/remmina/).
My favorite way to monetize open source projects that ive seen is to charge for direct download and allow people to build from source
That seems like a great way to:
- alienate your entire community
- have a fork appear that just provides various packaged direct downloads for free anyway, completely invalidating your entire monetization strategy.
It’s sometimes called a feature bounty.
The only issue is it incentivises focusing on new features, leaving old stuff unmaintained. If you’re asking for money to fix bugs, that incentivises writing code with bugs, as if you write perfect code first time nobody will pay you to fix it.
If you’re asking for money to fix bugs, that incentivises writing code with bugs, as if you write perfect code first time nobody will pay you to fix it
There’s certainly potential for that to be a problem. But it’s not necessarily insurmountable. For starters, I think the idea is you’re not paying to have your thing fixed, you’re paying to have your thing prioritised. The same amount of work is getting done either way, but bugs reported by people who paid will be prioritised over bugs reported by people who don’t pay. If there are no bugs reported by paid users, then unpaid bugs will still be worked on.
I think “feature bounty” is a misnomer as it’s not limited to features.
Since it’s opensource, I don’t think it incentivises writing bugs as anybody else could theoretically fork the project and fix your bugs to get the people sick of your bugs onto their fork. And if your project is known for having bugs, it would reduce the number of users willing to use it.
I worry that approach would increase feelings of entitlement from people who don’t understand the process and effort involved with development.
It systemizes the notion of “I paid you to do X, where is it?”, a perspective which some annoying people already have even without giving anyone money.
Additionally, how do you determine how much payment a feature is worth?
What if the community is split about the direction of a project, and there happens to be two “pay for high priority” demands that conflict with each other? Who gets their feature that they paid for?
I also think that the people actually working on a project should be the ones setting the direction and priorities for it, not whoever has a big enough purse. We don’t need to replicate corporate models that deny developer autonomy.
The final decision stays with the maintainer. Always. Higher priority doesn’t mean certainty of implementation. The dev/maintainer can always do the things they like. It’s their project and if somebody doesn’t like it, they can fork off.
Additionally, how do you determine how much payment a feature is worth?
That’s up to the dev. They can say “my hours are worth this much, I estimate it’ll take X hours”. It will also give people an idea of just how much they are getting for free (the ones who don’t pay). The dev can also have a simple scale of small, medium, large, enormous and assign a value to each.
It systemizes the notion of “I paid you to do X, where is it?”
That really depends on how payment is organised and what the terms / conditions are. It could be paid after the fact, it could be paid in increments, it could be held in escrow by a third party, and so on.
I develop the bot for !news_summary@hilariouschaos.com as a foss project. I get multiple people per week pointing out bugs (most people are nice about it and its genuinely helpful to know what’s going wrong) but some people are absolute dicks about it. I simply tell people I’d be greatful if they made a pull but otherwise I’ll get to it when I feel like it.
You should add a disclaimer that bug priority will be assigned based on to the politeness of the reporter.
Do you think “pay or low prio” could help with that? Or do the dicks shut up when you tell em like it is?
When I tell em exactly why the bug exists and that they are welcome to make a pull all I get are crickets. I’m sure I would be more incentiveised to fix it if I was being paid tho.
I feel like pushing a culture of paying when you can to support devs of your favorite projects is simpler and more effective in the longterm.
Has that been working so far? Do you think most opensource projects are funded adequately?
P.S you forgot a word. “When you can … to support devs”
I don’t think most of the software industry is functional at this point for the workers actually in the industry so that feels like a loaded question.
Nothing is working to the degree it needs to, but there are TONS of decade heck even two decade old still in development open soure games and projects… and yes I find those projects far more sustainable along almost every metric than huge AAA gaming or software companies run by people who pay their employees shit and treat them as utterly disposable once their passion has been strip mined out leaving only burnout.
Compare the shitshow that is ESRI / Arcgis to QGIS that destroys ESRI products in effectiveness and clarity as a tool for most common GIS functions as only one example.
All that being said I am not happy with the state of things, everything will be better if we more thoroughly and directly support the actual developers doing the work with money, I am still arguing for that.
The moment that money can be used to cut the line, we’ll see the same effect as we do in every other part of society. Those with money to burn will spend and shape whatever projects interest them. Or, more importantly, startups with funding could use the bounty system to submit priority features and send competing open-source software down rabbit holes. It would be a very poor idea.
Why do you assume the developer / maintainer won’t have any agency anymore?
It’s not about “agency”, exactly. It’s the fact that once you offer labor for money, it’s only logical to offer labor in the way that brings in the most money. That allows bad actors to influence what labor is performed by way of payment. It could lead to dependence on those bad actors and projects getting torpedoed that could be beneficial to the masses.
This seems too black and white a prognosis. I think it’s not a popular method of funding development because the sponsorship/patronage method seems like it already does a better job of providing stability without making a transactional relationship.
Only if it’s for Client specific Extensions not the core project. Basically freelance work. Paid bug fixes and feature requests to core are a big no-go.
Why? Isn’t the core the most important part? And why is free work (core) better than freelance work? I’m not sure I get where you’re coming from.
Then corporations will decide even more where open source projects are going. If you pay me you decide where the project is going, not me.
However, if core development is unrelated to my income, I have full control over it’s fate and don’t need to implement what’s in the interest of some shitty corporation.
Why do you assume the developer has to implement what could be paid for? (Payments need not happen beforehand as they could be held in escrow, paid after the fact, or in instalments e.g after milestones) Why is the assumption that devs will give up agency? And why the assumption that all paid requests will be by corporations?
Why do you assume the developer has to implement what could be paid for?
If 80% of your income comes from a single company that pays you to develop the features they want, can you afford to decline specific requests without risking that client? Probably not. Without income diversification, you can quickly end up in a situation where your client dictates your work.
Why is the assumption that devs will give up agency?
Because financial dependence limits choice. When a developer relies on just a few clients, those clients gain leverage over them, making it difficult to turn down requests, even if they’d prefer to.
And why the assumption that all paid requests will be by corporations?
Because private individuals rarely spend hundreds or thousands of dollars to get a feature implemented. A more realistic approach for individual users would be crowdfunding or pooling resources to fund specific features.