feross / thanks

🙌 Give thanks to the open source maintainers you depend on! ✨
2.76k stars 113 forks source link

Closed circuit #40

Closed ghost closed 6 years ago

ghost commented 6 years ago

This is an awesome idea and I hope many deserving projects/developers can receive some well earned funding as a result.

One thing that comes to mind is that funds will largely be travelling in a closed circuit between developers, most of whom are likely to pay out of pocket rather than try to convince their employers to pay up.

Now that there's a central location to register funding needs and highlight what could be thought of as a "social injustice", I can't help but wonder whether it's worth utilising some of the same affirmative action techniques used by those claiming to fight social injustices in others areas. The techniques are highly effective in bringing about change even when particular types of injustice have no supporting evidence - and in some cases the evidence is contradictory to the claims.

Underfunding of OSS is backed by evidence and causes measurable harm to both the projects themselves and the companies using the projects (as we're periodically reminded by catastrophes such as Heartbleed).

Is it worth brainstorming ways to extend this particular project into a wider movement that leads to the kind of social changes necessary to properly fund OSS development? If certain groups can make enough noise that even misinformation leads to dramatic societal changes and a viral sense of obligation why can't and why shouldn't the open source community do the same?

adrianheine commented 6 years ago

I suppose I wouldn't agree with your critique of social justice movements if we were to discuss it (which we shouldn't do here), but I think you're spot on with your analysis that funds will travel in a circuit and we need to pull money from companies actually making profit with open source software. This is out-of-scope for thanks, but it's relevant for the broader idea, so I'm going to elaborate my idea here.

It goes like this: Nearly all companies will not part with money unless they are somewhat coerced to do so. I have the feeling that customers have less power over companies in our field of work than potential employees since there seems to be a severe lack of qualified developers and candidates for other roles. As such, it would be great if we could incorporate information about how much companies are donating to open source software in our employment decisions (Same goes for customers, too, but as I wrote before I think they actually have less leverage in tech). In order for that to happen, there has to be an easy way for companies to specify what they are giving (back).

Since there are and should be a lot of different payment providers, this cannot be a centralized service. Instead, there should be a decentralized way for companies to claim how much they are donating, and then payment providers like liberapay or opencollective would provide signed statements backing that. Other people could then use a tool to fetch a company's statements, verify the signatures and inspect how much and to whom the company is donating.

ghost commented 6 years ago

N.B. I didn't intend to write so much here so I'm adding this headnote just to say I don't think it's fair to expect you to read all of this. If you have better things to be doing I won't be offended (as reiterated at the end)! If nothing else it has been a useful thinking exercise. :-P

I agree it's not a topic to discuss here or even anywhere public anymore, it's far too volatile of a subject. All I'll say is that I'm vehemently opposed to all forms of discrimination - just to avoid any potential misinterpretation/shoeboxing!

On the topic of companies I agree, there's no incentive to do the "right thing" unless doing so is the most profitable option. With regards to developers and employment decisions I suspect that what we could end up seeing are developers who are willing to accept lower salaries in order to work for companies that contribute, and so we end up with the same problem but with funds being diverted at the level of payroll. Again I agree about customers having less leverage, we have too many monopolies for one, customers are unlikely to know/care about open source and a huge proportion of software companies are B2B.

Developers/employees also tend to be loyal to their employers insofar as is reasonable - in a sense that's what they're there for: to achieve the business objectives.

All said this is leading me to the conclusion that the pressure needs come from the outside. We must treat developers employed by a company as having the same mindset as the company.

The other social change movements are heavily funded. Many of them have been around for decades and have built funding infrastructure that has many sources and many levels of indirection... they're essentially already multi-million dollar industries that have been in incubation for over 50 years. They already have products (books, media, "training" and other merch) and benefit from both direct and diverted donations (this is emergent and not intentional but nevertheless there's no attempt at course correction). In addition they also collaborate and propagate each others messages through their various charity activities. There are so many levels to it in terms of marketing the ideology and organisation that by the time they started the current campaign(s) they took the world by storm. Combined with the aggressive responses to critics they've executed their mission(s) almost perfectly (there is a growing backlash from various different types of opponents that may still change the ultimate outcome).

There's a lot of a room for misinterpretation in the previous paragraph but to elaborate further would be dangerously specific and I want to avoid being targeted by any sort of internet mob that may stumble across this. As it is now I haven't named or indicated my personal views on any particular movement and intend to keep it that way!

We can't replicate their level of influence any time soon without getting some already heavily funded players involved. We do already have the ideology in place within the community and the vast majority of developers subscribe to it. So we have our army. In terms of organisations our closest parallels to those in other movements would be the Free Software Foundation, the Open Source Initiative, Mozilla, Red Hat, Canonical and the Apache Software Foundation among other smaller players. However we also need to take into account their sources of funding and how they relate.

We did have some success with Gittip but a clash of ideologies/mindsets destroyed that. Now we have Patreon and others but I only learnt about that recently and I think we've already established it's an unsustainable solution without supporting measures.

All of this is leading me to the conclusion that we have few options to solve the funding crisis and most of them are awful:

1) We raise awareness about the harms of doing open source and roll it back 2) We adopt a new ideology based on OSS but with more restrictive licenses - shared/funded source 3) We adopt authoritarianism, get political and push for taxes that go to OSS funding 4) We inhibit distribution at the infrastructure level (package managers) when funding goals are unmet

There are immediately obvious problems with all of these. 1 & 2 require a network effect and the results could be catastrophic if not well thought out - it's all or nothing. So long as an alternative can pop up to take the place of any relicensed projects it's pointless. 3 is just a nightmare scenario in determining who pays the tax, how much and to whom it goes. 4 is feasible but requires the cooperation of every package manager and policing of new packages to ensure duplicates aren't uploaded - it also excludes code not conventionally distributed via a package manager.

We appear to rely on either altruism (which we know doesn't work) or naming & shaming which is questionable.

One final option is to establish a federation of open source developers who assign copyright of their work to the organisation. The organisation would then be funded by the members in the same way as an insurance provider. Code would be dual licensed where individuals and companies below a certain revenue would be exempt from payment but larger companies would be required to pay a licensing fee for each product they use. The membership fees (and/or margin added to licensing costs) would then be used to pursue legal remedies for those companies that violate the license terms.

I really like this last idea actually. There are a few other people looking into this issue who I haven't read completely. They are Tidelift https://tidelift.com/ and Nadia Eghbal https://medium.com/@nayafia.

I want to do some coding so I'm going to forget about this subject for today but I'm going to do some more reading and possibly reach out to the two mentioned above depending on what I find.

Obviously this is an extreme form of feature creep and massively out of scope so I won't be offended if you close the issue and/or have better things to do than reply!

If you ever fancy a chat about this though feel free to ping me on Twitter https://twitter.com/reasonoli (especially if you'd rather move the conversation away from thanks as it's only loosely related) :-)

cadorn commented 6 years ago

The other social change movements are heavily funded. Many of them have been around for decades and have built funding infrastructure that has many sources and many levels of indirection... they're essentially already multi-million dollar industries that have been in incubation for over 50 years.

IMO this is exactly opposite to what is needed or even good. Funded social change movements will look after their own interest (not the community's interest) which will lead to:

  1. Too heavy focus on raising money
  2. Eventually forcing change by allocating funds where the change being forced will not be compatible with where the community is or ought to go naturally.

Social change movements belong to old paradigm thinking.

I operate in a new paradigm where individuals lead change in such a way that others will seek to emulate because they see something simple that is working and makes sense.

The thanks project has come about and grown (rapidly at least in terms of github stars) exactly in such a way. Give it some time and observe how a diverse community will build on this without coercion in any way.

Social change movements always lead to coercion of groups (the groups you do not like: companies consuming open source without giving back) and are thus completely incompatible with fostering diversity because they do not allow it through implicit exclusion.

Diversity is fostered by making everyone want to participate because it benefits them.

ghost commented 6 years ago

I agree with you on every point although my optimism is more reserved. Hanging around on Twitter over the last week or so I've seen thanks popping up all over the place. There's notable momentum.

There's also https://licensezero.com/ which is worth keeping an eye on - an attempt at popularising the dual-licensing model.

Over all there seems to be a growing wave of backlash against the one sided nature of open source. It gives me hope.

cadorn commented 6 years ago

There's also https://licensezero.com/ which is worth keeping an eye on - an attempt at popularising the dual-licensing model.

License Zero does not come without its own problems. See [1] and more discussions in following months. It was ultimately decided that it does not meet the open source definition.

IMO the only and best way forward is to lead by implementation and voluntary adoption. This may take a while but is a lasting solution. Many similar solutions that actually work will eventually be accessible using open APIs/protocols that are developed to capture sustainable (lasting) patterns.

[1] - http://lists.opensource.org/pipermail/license-review_lists.opensource.org/2017-September/thread.html

ghost commented 6 years ago

Fingers crossed voluntary adoption really takes off!

In the meantime I'm going to close this issue because it's just sort of sitting here now and isn't directly relevant to the thanks project.

If anyone wants to exchange ideas in relation to this (or anything else) you can tweet me, my username on Twitter is "reasonoli".

Thanks for your input everyone.