The Sharecropper Model for Commercial Open Source

As I was running through my RSS feeds this morning, Roberto Galoppini pointed me to a post by James Dixon (the CTO of Pentaho) on the Beekeeper Model for Commercial Open Source (PDF).

It references Geoffrey Moore’s Crossing the Chasm which I’ve used for years to drive our OpenNMS business, so it caught my attention. I haven’t blogged much about open core for awhile, but I thought this article deserved a closer look.

Since I’ve been labeled a hippy open-source purist, let me state again my contention that companies that label themselves “open source”, including “commercial open source,” need to produce products where 100% of the software code is available under the OSI Open Source Definition via an OSI approved license. If the business model involves generating the majority of revenue by selling “enterprise” software via traditional closed licenses, that software doesn’t meet the definition of open source and should not be called such. I’m perfectly happy with “Commercial Open Core” but let’s not confuse a neo-proprietary software model with open source.

My bullshit meter jumped slightly when I read his list of open core companies:

Companies using the single-vendor or open-core commercial open source models include MySQL, Ingres, Compiere, Open Bravo, Liferay, SugarCRM, Mule, Alfresco, JBoss, Digium, and Zimbra.

The meter only jumped a little because he used the term “or” instead of “and”, but on reading the rest of the article it seems like they are equivalent, so I need to point out that not all of these companies are open core.

Everyone who calls their company “open source” likes to be compared to JBoss since they were purchased for so much money, but I want to stress that JBoss isn’t open core. From their website

you can see that there is no code differences between JBoss Community and JBoss Enterprise. Sure, you get patches, and hot fixes and gobs of benefits by being an Enterprise customer, but special code is not one of them.

Digium is very similar. We love the gang over Digium as they strive to make sure their code is 100% open, and we use their software in-house as well.

It is also my understanding that MySQL, another successful open source company, made 100% of its code available until a year or so before their acquisition by Sun. In that last year I believe that “enterprise” customers got to see code six months or so before it was released into the wild, which while unfortunate, still resulted in all of the code being open. Prior to that you could get MySQL under an open license or you could purchase a proprietary license and imbed it in your commercial product. As long as the open and proprietary version are basically the same code I think this is a legitimate way for an open source company to generate revenue from software licenses.

Someone please correct me if I have my MySQL facts wrong.

In two if not all three cases they pass the CentOS test, and thus I don’t consider these companies to be open core.

Mr. Dixon did score points with his statement on open source software vs. free software:

Open source is not free. In 1998 the term ‘open source’ was coined to replace the term ‘free software’ because many people assumed ‘free’ to mean ‘zero cost’ whereas it was always intended to mean ‘freedom’.

That’s it in a nutshell. Open source requires a different kind of cost, but you don’t get a free (gratis) solution. However, people have taken it a step further to mean that commercial software can be called open source since commercial software is not free, too. “Syllogisms are only partially convertable. While Alma Cogen is dead … only some of the class of dead people are Alma Cogen”.

His entire section on The Principles of Open Source is pretty spot-on. I found myself warming to Mr. Dixon.

Then we get to the meat of his document, his four models of software development:

  • The Wild Hive Model for Open Source Projects
  • The Maple Syrup Farm Model for Proprietary Software Companies
  • The Beekeeper Model for Single-Vendor Commercial Open Source
  • The Honey Gatherer Model for Services/Support commercial Open Source

This is interesting stuff, so please read it for yourself. It is so elegant and comes with nice little drawings that it took me awhile to understand why my bullshit meter was pegged.

Then it dawned on me. Instead of the Beekeeper model it should be called the Sharecropper model. The single vendor controls everything while benefitting from the community, while the community only exists to serve the single vendor. When he writes “In the Beekeeper Model the bee farm provides land, hives, and flowers etc.” it is just like a plantation owner in the old South owning all the land and means of production. The bees are not in control of their destiny, much like some sharecroppers were told when, where and what to plant.

This is at the heart of my problem with open core software. In a vibrant open source community it is the community that controls the product, not the vendor. Mr. Dixon states:

This explains the common practice of the Beekeeper companies to offer some kind of ‘Enterprise Edition’ that includes features not available to the community. These are high-end features that only larger organizations find of value.

Who decides what features are of what value? As I mentioned in my Hyperic post awhile ago their community is screaming for a feature that only exists in the “enterprise” version, yet their needs go unmet. It is obvious that Joe User needs the feature but because it drives software revenue it will never be open. According to Dixon is necessary because

It is clear that the single-vendor model is more costly to set up and operate than the services/support model. It is logical that companies using the Beekeeper Model need to generate more revenue to recoup these costs than a company using the Honey Gatherer Model

No, it is logical that if the only way you can meet your revenue needs is by selling commercial software then your open source business model is broken. Don’t say “pure” open source doesn’t work if the problem is you can’t run your business properly.

There are several other things that just slapped me upside the head:

The community gains open source software they can use for their own purposes. This software has more functionality and more resources than a ‘pure’ open source project could provide. In this way the community profits directly from the company and its customers.

If he means that an open source project with a commercial backer has more functionality, then I’d say “well, duh, of course”. But there is no reason that making money on an open source project is in conflict with being “pure”.

The customers gain higher quality software at a better price. The customers profit from the open source community’s ability to produce high quality software.

In the first statement he implies that in order to produce high quality software you have to have a commercial entity producing it, but then here he states it is the community that produces the high quality software. Which is it?

As far as price, nothing could be better than free, I agree. But if he is talking about customers having to buy enterprise versions of “open source” software the math gets a little hazy.

For example, in our space OpenNMS provides unlimited Standard Support for US$14,995 a year. Zenoss, an open core company, charges US$150/device for a minimum of 250 devices for its “enterprise” software, or US$37,500 a year, over twice as much as we do and limited to 250 devices.

However, if you take our average commercial install of 2000 devices, the Zenoss price would be US$300,000 per year. That is insane – you might as well buy OpenView or Tivoli. Over 5 years the cost will be must less than the US$1.5 million Zenoss will charge. Of course, no one should be paying list price for their software, but it is so wrong to call it open source even if you can haggle it down.

A prospective customer should not have to learn about open source in order to become a customer. The sales and marketing materials should neither hide their open source model nor require understanding of it by the market.

Why shouldn’t a prospective customer “not have to learn about open source”? Aren’t there some serious advantages to open source? That’s like saying Toyota shouldn’t educate its clients on the hybrid synergy drive on its cars. True, the customer shouldn’t have to be able to build one or understand exactly how it works, but I would think the basics of why you would want one should be explained early and often.

Educating the market will be the downfall of the open core business model once people realize that there may be “pure” open source offerings that do it better. After listing the benefits of open source so well in The Principles of Open Source why does Dixon feel it is not important to the buying decision?

Customers are not bees, bees are not customers, and you cannot convert one to another.

With OpenNMS a good portion of our clients are also actively involved in the community. In fact we encourage this. Many, if not all of our customers came to us from the community. With our commercial support offerings, however, there isn’t a requirement of community involvement. What I get out of this statement is that the single vendor company sees the community (the bees) and their customers as separate things, and will focus on the needs of the customer, in order to generate revenue, versus the needs of the community.

Some people assume that all commercial open source models are flawed because the company does not have direct control over the direction of, and development of, the software … The services/support model does suffer from this. The company might pay for full-time developers to work on some of the open source projects that it utilizes but it does not have the same level of influence that the single-vendor model provides.

This has not been my experience. The statement that single-vendor (open core) models have more influence goes back to my plantation owner analogy – the sharecroppers/bees/community are told what to do since the plantation owner controls everything. At the OpenNMS project, influence is based on merit. We have a number of full time developers who both create code and help integrate the contributions of the people outside of our company. Since we get to work on it full time we produce more code which earns us influence. However, every major project decision is governed by the Order of the Green Polo, which got there also on merit (and not always by writing code).

It seems like in the Beekeeper model influence is bought. You, the community, do what I say since I pay for everything. And, by the way, I have to sell software in order to pay for it. It seems to be the antithesis of the open source communities I’ve known.

In summary, I do think the need for a “whole product” is valid, but I don’t think it is necessary to sell commercial software licenses in order to deliver it. The “Honey Gatherer” can deliver the whole product without resorting to commercial software licenses.

Part of my antagonism toward the model comes from the fact that Pentaho sells an “enterprise edition” and thus is an open core/neo-proprietary company, and since those companies have co-opted the term “open source” I am naturally distrustful. It’s like saying “we love the bees, we need the bees, but no royal jelly for you” and I think that is wrong within an open source environment.

But this model is slick and well written and it did make me think, which is always welcome.

6 thoughts on “The Sharecropper Model for Commercial Open Source

  1. Thank you for giving the Beekeeper document so much careful consideration. I think most of your criticisms / antagonisms are because you dislike some commercial open source models and not that you dislike the Beekeeper Model (which in parts is describing a model you distrust). You clearly don’t like the idea of selling enterprise features as a way to accelerate the creation of open source software. This is an ideological issue and I will not waste our time trying to change your mind. My philosophy is different and is more aligned with John Newton at Alfresco:

    I have a few counter points I would like to make about the Beekeeper model.

    You seem to think that commercial open source companies are able to order and direct the community to do its bidding. You make statements to this effect several times: ‘The single vendor controls everything while benefitting from the community, while the community only exists to serve the single vendor.’ and ‘You, the community, do what I say since I pay for everything.’ You are missing the point of the bees in the model. The bees are free to leave the community any time they want to. They can join other communities if they want to. They are in no way restrained like your sharecropper analogy suggests. Your statement is more applicable to the maple trees in the proprietary ‘Maple Syrup’ model. You also make it sound like the community is abused and gets a poor deal. If you paid Microsoft prices for the software that our community has downloaded for free the total comes to over $10 billion (for just one of our distributables). That’s a pretty good deal and anyone in the community does not like it they can migrate to one of the other open source BI projects.

    I think you misunderstood these statements of mine: “The community gains open source software they can use for their own purposes. This software has more functionality and more resources than a ‘pure’ open source project could provide. In this way the community profits directly from the company and its customers. The customers gain higher quality software at a better price. The customers profit from the open source community’s ability to produce high quality software.”

    You seem to think both statements are about quality, but they are not. The first statement is about the scope of the features and functionality. The second statement is about quality.

    I think you overreacted to my statements that customers should not have to know about open source in order to become customers. Most of our customers, during their purchasing decision, compare us with proprietary companies (mainly Business Objects and Cognos). It is easier for these customers if they can do an ‘apples to apples’ comparison between us and them. In this scenario, forcing information on them about our business model when they have no interest in it only confuses them. To use your Toyota example: yes they should educate their customers about the advantages of a hybrid, but should fully understanding that education material be a prerequisite to buying one? No, that would only hamper sales. I’m just saying the customers should be able to buy without understanding the business model if they want to.

    In reference to my statement: “Customers are not bees, bees are not customers, and you cannot convert one to another.”
    You state: “What I get out of this statement is that the single vendor company sees the community (the bees) and their customers as separate things, and will focus on the needs of the customer, in order to generate revenue, versus the needs of the community.”
    I’m not sure how you can draw that conclusion. Your statement is in direct conflict with other statements I make like: “a single-vendor commercial open source company must perform a balancing act and grow the community and customer base together“

    This is subtle point and so I will explain it some more: As with OpenNMS a good deal of our customer’s employees are actively involved in the community and many of our customers came via community involvement. But here is the critical point: we have the customer relationship with an organization, whereas the community relationship is with a person. If a community member leaves a customer and goes to a different company what happens to the support agreement? Does it automatically transfer to the new company? Of course not. The support agreement stays with the customer organization no matter what they community members do. So my statement is really saying you cannot convert a community member into a customer (but you can convert the organization the member works for) and you cannot convert a customer into a community member (but you can convert employees). The distinction is slight.

    Thank you again for your feedback, I will try to make certain sections of the document clearer.


  2. It’s not really ideology but a case of definitions. I really hate being cast in the role of some sort of Richard Stallman idealist when all I am asking is that companies that call themselves open source actually base their business on open source code. Your “commercial open source” model is basically a dressed up commercial software model, and pretty much could be applied to a company like Microsoft which produces tons of code each year under OSI approved licenses. It does so in order to drive more business to its commercial software products which is the same incentive shared by your commercial open source companies.

    In my space (network management) this is very similar to what HP had many years ago with OpenView. They published an API that allowed third parties to get involved with the software, much to HP’s benefit. But it wasn’t open source and should not be considered in the same way.

    The problem I have with the Beekeeper model is that you make many claims that seem to indicate that a pure open source company isn’t viable, such as with your definite bias against the “Honey Gatherer” model as not being able to supply the same level of product.

    It comes down to a question of control. With software that is truly open the community has the ability to take it away at any time (I call it the CentOS test). With “commercial open source” software enough of the code is hidden that this isn’t possible or viable. There is a difference in “bestowing” software and “gifting” it.

    And let’s be honest about some of your numbers. I’ve never understood the open core obsession with downloads. You state “If you paid Microsoft prices for the software that our community has downloaded for free the total comes to over $10 billion (for just one of our distributables)”. Free, as in gratis, will result in way more downloads than if the end user had to purchase the software. Dan Ariely, in Predictably Irrational, ran experiments that showed even if a person is offered an amazing deal at a price, they will often choose something free instead. It’s a claim similar to what the RIAA uses when trying to prosecute illegal file downloads. Do you think that all those people who downloaded Beverly Hills Chihuahua would have paid to see it? (grin)

    My goal within open source is not to create cheaper software, but to create better software. I want to do this by *changing how software is made*. If, as you state, “customers should be able to buy without understanding the business model if they want to” you seem to be implying that customers should view your product just like they view any commercial software product and make their purchasing decisions the same way that they always have. I, on the other hand, want to shout from the rooftops “Free yourself from vendor lock-in. Free yourself from per-device pricing. Take control of your software”. To me commercial open source seems like the same old revenue model of selling software licenses with the illusion of control.

    To be fair I did take many of your comments in such a manner to highlight our differences, and I believe over a couple of beers we’d find more in common than we are different. But the one thing we must disagree on is your definition of commercial open source allows for the sale of closed software licenses and I don’t think that has any place in a open source project (with the exception of the dual-licensing model where 100% of the software is still open).

    My reasons are simple: since businesses exist to maximize revenue, successful businesses will operate in a manner that increases sales. In the case of commercial open source, this means getting more people to buy software, which is at odds to the goals of a open source software community that exists to make the project more powerful. You can’t tell me that your community is better off having to buy your software. Sure, in order not to just totally piss off the community you will have to throw them some bones, but when push comes to shove, when revenue is based on software licenses open software will lose.

    Take your example of Alfresco’s John Newton. On March 31st he posted that they were moving back to an open core model. This was a day after a press release that stated “Alfresco today announced that it closed 2008 with 103 percent year-over-year revenue growth, as well as 92 percent growth from Q407 to Q408”. To me it means that this kind of growth was not acceptable. They need to generate even more money. While before all of the software was available as source, now certain features would be hidden away to drive revenue.

    I can’t see that as benefiting the community, no matter how you dress it up.

    You can say that the community is free to add features to the product, but are they? Suppose a large portion of revenue was generated by feature A, and someone in the community wrote an amazing implementation of feature A. Would you accept it into your code base? Could you? What if their implementation of feature A sucked, but was workable. What then? Do you release the sucky version to your community, thus devaluing your product, or do you release your good version, thus decreasing revenue? Of course they could always fork it, but there is a lot of inertia to such things so it rarely happens (Mambo/Joomla being one example).

    I guess it comes down to whether one prefers a democracy or a benevolent dictatorship. Again, a pretty harsh example but one I know from experience. I still play back in my mind the image of one open core CEO saying “if the community doesn’t like it, f**k ’em, we made the software.” It is a sentiment so foreign to my experience.

    My goal is to prove ’em wrong, not by writing blog posts but my making OpenNMS a hugely successful company, and to do it without going the open core route.

    Anyway, thanks for taking the time to respond to this over-educated country boy out in North Carolina. The last word is yours to have if you want it.

  3. Hi Tarus,

    I started out with a short ‘last word’ but it got longer and longer…

    I concur that we probably agree more than we disagree. We are both trying to provide better software, better value, and better service in our markets. We believe that transparency, openness, contributions, and community are important. We believe that the proprietary model is inefficient and expensive. We have devoted immense time and passion to create open source code. We are very proud of our code and our communities. Our communities are happy, diverse, and vibrant. We are trying to disrupt entrenched and expensive segments of the software market using open source approaches. But the terms you use about our model – ‘hidden’, ‘misleading’, ‘dressed up’, ‘broken’ – are rather judgmental. You use them because less than 100% of our code is in open source. You are only happy with your ideal ratio of 100%. I truly appreciate your passion on these topics but if you hate being cast as an idealist, the best thing would be to stop sounding like one 😉

    I would like to point out that the majority of open source projects (particularly the small ones) are not run as democracies, they are run as benevolent dictatorships because the core developers call the shots. Also, for what it is worth, I have found it easier to contribute to commercial open source (JBoss, Alfresco etc) than to projects like Apache.

    I definitely need to make a few things more clear in the document. You have helped me to identify a few of them, so thank you for that.

    When I talk about ‘pure’ or organic open source I am talking about open source projects with no commercial model at all – your average sourceforge project. This is the wild hive model. In my document there is no ‘pure’ open source company: only pure open source projects and commercial open source companies. The OpenNMS Group is a commercial open source company (beekeeper).

    In the beekeeper model having enterprise features is entirely optional. The main point is that most of the code is written by, and most of the resources (website/wiki etc) provided by, a group of people that have a commercial interest in the project. The OpenNMS Group wrote most of the code for OpenNMS, it also pays for, so in my mind OpenNMS operates under the beekeeper model. Amongst companies operating a Beekeeper model there are many variations including dual-license, support-only, and open core etc. I obviously need to make this clearer.

    In the gatherer model the company provides support and services around open source projects and they contribute little (maybe a few patches) or nothing to those projects. Search in Google for ‘apache support’ and nearly a million hits come back. Some of these companies probably contribute to Apache, but I bet many or most of them do not. The OpenNMS Group wrote most of the OpenNMS code and so do not fit the gatherer model.

    In terms of freedoms, I think people should have the freedom to do whatever they want with their creations. If they want to put them into open source, they should be able to. If they want to sell them as proprietary software, they should be able to. If they want to mix and match, they should be able to. I think it is up to each group to decide, based on their market, their competitors, their feature load, their direction, and their goals what the best decision is. The OpenNMS Group is to be commended for the democratic way features are developed and your “Spend Less Than You Earn” growth model. But to be any kind of a player in the BI market this growth model is not feasible.

    Commercial open source is a new frontier at the moment. The models, terminology, taxonomy, and strategies are all in flux. In another 10 years maybe things will have settled down and we will all agree on the same terms. At this moment, it seems, you and I disagree on some of the terminology. I think the term ‘commercial open source’ covers a number of different commercial strategies that are all based on (but not necessarily exclusively based on) an open source code-base. I think that a company that has put millions of lines of code into open source but keeps 100 lines of code for its customers can be called ‘commercial open source’, you disagree. You think a company that has put no code into open source but makes money providing support can be called ‘commercial open source’, I am doubtful. Once everything has settled out maybe there will be consensus on what ‘commercial open source’ means. Time will tell.

    Again, thanks for the feedback, I’ll work it into draft 2 and give you acknowledgment.


  4. Digium also sells commercial extensions to Asterisk – for example, the G729 codec implementation for Asterisk requires a commercial licence from Digium, and cannot be distributed with the GPL server.

    Voip-Info has a summary of the situation with relevant links:

    Does this make Digium an Open Core company in your definition, or is this a fringe grey area case? Mark’s language in the email linked in the above page makes Digium sound like an Open Core company (“I am […] appalled to see [a user] producing a product to circumvent the very revenue stream which makes it possible for us to do so and to offer the LEGAL licensing of G.729 to the community.”) but certainly G729 is not necessary to make Asterisk function, so perhaps this is different in your eyes?


  5. I would not consider Digium to be open core. From the mouth of Mark Spencer:

    Asterisk is and always will be fully Open Source. As you know, the Business Edition contains no code that is not available in Open Source (other than the copy protection obviously), but there is not necessarily a single Open Source version that directly corresponds to a BE release.

    Having all of the code available is my only requirement for a company to call itself “open source”. It must pass the CentOS Test and it appears that Digium does, since a third party could spend the time to create its own “Business Edition” for free. I’m cool with an open source company making its code available under dual licenses as well, as long as the code is virtually the same.

    Now, what you bring up is totally different. Digium wants to be able to utilize the G.729 codec. Unfortunately, that codec is not available for free. Let me state for the record that I am totally cool with commercial software. I’m not going to run down to the Apple Store and ask to see the source to iTunes. If some commercial software company wants to spend the resources to create a new codec, program, whatever, and wants to charge for it to recoup their costs, let ’em.

    In order for Digium to offer this technology to its users, it has to license it and that license involves a cost. Mark’s point is that this is the only way that Digium can legally make this technology available, and it seems like the community is attempting something that is less than legal (I haven’t studied all aspects of this so I’m not really qualified to voice an opinion on the legality of the suggested “workarounds”).

    This codec is not core to Asterisk. We use Asterisk and don’t pay software licenses for it. So, to answer your question, this is different in my eyes. For example, if you created an open source middleware application that needed to connect to a Microsoft Exchange server, perhaps the only way to do that would be to license some code from Microsoft. If you, in turn, had to sell that “connector code” to legally distribute it, I don’t think that would make you open core. Ubuntu ran into a similar issue when it considered making commercial drivers/codecs/etc available for a fee within its operating system distribution.

    The difference is motivation. In the Digium case they want to provide superior voice quality to their client using this codec in order to drive revenues for their services products. It is not Digium’s intention to generate the majority of their revenue from the resale of G.729 licenses. However, with many open core companies the business plan is to generate most of their revenue from the sale of “enterprise” commercial licenses, which I claim is at odds with open source.

    In the case of G.729, I’d love to see an open source project create a superior codec (in fact, I think that universities that work on software using public funds should be required to license their discoveries under an OSI approved open source license). This could be plugged in to Asterisk and the demand for G.729 licenses would disappear. Digium would still be around and going strong, and the point would become moot.

    At OpenNMS we want to be the default network management platform for everyone. In order to do that we will not only accept but embrace integration with commercial software. We have gone out of our way to make wire-protocol integration points available throughout the product, such as with our new RESTful interfaces for all of the OpenNMS data. While I can’t think of an instance where we would have to license and sell a piece of software for such integration (our industry is more focused on open protocols and there really isn’t anything equivalent to a codec), the commercial vendor may require a fee for the integration they produce to OpenNMS, and that’s cool.

    Sorry that I’m as long winded as usual, and I hope I’ve answered your question.

  6. Digium’s motivation in offering the patent-encumbered G.729 codec is to make it legally possible for the codec to be supported by Asterisk. The product page explains in detail the advantages of the codec (toll-quality voice with only about 35% the bandwidth requirement of uncompressed G.711u). The $10 per channel price for a perpetual license is a bargain given Digium’s costs to cover patent licensing and indemnification plus associated engineering, QA, and support costs — currently they offer supported, optimized builds for 20 different 32-bit and 64-bit x86 CPUs. Without knowing these costs or any sales figures, my guess is that Digium cannot be making much if any profit from sales of G.729 licenses.

Comments are closed.