I really like the idea of setting up guard-rails like this to embody cultural values early on in ways that keep the organization accountable to them at scale and I wonder if something similar could help OSS. It's not hard to imagine a similarly structured pledge being adopted by companies and being popular with developers. It could be structured in hours or money, executed with developer time, donations, or hosting OSS developers like Stripe has done.
If I allow myself the thought exercise of what happens if something like this started to see adoption, I imagine we'd see projects beginning to license themselves favorably to companies who make this pledge in a variety of ways.
At any rate. That's roughly what I've been noodling around with regard to this problem.
[1] http://onepercentfortheplanet.org/ and I highly recommend Yvon Chouinard's book Let My People Go Surfing, which was where I was first exposed to the idea http://www.patagonia.com/us/product/let-my-people-go-surfing...
Interesting approach, but I bet those companies also aren't high growth tech startups/companies. The only goal at a growing tech company is reduce costs, increase revenue. They aren't looking for new ways to pay for things they legally get for free.
My favorite example is Redis at Twitter: Twitter has over 30,000 Redis servers deployed around the world using a total of over 500 terabytes of RAM (half a petabyte!), and they certainly have no interesting in paying for Redis. If Redis were typical "commercial software" licensed per-core or per-other-shennigans, they'd be paying over $70 million per year for Redis.
(Redis is a unique position because the core dev team of Redis has always been small so it's easier to measure the direct exploitation involved versus other projects with thousands of amorphous developers like Linux or Hadoop or Apache.)
Many open source projects are essentially corporate welfare. We work, make products companies use to make money/become more efficient/grow faster, the companies use the software for free to get richer, then nobody contributes back any of the gains.
In Twitter's case, we've also contributed to the Redis ecosystem via twemproxy: https://github.com/twitter/twemproxy
Twemproxy helps scale some of the traffic for the top websites in the world: https://github.com/twitter/twemproxy#users
The standard way society compensates persons for useful goods and services is by exchanging currency, not by bartering favors or by saying "look! we made a billion dollars using your software, here, have these free 40 lines of code as a bug fix. thx."
Unrelated note: every time I see these (needlessly?) optimized string compare statements, I fall out of my chair laughing and/or crying: https://github.com/twitter/twemproxy/blob/a36fdae2a8a3c166d9...
Redis gets feature requests from companies all the time (implement X! It'll save us from lots of complexity and internal support time!), but they don't want to pay for it. Redis also gets support requests from big companies (where employees have already exited or sold stock back or are out buying Teslas), and I get to answer their questions for free too. I'm really happy Redis is running your multibillion dollar company and I'm certainly happy you see no irony in asking for free support when your company is visibly hemorrhaging idle cash. Sometimes you just have to say http://www.urbandictionary.com/define.php?term=fupm&defid=54....
cory doctorow has made a similar argument about copyright and the absurdity of one-size-fits-all:
> We're trying to retrofit the rules that governed multi-stage rocket ships (huge publishing conglomerates) to cover the activity of pedestrians (people who post quotes from books on their personal blogs). And the pedestrians aren't buying it: they hear that they need a law degree to safely quote from their favourite TV show and they assume that the system is irredeemably broken and not worth attending to at all.
http://www.theguardian.com/technology/2010/jan/26/copyright-...
It doesn't seem particularly fair to say "here world, use my open source project for free," and then get mad that people use it for free.
And in fact, I don't think antirez is saying that. It looks to me like other people, who didn't build Redis in the first place, are the ones saying that.
The strange miracle of open source software is that when companies use something like Redis to make a lot of money, they end up investing in it, they contribute work to the project, and the community does gain from their contributions. In other words, the whole point of OSS is that exactly the thing you say never happens, happens all the time.
Most open source development is commercial.
To take an example from my day job: Bloomberg (the financial media giant) sponsored Andy Wingo (of Igalia, that guy is a genius) to contribute support for ES6 generators to both Mozilla's JS engine and Chrome's. An example of his amazing work:
http://wingolog.org/archives/2014/11/14/generators-in-firefo...
Companies use all things to get richer. That's the operating principle of companies. The competing model to open source is commercial software, in which the company owning the software has a monopoly over it and uses it to get richer... and the companies licensing it still use it to get richer.
In corporate welfare, the money given to companies is taken from someone else's pocket. Open source software is cheap because it eliminates the artificial costs of copyright monopolies.
It's a matter of project scale too. Nobody cares about exploiting Hadoop because it's millions of lines of low quality code written by thousands of day-job developers.
But, if a project is clearly the work of, say, 2-5 individual developers, it's easier to see how those individuals are creating much more value than anybody is possibly compensating them for.
The main complaint seems to be "offering things for free then expecting good things to happen" doesn't work. So the only solution is "offer things for free and also provide support/services/hosting/accoutrement to companies with big pockets."
The trick is: how do you incentive companies to pay in the first place? There's the mongodb model: market, popularize, and aggressively sell broken software so people must buy support or else nothing works at all, or there's the RedHat model: target big companies and become their source of trust/knowledge for complicated things the buying company doesn't want to manage/understand themselves.
It can be difficult to sell highly popular, non-broken, simple software. It works, people use it, there are no problems, so, why pay, even when it runs your multi-billion dollar company (especially when the free support resolves all issues in less than 20 minutes anyway)?
I think this is true of anything worth doing.
I like your characterization of the mongodb model and the RedHat model. (I don't see anything wrong with RedHat's model, by the way. More power to them.)
But your complaint would have made a lot more sense fifteen years ago. Now there are a lot of other models. There are even other models that work really nicely!
There are consultancies, like Igalia. Some companies hire open source developers because they use the project and want to make sure active development continues (antirez's day job might be an example of this; at a guess that's why Google once hired GvR, the creator of Python). Some use OSS projects as a recruiting tool; smart ones use it as a signal of quality in hiring. If you selectively hire engineers with OSS on their resumes, you are unwittingly paying returns to OSS development.
Companies can also use OSS to reduce the cost of external efforts that are strategically important to them, and they can win a developer mindshare benefit from doing so. This is why Microsoft open-sourced the .NET platform (under a good license!).
I'm no VC but the bazaar seems healthier financially than it's ever been.
Well, it's the difference between getting paid (salary, fixed, no logical incentive to grow/improve) versus getting paid (percentages of benefit, the more benefit you create the more you make, growing non-linearly with your actual output).
All of this is really just complaining around the fact it's not easy to reap rewards proportional to the benefit of software without creating a company and all the overhead required therein.
Another great example: memcached. It's well known facebook uses memcached heavily. The creator of memcached doesn't see any benefit from their usage of his software. Modern high-growth, multi-billion dollar companies are built on top of the work of individuals they don't even attempt to compensate.
Some of these arguments also apply to modern exploitation of musicians a la spotify/steal-my-music-ify, etc.
(postlude)
It occurred to me this morning that even in theory, market economies don't pay to the seller a percentage of the buyer's benefit. They never do: it's not how they work. The full area under the demand curve, above the line indicating price, accrues to the buyer. Buyers that get a very great benefit (tangible or intangible) out of buying a pencil, a gallon of gas, or a computer generally pay the same price as those for whom the benefit is very slim; and there is no limit to that benefit.
This is mostly beside your point, I know. I just thought it was a nice idea, worth sharing.
As for size, NBB is the second largest craft brewer in the country and Patagonia is a very large player in outdoor apparel.
>The only goal at a growing tech company is reduce costs, increase revenue.
Right. Fuck that, because that's not actually (ever) really the goal. Money's always a means to some end, so another way of looking at this is to put a stake in some particular end that you want to share with everyone at the company. That's culture. Culture is shared values, and this is a way to make culture measurable and something the organization is held accountable for over time.
Yet another way to look at this is what happens if when Larry and Sergey decided on "Don't be Evil" someone told them "That's adorable, but why don't you think harder about how to turn this into something measurable".
http://en.wikipedia.org/wiki/The_Ragged-Trousered_Philanthro...
You say "many", implying not all. What differentiates the "corporate welfare" category of OSS in your mind?
> We work, make products companies use to make money/become more efficient/grow faster, the companies use the software for free to get richer, then nobody contributes back any of the gains.
It seems more complex than that to me. I contribute to OSS, but I also owe my career to OSS. I learned to program using an OS language, an OS database, an OS editor, etc, and still use such tools. I never would have started learning if all that had cost money. So the "welfare" goes to companies, but also to individuals, who may come back and contribute.
Companies have also hired me based on my OSS contributions, which incentivizes me to do more.
"We give, they get" is oversimplified, at least in my case. I got, I gave, I got more, I continue giving.
This!
Not only IT companies but VC's and startup entrepreneurs all rave about how fast and easy it is to develop and get a MVP out the door these days compared to year ago.
What % of their tech stock is OSS that they leveraging for FREE?! Not only that but if you run into a bug, you can even submit an issue ticket directly on github and get a dev to respond and potentially fix your issue for FREE!
Obviously, the pure technology is not the sum of startup execution, but I wonder how many of these people made huge $$$ without donating a nickle to the OSS projects that provided the backbone of their entire technology stack!
What's interesting is that most enterprises don't really want to freeride - they don't have the knowledge or legal will (indemnity) to go it alone, plus have esoteric requirements that usually don't lead to good open source projects and will pay for proprietary add-ins.
The main free riders are startups that couldn't afford a subscription anyway (until they scale and want help), along with service/cloud providers that are at such enormous scale and have such a large braintrust that they can go it alone. These are the organizations IMO (the Googles of the world) that really need to sponsor individuals and OSS foundations to avoid a tragedy (like GPG or even OpenSSL).
The good players that give back need to be recognized and praised.
[I honestly have a hard time understanding why bigish companies that use/rely on the software don't just give 50k to the GPG developer or sponsor OpenBSD etc. which can be great PR while they can spend similar sums on somewhat silly PR campaigns. I guess "IT people" generally don't have much input when it comes to PR...even outisde of signaling that you're a cool employer it's genuine good PR for (tech) companies]
When you're depending on the software in question, it being underfunded might mean you're not getting the quality and features that would pay off in multiples for you. You could be sitting on a pile of bugs, or your dependency could be abandoned at your expense. These things happen all the time in open source land and it's a tragedy.
I'm not convinced that freeriding is really rational at all. I would however grant that it's both easy and lazy.
It's a tradeoff between "stable" income and "potentially unlimited" income, and Redis is still in the "stable" column.
GPL?
GPL projects "take" from BSD/MIT/Apache/etc projects (in the form of libraries, supporting software, etc) and only give back with conditions they can't accept.
You can say it's on them, for choosing the license they chose, they accepted that this could happen, but on the other hand, isn't that exactly what we're criticizing companies for?
The FSF is hostile to proprietary software and criticize liberal licenses because they don't provide these guaranties.
If you don't want people to use your code without making their changes available to you, license it under the GPL. That's what the GPL is for. Criticizing GPL projects for the fact that some projects are not GPL seems an odd way to spend your outrage budget.
And I don't agree that choosing a license means the authors are necessarily fine with their code being used in such a way - it might just mean they don't believe in using (copyright) law to enforce it.
And even if they are fine with my activity, that still doesn't mean I must be OK doing it. As an analogy, I wouldn't sell tobacco, despite the buyers actually wanting to buy it.
If someone do not believe in using copyright law and dislike those who do, they should act accordingly and not deal with proprietary companies at all. Those are the majority users of copyright law in the software industry, as the number of GPL law suits vs proprietary ones is several order smaller.
Sure. But that still doesn't resolve my dilemma, it just narrows it down.
Is it legitimate to take code published under a liberal license by someone who doesn't deal with proprietary companies at all and use it in a GPL project, knowing that it prevents the original project from using that derived code?
LLVM is a great project and brought the possibility of .NET/Java tooling to C and C++, but just check the amount of GPU shader drivers, Swift and some embedded compilers for examples of companies abusing BSD/MIT/Apache/etc projects.
Its not "abuse" to do something the license is designed to permit. Not everyone -- and particularly not everyone who chooses non-copyleft free software licenses for their projects -- agrees that the reciprocal obligations enshrined in the GPL represent fundamental moral obligations that exist without the GPL and that violation of them is "abuse" in the absence of a agreed requirement, e.g. contained in a license, to adhere to them.
The code being available is only useful if you can use it, and my point is that projects under most FOSS licenses can't use GPL-licensed code, which only takes without giving back in a usable form.
LLVM is known for being rather ruthless with their API refactorings. This has the twin advantages of keeping the code quality very high, and giving people an extra incentive to contribute upstream (e.g. the PS4 compiler backend). I won't go so far as to say this is intentional, but it does represent a rather amusing way to discourage users from keeping everything in-house.
I actually think if everything out there was GPL'd, it would make it even more difficult to build businesses and make money from open source software, because you couldn't use open source in a proprietary project if you so chose.
I think instead we need a set of incentives in which it's a terrible idea to use software, open source or not, without sharing a fair slice of the value you're getting with the author(s). How to actually implement this is left as an exercise for the reader.
So, if you set the cost of BSD/MIT code for each release enough for one sale to fund the whole cost of the release, it might work.
Sure, but BSD/MIT projects can sell premium proprietary derivatives and services to fund both the open source and proprietary parts of the project -- heck, a company planning to do the proprietary aspects could buy the BSD/MIT license to the project and contribute that to a community project, and then contribute some staff development time to the open parts of the project while also building a proprietary derivative (see, e.g., EnterpriseDB and PostgreSQL.) And, the people that are likely to do that are the most likely to spend money to get a BSD/MIT license for something with a free GPL license, since they would actually have a financial interest which would justify the cost.
But anyway; in my limited anecdotal experience, I don't know that all companies would bother sharing the BSD/MIT code anyway. They tend to be occupied doing their own work, not redistributing whatever open source software components they got from somewhere else.
Some companies might; but the point is that, I think that, no, they would not necessarily pay for it and then share it with everyone else.
It's a viable model for some things, like libraries; not so much for others.
Funding open source is a tricky problem. It is, in some ways, a 'public good' in the economics sense:
Yes, isn't that kind of the point?
If everything was GPL'ed, there would not be any proprietary projects. Everything would be GPL'ed.