Making money “because of”
When I worked at 23 on their flagship product, 23 Video, one of the hardest things to make people understand was the business value of using web video for communication. Being a new medium, a lot of people had not yet grown accustom to web video's position in the span of communications tools. Therefore, a question that often came up was "but, how can you make money with these videos?" With most customers being rather large companies whose main product was not video production, the answer was very often "you can't." But, they could make money because of the videos. The extraordinary user engagement and relationships that can grow from the special nature of web videos can expose your “brand” and products in a way that very few other tools can — if done well, that is.
When I read Redis author, Salvatore Sanfilippo, and Ruby on Rails creator, David Heinemeier Hansson's recent discussion of money and open source software on Twitter, I realised that the exact same problem exists in the world of open source software. A lot of people and companies simply don't have a good comprehension of where open source fits into the money machine. What really caught my eye in the aforementioned discussion was a rather controversial opinion expressed by Salvatore Sanfilippo:
There is like… 90% of new startups that can only exist because of an huge amount of work people did for free.
My idea is that companies should feel somewhat ethically obligated to provide a small % of profit to OSS."
Yes, Sanfilippo's first statement is very correct. I'd probably go as far as saying that it is somewhat unlikely that startups like Facebook and Twitter would have even existed had it not been for the readily available open source stacks on which they could relatively quickly build their platforms. Most things I've done in life would not have been as easily possible either. Although I do sometimes enjoy doing things "the hard way", I also really love and appreciate the ease with which I can bootstrap virtually any application with the wide variety of open source tools readily available to me. But, it's not a coincidence that things turned out the way they did. If we backtrack the whole stack, we most often wind up in dusty corners of university research departments where the emphasis was on producing advances through research rather than "just" companies with the availability of entire open source projects being an eventual by-product. In many ways, open source has become the implicit nature of the software world, rendering the point of arguing the "if people hadn't done work for free" case about as useful as arguing about how the world would look if scientists didn't publish their work.
Today, most open source development happens far from the resounding aisles of universities to which the once outcast computer scientists were condemned. Instead, a lot of open source development is now driven by companies of any size. Therefore, I honestly don't understand Sanfilippo's rather communist stance on profit share as an ethical obligation. To me, this is evidence of a complete misunderstanding of what open source software is. Being free and open it is illogical to expect to be paid solely because you're doing open source work, much in the same way that it's illogical for Mercedes-Benz to expect their customers to pay to see a video about the SLS AMG Coupé Black Series — no matter how stunning it is. Given the nature of the product, it just isn't something you can sell directly. Yes, I do realise that there are specific cases for which this is not true, but for the most part, this I'd say this argument is pretty waterproof.
But, much like an awesome video with the Black Series going sideways round your favorite track can prompt you to dump your last penny on a preorder — should you be so lucky — your business can make money because of open source. I guess some of you won't immediately agree on this point. But, think about it; would the open source movement really have prevailed for this long, had it not been economically sustainable? The truth is, that the financial upsides of participating in and producing open source software far outweighs the competitive advantage often initially offered by "having" a technology.
First of all, the most obvious upside to open source software is that it's free — d'oh. Another positive effect is of course also that open source software tends to, well, develop, resulting in new features continuously being added and refined. Furthermore, open source software is open to far more scrutiny through exposure to different environments and use cases and will therefore often develop to become stable much faster than the same piece of software used proprietarily for a specific purpose at one company.
While it's of course great to have software that's developed not entirely at your own cost, open source software has proven to have a far more interesting side effect much akin to the effect of the tire smoking video; it's great marketing to great people and great companies. A company that releases a major open source project are very likely to attract a lot of attention from the people interested in solving the same problems as those being tackled by the project, with the opposite scenario being just as true. This provides great opportunities for both hiring and collaborating with great people and great companies. The examples of this are virtually countless by now, ranging from some of the greatest GitHub hires to Python creator, Guido van Rossum joining Dropbox, not to mention the army of open source developers employed at companies like Facebook and Google. Moreover, working with people centered around an open source project provides a great common ground of understanding, which in turn reduces the training cost of hiring. I couldn't possibly imagine a non-open source world in which Etsy's new employees could deploy on their first day.
My point is this; you shouldn't expect to make money from open source. Even more so, no one is morally or ethically obligated to pay you money for your work on open source. People and companies are to some extent obligated to contribute back to open source software if their contributions fit the development of a project, but most of the time, this obligation is more than justly enforced by the fact that there are a multitude of incentives for doing so.
I can't help wondering, though; did Sanfilipo himself pay to support the developers of the compiler, the operating system, the libraries and the tools he uses to develop Redis? Given the number of licensing disputes that have faced VMWare over the years, I'd say that it's very unlikely that the company, that has employed him to continually develop Redis, has or does. And they didn't just hire him out of the goodness of their hearts. That is for sure. I'd really wish that leading figures for open source development wouldn't make such ignorant statements.