There has been a lot of discussion recently on the Open Source Definition, and the use (and abuse) of the term "Open Source." One of the things that has been missing from this discussion is a higher-level overview of where the friction between "open source" and so-called "fauxpen source" comes from: intent.
The Open Source Definition arose out of the ambiguity of the word "free" in "Free Software," as defined by the Free Software Foundation." In the English language, "free" is a loaded term that has two meanings: "freedom", and "costing nothing." It was created to get rid of some of the emotional baggage that came with the intense philosophical point of view of the FSF, but just because the OSD is more "business-friendly" does not mean that it doesn't have the philosophy and intent of openness behind it.
This friction comes from two very different approaches to open source that I think have been missing from a lot of the discussion regarding how open source applies to business models. I'm going to call these "community value" and "monetary value."
In some ways, this dichotomy reminds me of the GPL (GNU Public License) versus the LGPL (Lesser GNU Public License). The GPL is a pure open-source license, which guarantees the user's freedom by making it so that no software that uses GPL software can hide or restrict that use in a derivative work. The LGPL, on the other hand, was a compromise, a pragmatic license which allows one to create free software, but it does not require free distribution of things that link to that software. The LGPL has always clearly been discouraged by the FSF precisely because it compromises the freedoms guaranteed by the GPL.
Open Core: Nurturing Monetary Value ("Lesser" Open Source)
Advocates of using the term "open source" to apply to open-core and similar business models approach open source from a monetary value point of view. It is an approach of pragmatism: you create a business plan, get venture capital to get going, and sell software licenses to (hopefully) eventually pay back the VC firms and continue to grow. In many ways, an open-core business is exactly the same as any other startup. Open Source is not a fundamental philosophical part of the business, it is instead used to cut costs, and to help grow "buzz" about what your company is doing, and perhaps even get some free QA, bug reports, etc. The focus is not on creating a community to draw customers indirectly by improving the product, but to draw customers directly by creating awareness. To meet the demands of the venture capital, it requires a fast-growth, high-yield business model, and the community model doesn't grow that fast.
In the end, how much work you do nurturing a community is directly a matter of how many you can convert to paying year-over-year for software licenses, or whatever other artificial scarcity you create. Once customers have decided they want the features only available in the up-sell ("enterprise") version of your software, they have more resistance to changing to another product.
This is growing monetary value. The open-source community in a "monetary value" business is a side-effect of a marketing push to draw licensed customers. If the community goes away, you still have an essentially standalone commercial business that can continue just as if the community never existed. This is not to say the community doesn't provide value, nor that it doesn't derive value from the open source portion of their software, only that the business plan itself doesn't hinge on the openness of the software.
Open Source: Nurturing Community Value ("Pure" Open Source)
On the other hand, "pure" open source business models (services & support, like my employer) approach business from a community value point of view. This is not to say that pure open source companies don't want to make money -- only that to be successful, we compete with much bigger companies by multiplying our value with that of the community. To be able to be competitive with companies with huge amounts of seed money, we can't afford to treat our community just as a resource to be mined; our community is what makes it possible to support a large user-base with a small number of employees. Our community are like-minded individuals, working on this project with us together.
Since we are not beholden to venture capital, we don't have to get quick returns to maximize stockholder returns. Instead what we need is to work with the community to make great software, and to continue to challenge ourselves to extend and expand our knowledge of that software, so we are able to provide our expert opinions as a service worth paying for. As long as we can pay the bills, give ourselves a comfortable salary, keep customers and the user-base happy, and grow the business, we consider ourselves successful. Our goal is to become the de facto network management platform, and we can do that better by not being in debt to venture firms for years.
On the surface, the value we and our community get from each other may not look that different from that of an open-core company, but looking deeper, there are a number of advantages to the "slow and steady wins the race" methodology we use:
- Everyone Gets the "Enterprise" Version
-
You are not held ransom for features that are only in the for-pay version. You can evaluate the product as it truly is, without time-limited evaluation licenses, crippleware with features missing, or annoying shareware reminders.
- No Software Licenses
-
The software isn't artificially limited, it is capable of whatever your hardware is capable of without an arbitrary restriction because the sales VP decided that's where to draw the line. Note that it's easy to think that Red Hat is a counter-example, since they charge licenses for installed hosts, but from a freedom perspective, you can install the code on as many hosts as you like (ie, CentOS) without restriction, the restriction is only on "official" support.
- Everyone Benefits from Community Involvement
-
When the community adds value, everyone benefits. Users help each other with issues, provide patches, documentation, and so on. The community contribution to OpenNMS has been huge -- not only major features, but default configuration for large amounts of network gear, which OpenNMS now supports out of the box on every new install.
- Everyone Benefits from Commercial Involvement
-
Since the code is 100% open-source, customers who pay for custom development not only get their own value from the transaction, but the software goes back into the mainline, and benefits everyone.
An anecdote: We had a support customer who paid for some custom development for a somewhat esoteric feature. It was originally done in a branch of OpenNMS something like 5 or 6 years ago. The OpenNMS code base has gone through huge upheavals, refactorings, and architectural changes since that feature was created, but since it was released back into the OpenNMS mainline, when they finally upgraded their production system to an up-to-date OpenNMS release, the feature continued to work. If a consulting company did that same custom work as an HP OpenView plugin, they would have to port/implement it all over again after 3 major version revisions of the upstream software.
- 100% Forkable
-
While we make a living supporting OpenNMS, we do not "own" the project. (Although, we do own the OpenNMS trademark -- the realities of business in the US require it if we want to be able to protect the name of the project.)
At best we are stewards, but the list of OpenNMS employees is a fraction of the number of "core" contributors, and the core contributors are a fraction of the number of users who have added value to OpenNMS over the years.
We run and guide the project, but only because the community trusts us to do so. Our job is to earn that trust, by upholding the principles I've outlined above. When we do so, everyone gets value from OpenNMS. If we fail to do so, the OGP will "vote us off the island," and if it becomes bad enough, the source is fully available so it can be forked to something the community approves of.
Either Approach is "Better," but Only One is Truly Open
In the end, it's like the difference between a stable community bank who personally knows every person it gives a loan to, and an investment bank bringing in money fast with high-risk derivatives; they are focused on providing value to two entirely different sets of people. Either approach is better depending on your point of view -- they each have their advantages. However, in the end, I believe it is disingenuous to claim that open-core and similar business models have as much right to the phrase "open source" as pure open source businesses.
Share on Facebook
Great article Ben. Good job. I found it very informative.