Glad to see other ideas and operating models being proposed and tried.
Most of us live in countries where you need money to pay rent and buy food. Unless you're already wealthy, that means you need to work (trade time for money) or find a way to trade time for an ownership stake that will, you hope, generate income (and in the process that stake becomes itself more valuable).
A buddy of mine in a maintainer for a popular Drupal module. A very large, well known, social media platform uses it. One day he got an email from someone - likely someone making $150-$200k- more or less demanding that he review and accept some PRs, as well as do some work himself, for a feature they needed.
I told this friend "Ok, did you ask them about their budget to pay you for that?" My friend, more idealistic than me, looked at me like I had 3 heads at first. But he got my question. Nonetheless he decided to "honor" their request and proceeded to work several weeks unexpectedly - for free - so the large for-profit company could stick with its plan and the person requesting this, who is paid, could meet her/his commitment to their boss. His rationale was afraid he'd criticized by the community for not dropping his paid work (!) to do this, since he was the maintainer. He did not want to be a "sell out". I think his decision was insane but such is the pressure to stay true to the ideals.
These stories are all to common and similar to what Willian describes.
I do work around expanding computer science in schools. I do work around mobilizing tech communities to lend their tech skills to disaster relief. A lot of folks in the "startup tech" and open sources communities (different communities with overlap) do the same -- I'm seeing them show up in big numbers for Irma volunteering right now for example. I view these efforts as akin to open course - they are contributions people make of their (unpaid) time to the greater good.
The big tech companies by contrast, many who got their start using open source software and many of whom still power much of their systems with it, could do much much much more on any number of fronts - CS in schools, supporting civic hacking, etc - than they do now. I am sure folks within those companies think they do a lot, but it's not, in my opinion, 5% of what they could do.
And when they do get involved in causes they make huge, often unreasonable expectations of unpaid volunteers in order to minimize their donation, whether that's a donation in time or money. (Case in point: last year a large tech company that provides search and email services asked me to organize Hour of Code events at 30-40 schools around NYC at which their staff to volunteer for an hour or two -- planning and logistics work that would have taken me 1-2 days a week for 4-6 weeks at least. They balked at the idea of paying me for my time since this was a "cause" and I should do it for free, though of course the people who would have been working on this project with me from said company would have been paid.) Sound similar? Expect a ton from volunteers to minimize your own investment.
I bring this up because the LEAST that people who work on open source projects - at least those who aren't pulling in $300K at one of the big tech companies - and ESPECIALLY maintainers, should expect is to get paid somehow. Seriously, how are people supposed to pay rent? William is right on with his piece.
Ideals are great but people need to eat. This emerging duopoly in tech where on one side there is a group of people who are entitled to make massive wealth and demand huge salaries and, on the other, are the open source maintainers, civic hackers, and computer science teachers who are being disloyal to the noble ideals of tech for not wanting to eat cat food is serves the industry poorly.
I engage in this hyperbole to make a point -- an industry that was built by many idealists who saw tech as being an engine to democratization and equality is now becoming exaggerated mirror of society large.
And if you're one of those making $250k, $300k, $500k at some tech company and demanding people work for free or else you'll accuse them of being sellouts for wanting to pay their rent -- well, look in the mirror before you cast that stone.
"One day he got an email from someone - likely someone making $150-$200k- more or less demanding that he review and accept some PRs, as well as do some work himself, for a feature they needed."
This is called a 'business opportunity'.
Seriously, people are going to ask you for free stuff all the time.
Sometimes they'll be up front about it (as in, "we don't have budget for that, but can you still help us out?"), and sometimes they just won't specify initially if they are willing to pay or not (ie, they'll just make a demand).
Every interaction is a negotiation, even if you are led to believe otherwise.
But this is also why I introduced my only vaguely related example of the large search engine company who wanted me to work for free to help them organize 30-40 school events for Hour of Code -- a big undertaking. They just said no to my request and did not do the events, and implied I was the reason why those kids wouldn't benefit from their hour or two at each school. No "'business opportunity'".
As context I do A TON of free work already in schools around computer science education. Was I being unreasonable to ask to be paid for this work? They sure thought I was, even though the people in their CSR group who'd have been the PMs of my work sure as heck get paid. The company chose just not to do the events at all (w/ a market cap of both of $500b) - the kids lost out too.
It's actually not so that the request for free work is a negotiation technique - it's an actual expectation of more and more people in the tech community who will get angry when you won't work for free (and they'll convey that anger from the desk of their $250k/year job).
I at least am seeing this dynamic play out all over the tech world. Work in a big tech company, nominally as a software engineer but really as someone who makes a lot of PowerPoints and watches (and "likes") a lot of Ted Talks, and the ecosystem seems to be ok with you pulling down $250K (and from that comfortable seat demanding quicker response times from volunteers in the tech community of various sorts).
Work for yourself selling your time as a contractor in the "gig economy" and you've become the maintainer and/or a significant contributor to a couple OSS projects that are related to the services you sell: you're a "sell out" to the ideals of open sources for wanting to be paid for that time. Again, I exaggerate this duality, but it's starting to become a real problem, I think, for the industry.
> you're a "sell out" to the ideals of open sources for wanting to be paid for that time
Who the hell unironically uses the word "sellout" anymore? Especially in this context?
I really don't think this is, like, a common opinion or anything. I haven't ever encountered anyone criticizing people for getting paid to work on open source software. Many projects I like (RPCS3, mGBA, libretro/RetroArch, GhostBSD, Redox OS, Godot Engine, Matrix.org) are funded on Patreon. In large projects such as FreeBSD, many commits are sponsored by either various companies or the project's Foundation. And specifically contractors contributing to projects related to their services, as you mentioned? That's how a ton of javascript libraries are developed :D And everyone is mostly just thankful that these projects exist.
What the hell are those "ideals of open source" anyway?
Reviewing and either accepting or rejecting (in full, no need to cherry-pick) large PR's is entirely up to the author.
You were right; the safest way is to simply ask if they're willing to sponsor that custom work, and how would they like to be credited for their sponsorship.
There's no need to go crazy about it. If it's not a right fit for the project or too much effort for the maintainer, then they can pay or it will just go undone. No one has to sell out in order to simply ask for someone to sponsor a feature.. it's simply logical to just ask for a contract or donation, or reject the PR if it's too big.
The problem comes that, as with many things, people like to live others' values for them. People become unreasonable. My friend was worried that he'd lose the respect, unreasonably in my view, of the community for not doing the "right thing", which in his view was dealing with a feature and set of PRs that were not on the roadmap to happen just now. And that word "sell out" - his word - for asking to be paid for his time was the root fear.
Understood completely and agreed.. but (almost) everyone has to 'sell out' by taking a job. A bit of reticence in this area is noble but perhaps misplaced, and people who get at least somewhat comfortable in asking for other people's money (aka selling out) might tend to not have as many concerns about money or pull requests. ;)
Your friend's been played for a tool, but I think you know this already. It happens all the time, especially with naive and insecure developers but not limited to them - our corporate overlords are always looking for some new way to encourage people to work more for the same amount of money. Hooking people on their ego is a very easy and common technique. Often people will just do it to themselves just fine with no help.
Personally, I either code for money or for a cause. The latter will almost always require some sort of GPL licence.
It sounds like big companies are using "sell out" as a weapon to get free work. I don't think someone drawing a large salary at a large company asking for free work is allowed to call anyone a sellout.
If they sent patches they already did the work. They might have maintained the patch against mainstream, but they contributed back instead. Your friend was under no obligation to merge. I cant see any free labour here.
Most of us live in countries where you need money to pay rent and buy food. Unless you're already wealthy, that means you need to work (trade time for money) or find a way to trade time for an ownership stake that will, you hope, generate income (and in the process that stake becomes itself more valuable).
A buddy of mine in a maintainer for a popular Drupal module. A very large, well known, social media platform uses it. One day he got an email from someone - likely someone making $150-$200k- more or less demanding that he review and accept some PRs, as well as do some work himself, for a feature they needed.
I told this friend "Ok, did you ask them about their budget to pay you for that?" My friend, more idealistic than me, looked at me like I had 3 heads at first. But he got my question. Nonetheless he decided to "honor" their request and proceeded to work several weeks unexpectedly - for free - so the large for-profit company could stick with its plan and the person requesting this, who is paid, could meet her/his commitment to their boss. His rationale was afraid he'd criticized by the community for not dropping his paid work (!) to do this, since he was the maintainer. He did not want to be a "sell out". I think his decision was insane but such is the pressure to stay true to the ideals.
These stories are all to common and similar to what Willian describes.
I do work around expanding computer science in schools. I do work around mobilizing tech communities to lend their tech skills to disaster relief. A lot of folks in the "startup tech" and open sources communities (different communities with overlap) do the same -- I'm seeing them show up in big numbers for Irma volunteering right now for example. I view these efforts as akin to open course - they are contributions people make of their (unpaid) time to the greater good.
The big tech companies by contrast, many who got their start using open source software and many of whom still power much of their systems with it, could do much much much more on any number of fronts - CS in schools, supporting civic hacking, etc - than they do now. I am sure folks within those companies think they do a lot, but it's not, in my opinion, 5% of what they could do.
And when they do get involved in causes they make huge, often unreasonable expectations of unpaid volunteers in order to minimize their donation, whether that's a donation in time or money. (Case in point: last year a large tech company that provides search and email services asked me to organize Hour of Code events at 30-40 schools around NYC at which their staff to volunteer for an hour or two -- planning and logistics work that would have taken me 1-2 days a week for 4-6 weeks at least. They balked at the idea of paying me for my time since this was a "cause" and I should do it for free, though of course the people who would have been working on this project with me from said company would have been paid.) Sound similar? Expect a ton from volunteers to minimize your own investment.
I bring this up because the LEAST that people who work on open source projects - at least those who aren't pulling in $300K at one of the big tech companies - and ESPECIALLY maintainers, should expect is to get paid somehow. Seriously, how are people supposed to pay rent? William is right on with his piece.
Ideals are great but people need to eat. This emerging duopoly in tech where on one side there is a group of people who are entitled to make massive wealth and demand huge salaries and, on the other, are the open source maintainers, civic hackers, and computer science teachers who are being disloyal to the noble ideals of tech for not wanting to eat cat food is serves the industry poorly.
I engage in this hyperbole to make a point -- an industry that was built by many idealists who saw tech as being an engine to democratization and equality is now becoming exaggerated mirror of society large.
And if you're one of those making $250k, $300k, $500k at some tech company and demanding people work for free or else you'll accuse them of being sellouts for wanting to pay their rent -- well, look in the mirror before you cast that stone.