I am way too tired to be writing what is sure to be a controversial post, but I don’t think I can help myself. In fact, I have little self control at all and I tend towards Wilde’s comment that the best way to get rid of a temptation is to yield to it.
[Note: on re-reading this it is a little harsh, even for me, so feel free to skip this post and move on to my travelogue from Milan]
I like Matt Asay. I think he’s a really smart guy, and he’s even gotten our back in the past. But lately I have to wonder what he’s been thinking. Today, especially, he went off on what he calls “free riding” in open source.
It really pissed me off.
Let’s revisit the definition of open source, shall we? The “open source definition” has 10 items (sort of a Bill of Rights), and the first three are:
1. Free Redistribution of software
2. Source Code to the software
3. Derived Works can be made from the software
Let me be blunt: the “enterprise” versions of so-called open source products built under the hybrid model violate all three of these rights. You purchase software under a restrictive license that doesn’t include the source code and doesn’t allow you to modify it. Sure, there is some small part of the code that meets the definition, but the hybrid company exists solely to profit from the sale of software.
That’s a pretty stupid business model.
Open source implies free distribution of software, which is the antithesis to commercial software. So the only reason I can think of why a commercial software company would tie itself to the term “open source” would be for marketing reasons. They want to capitalize on the success of projects like Apache and the Linux kernel, but without making the commitment to free the software. Why does this bother me so much? Because now I have to constantly explain to people what open source really means with respect to OpenNMS and it affects my ability to truly market OpenNMS as a free and open alternative to OpenView and Tivoli.
In his post, Matt divides open source communities into three groups, those that contribute code, those that contribute cash, and “free riders”. Now, when he says cash he means “folks that pay for a license to our proprietary code”. In that sense Microsoft must have a huge open source community.
People who contribute code are pretty self-explanitory, but what about the freeloaders – I mean “free riders”? What is their usefulness?
He comes up with two reasons, which I’ll paraphrase here:
1) They give the commercial “open source” company an edge by eating away at the market share of the commercial “closed source” company.
2) They provide numbers to help create a market share around the “open source” company’s software, thus increasing their valuation to investors as this is a greater pool of people to “convert” to “cash customers”.
Is that it? Without working hard I can think of several others:
3) They find and report bugs.
4) They contribute useful documentation if the community has a decent wiki or other such system.
5) They answer questions from new users on mailing lists and forums, thus driving interest in the application.
6) They suggest new features that may make the software better at its chosen task.
7) They promote open source software within their organizations.
There is some serious monetary value to these tasks, but it seems from Matt’s post that unless is its converted into actual cash it is not worthy. It isn’t a problem in a truly open project, since it is the community that should benefit from this work, but if your business model is to sell software licenses then, yeah, I guess all of those freeloaders would get you down.
Then he goes on to say
The more free-riders, the more encouraged would-be purchasers will be to free-ride, as well. Why should you be the only sucker paying for what everyone else is using for free, and quite comfortably?
This sucks for a commercial software company, but it doesn’t bother me at all. The OpenNMS Group is a services company. We don’t sell software, so if you don’t need our services why should we charge you for them?
If you are a commercial software company with an open source component, however, this can be a big problem. In fact, if you can’t meet your software revenue targets the smart thing to do would be to withhold crucial pieces to push more people to buy your proprietary code. Can you really call this model open?
Then comes the paragraph that sent me straight to the keyboard. I’ll break it up into pieces:
Ultimately, someone must pay for software in order to have it written.
If he means cash, that’s bullshit. It is quite possible to develop great code without a cathedral of paid developers. It will take longer at first, but it can be done.
Of course, “pay” could mean donations of time and effort, which do have a monetary value, but I don’t think that was his point at all.
There are huge benefits from open sourcing one’s code, but open source is not a substitute for the hard work of development, sales, marketing, etc.
Hard work of sales and marketing? Excuse me? When has a commercial software salesman ever added benefit to an open source project. The sheer idea of a seller of free software is ludicrous. Yeah, good sales and marketing will help one sell commercial software, but it is hardly necessary for the health of a truly open source community.
So what are the “huge benefits” of open sourcing one’s code? Well, if we rule out cash and freeloaders, that only leaves contributed code. Note that these benefits are “huge” so there must be some monetary benefit from the sweat equity of these volunteers. But how are these volunteers paid back? By having their efforts commercialized. They are barred from free access to the entire code base, which is only available in exchange for cash, yet their efforts obviously save the commercial entity money since they get features for free and usually with a copyright agreement that lets them create commercial derivative works from that code.
All companies, mine included, have some idea of an “exit strategy”. In the case of these hybrid commercial software companies, the idea is to get bought. The purchase price will be determined by their software revenue, so you can bet your life that the acquiring company will do little to open up the software, and may in fact commercialize more of the code.
If you ask me the entity getting the free ride is the “commercial open source” company. Was the purpose of this post to make people feel bad for just using the code and thus drive software revenues? Software license revenues have no place in free and open source software.
Nor is [open source] a winning business model, in and of itself.
Again, wrong. My company posted a 21% net profit last year. We used that money to almost double our staff, and we plan to do it again this year, and we did it without a single software license being sold. It may not be a palatable business model for Silicon Valley, but it works fine in the rest of the world.
If you have to violate the definition of open source for your revenue, why call yourself an open source company? The emperor is naked, folks, and his little hoo-hoo-dilly is hanging out. Perhaps if enough of us laugh at him, he’ll put some clothes on and get the frack out of our damn yard.
It’s interesting that after the developer makes the decision to open their code that they would then get mad at people who are simply making use of the rights they have been granted. It seems like some people want it halfway: they want all of the benefits of open source without any of the downsides (as they perceive them). Of course, it doesn’t work that way and they shouldn’t be surprised at that at all.
I think you’ve paraphrased my original blog to the point that I only vaguely recognize any of my original comments/arguments in it. If you’d like to review, you can go back and read the 4,000+ posts I’ve put up that largely confirm your points above, except for this one:
Of all the ways you list for people to contribute, 99% of people don’t do. Period. It’s a myth.
Now, we can decide that this use which contributes exactly nothing (not even a little bit more than nothing – precisely, exactly, absolutely nothing) is still better than no use at all, and I think I’d go along with that. My company has 25,000 active, unpaid deployments. I’m ecstatic to have those. I like people using my software, even if they don’t pay.
But I also like getting paid. I don’t think it’s wrong to devise open-source friendly ways for developers of open-source code to get paid, and I suspect you don’t, either. So what is it that you were arguing with me about…?
@lovelace. It’s unfortunate that you took Taurus’ word for what I said. Normally I think Taurus gets things right, but your interpretation suggests that he (or you) didn’t in this case. I have absolutely no problem with someone getting something “for nothing.” That’s one of the benefits (and risks) of open source. You put the code out there and people do (or don’t) pay you.
That’s not at issue.
What I was getting at was ways to encourage greater contributions from the vast majority of people who give absolutely nothing back to open source. Is it a bad thing to want more people to get involved? How do you get average users like me more involved? What can we do? How can we encourage people who can code to contribute code back? Or documentation? Or whatever?
Why is it wrong to expect people to contribute?
Companies that approach open source with the model you’ve called “shareware” are walking a thin line. It can be a self-correcting problem, as recent activity in the MySQL universe has shown. Sun has to be very careful.
Unfortunately, that thin line can also get thoroughly trashed and forgotten, as is (allegedly) the case with OpenNMS and Cittio.
Matt – thanks for taking time to post a reply. Sorry I took so long to moderate it (I just got back to the hotel – it’s after midnight here).
I wasn’t the only person to have a negative response to your post. It also seemed a bit out of character, so perhaps it doesn’t stand well on its own. It seemed to be saying that those people who use open source software but don’t contribute should just pay money. That might not have been your intent, but that’s how I read it.
You are right, 99% of people who use open source don’t contribute. But that doesn’t bother me. I focus on the 1% who do. Perhaps, with education, that will rise, but I think this particular post did not help the cause.
You’re definitely not on my “evil” list, so please take my comments in response to the content of the post and not you personally. I am sleep deprived and probably won’t be able to correct that for at least another week, and I probably overreacted.
It’s not at all a bad thing to want more people involved, but I can tell you that Tarus isn’t the only one that interpreted your comments in a negative light. Honestly, if I were someone who used but did not contribute to open-source software, calling me a “free-rider” would certainly not be interpreted as a call to action. =)
Um, the most ardent free software advocates also have a thing out for “freeloaders” – particularly those users who make demands for more appealing features from the developers. The most common reverberation among them is that “Linux and free software is about ‘freedom (for programmers)”, not about ‘choice (for non-programmer users)'”, thus disqualifying the non-programmer users of any right to complain about bug X in such-and-such free software by technicality. I guess that a similar argument is made to those companies who distribute packaged FOSS without offering source code in return.
http://jons-thoughts.blogspot.com/2008/01/linux-is-not-about-choice.html
http://blogs.awesomeplay.com/elanthis/archives/2006/10/26/394/
https://www.redhat.com/archives/fedora-devel-list/2008-January/msg00861.html
I can’t say that such a knee-jerk pro-programmer reaction against non-programmer users or distributors (the users, through P2P, can also be distributors as well) is unwarranted, but it is, nevertheless, a knee-jerk reaction. It primarily demands that the user learns programming languages and talk in source code to the developers rather than give a complaint about why the software doesn’t work to his advantage. It works for the programmer, who is also a user of his own software, so why should the programmer change how his software works for himself in order to appeal to someone else?
Does that mean that non-programmer users (stereotyped as ignorant, lazy and selfish by the FOSS hardline) are better off with the companies which package the free software (Red Hat, Canonical, Novell) or, worse, are their own proprietary software house (Microsoft, Adobe)? I doubt it, since at least there’s more disclosure by the developers about why the software doesn’t fit some non-programming user’s particular fancy. But at least the “open-source” companies have a profit margin of some sort to maintain, which means that they make demands for the users to the developers/programmers, but with monetary incentives (i.e., hiring, funding, buying servers).
So is this a deficiency of the programmers (who are obviously narcissistic, and could care less about anyone else unless they also have similar programming skills), the companies (who only care about how to make money) or the users (who only care about their own productivity)?