So the blogosphere seems to be in an uproar regarding what constitutes an "open source company" and what doesn't. This seems to have been spawned by a blog post by Nat Torkington. While working on the OSCON program he stumbled over what he deems as questionable entries, since he does not feel the relevant backing companies are sufficiently "open source".
Overall I agree that there is a fine balance. Now that open source has become so "posh" there are a lot people on the bandwagon that are just there for the ride and not to enable it. Obviously any company is in it for the money on some level. Personally, I am also not a follower of the open source as a political cause. With these two points as a baseline lets explore the topic some more.
To me the point of open source is to enable better software for everybody. The idea is that as I work towards "scratching my own (or my customers) itch", I also happen to be enabling others to extend these solutions. From which I may or may not end up benefiting as well. This cycle is what is important to me. But at the same time I think the beauty of it all is that exactly this cycle makes it appealing for others to contribute back. Its like a perfect code generation machine that just keeps expanding!
Allison Randal brought up EnterpriseDB in the context of Nat's discussion. The EnterpriseDB business model is essentially as follows (I actually wrote my thesis paper about OSS business models in the RDBMS industry):
Now this all looks quite proprietary. But keep in mind that companies like MySQL AB, who seem to be an undisputed open source company, make the bulk of their income with proprietary licenses as well! The difference, at least at first sight, is that MySQL AB makes the bulk of their code available under the GPL.
EnterpriseDB actually also open sources a large chunk of the code they develop. They employ quite a lot of the most active contributors to PostgreSQL. They sponsor others through a fund. What EnterpriseDB does is a very common approach for companies in the open source scene. They open source the non-differentiating code, while keeping the differentiating code to themselves. The differentiating code is the compatibility layer to the Oracle, as we all know this is a proprietary product. So the main part they keep to themselves is a piece of code that is most relevant to people who are either currently Oracle customers or are customers of products that do not support the open source version of PostgreSQL. On top of that the PostgreSQL community maintains very good relations with EnterpriseDB and vice versa. As already mentioned, they employ key contributors, sponsor others and promote PostgreSQL.
So what would happen if EnterpriseDB ends up pissing of the community? It would find it difficult to keep all these awesome PostgreSQL developers on their pay roll. They will find themselves in an up hill battle when trying to get patches into PostgreSQL. As a result they will have to maintain non-differentiating patches in their own tree. Taking time from their developers as the PostgreSQL source code might be developed further and further into ultimate incompatibility with the proprietary patches. I think its obvious that this would serious jeopardize EnterpriseDB's entire business model.
And this point is key in my humble opinion. I think any company can call itself an "open source company" if its business model depends on being in good standing with an active open source community. I say active because I do not believe in open source communities that are entirely "owned" by a single company (just to avoid a misunderstanding: MySQL AB may employ essentially 99% of the people contributing code to MySQL, but the community is of course much larger than that). So given that definition EnterpriseDB very much is an "open source company".
Of course if EnterpriseDB ever stops being considered to be a "good citizen" inside the PostgreSQL open source scene, but doesn't go belly up, then they have proven that their business no longer depends on being a "good citizen" and thereby automatically cease being an "open source company" by my definition.
When I mentioned this definition in an email exchange with colleagues (John provides his POV in a blog post of his own), Dave said that "good" and "bad" are to "nebulous" terms for him. I am also aware of the danger of equating open source with terms like this, given the history that even spawned the necessity for the creation of the term "open source". However I am simply not aware of a better definition. Every open source community seems to have a very unique structure and development approach. This obviously dictates how companies can interact in this process. As such I think a hard definition is simply going to over or under value the contributions of many companies that do not fit into such a strict corset, which I would consider a huge pity since open source has been at the forefront of so much business model innovation.
Just as a final disclaimer. I simply choose to expand on Allison's example of looking at if or of not EnterpriseDB is an "open source company" or not. Aside from considering myself to be a member of the PostgreSQL community, I do not have any particular attachment to EnterpriseDB. So let me know what you think. Maybe you have some other good examples of companies that may or may not be "open source companies" which we can use the challenge my definition.
One company that trumpets "100% open source" on their website is PHPFox, (http://www.phpfox.com). What they really mean is "source code not encrypted" but the licence of all the code is proprietory, and the source cannot be obtained without paying a large sum of money.
Definitely a definition of Open Source that I disagree with!
So, does this mean that MySQL is not an open source company? AFAICT thier business model does not rely on being active members of an open source community... some folks may disagree but time and again MySQL has done things that have alienated parts of the open source community but the machine keeps on rolling... if they were to stop releasing code under the GPL and just give away free version of the compiled binaries I think they keep themselves sustained.
No, I do think that MySQL AB is part of an open source community, a very vibrant I might add. Of course there are very few code contributions to the core product, something which they hope to increase in the future. There is however a very active user community, that scrutinizes the code, publishes additional documentation and applications and tools around the MySQL database.
However, as you can see in my follow up blog post, I do not see dual licensing as the "one true path" either mainly because they naturally limit the amount of code interaction on the core product.
You write: "AFAICT thier business model does not rely on being active members of an open source community..."
? MySQL would have nothing if we did not take an active role in the open source community. We take contributions from the open source community, provide open source software under GPL to the open source community, work with every distro under the sun to ensure they have from us what they need. Furthermore, even though we do not have a development model like PostgreSQL's community, we have a very similar model for QA and bug reporting; community members (as well as customers) report bugs through our open bug reporting website, and QA and testing functions exactly as it would in an open source project. In addition, we're working every day to open up more and more of our roadmap and development model. The reasons our development model isn't entirely open aren't ideological, but technical, bureaucratic, and legacy reasons -- reasons we are actively combatting to bring more light and publicity to the development roadmap and model.
In regards to: "some folks may disagree but time and again MySQL has done things that have alienated parts of the open source community but the machine keeps on rolling... if they were to stop releasing code under the GPL and just give away free version of the compiled binaries I think they keep themselves sustained."
Sure, MySQL has made mistakes in the past, and sure as heck, we'll make mistakes in the future. It's a natural and expected result of a company dealing with conflicting pressures from various parties. But, those mistakes are addressed, and furthermore, the mistakes do not stem from some underlying evilness on MySQL's part, or some deep-seated desire to take advantage of the open source community. To pretend that MySQL is the only entity which makes mistakes (and doing so imply that the PostgreSQL community is free from these conflicts) is naive.
Instead of flaming over the tired debate of GPL vs BSD or fueling myths that MySQL is "out to take advantage of the open source community", let's instead try to view MySQL and its relationship with the open source community as simply a different model of supporting the same goals: of open source code, of providing a quality product/project, of enabling users and developers with free as in freedom software, and of supporting this vast FOSS ecosystem in which we all live.
We're all in this together.
I think you are reading something into my comment which is not there
You write "MySQL would have nothing if we did not take an active role in the open source community.... <snip> The reasons our development model isn't entirely open aren't ideological, but technical, bureaucratic, and legacy reasons"
I just don't feel MySQL needs to be part of an "open source" community to survive. Look at Oracle or Microsoft; both databases have large user communities that help with QA/Bug reporting and evangilizing thier software platforms but don't recieve any code contributions from thier customers (as far as we know anyway). I think MySQL could sustain itself under this model if it wanted to. (Not saying it does, just that it could, and honestly I am not sure why MySQL would argue otherwise)
You also go on to call me naive for my comment about MySQL alienating OSS community members, saying that all projects make mistakes including PostgreSQL, but here I think it is your prejudices that are showing. First I don't believe that some of these moves were mistakes, and I don't think you can call these moves mistakes and wash it away. If something like changing the license of the connection libraries is a mistake, or changing the build/release policy toward the oss version is a mistake, then why hasn't MySQL reversed these decisions? I don't think these moves are mistakes, I think they are intentional decisions made by the company for the purpose of maintaining thier bottom line, and I don't think MySQL should apologies for that. Does NBC apologies when it cancels a TV show with bad ratings? It other contexts the idea doesn't even make sense, so I don't think MySQL needs to get hung up on it; just explain the reasons for the change, realize that this will tick some people off, and move on. And if MySQL does think these decisions were mistakes, then correct them, by changing policy.