Carlo Daffara has a well thought out post on open source business models that mirrors a lot of what I’ve been thinking, although Carlo writes his thoughts up more succinctly than I ever do. Money quote:
I believe that in the long term the market equilibrium will be based on a set of service-based companies (providing high specialization) and development consortia (providing core economies of scale).
It has been a plan of ours for some time to create The OpenNMS Foundation, a truly independent corporation to hold all of the OpenNMS IP, and then to focus even more of The OpenNMS Group’s efforts on providing high-value services. At the moment it is all I can do to keep up with the paperwork involved with one corporation much less another, and since the majority of our code is either contributed by The OpenNMS Group or by individuals, there hasn’t been a overwhelming need. Eventually I think this independent organization will be a requirement in order to get other large organizations to contribute to OpenNMS, and once we get a suitable amount of interest it will make sense to move forward with it.
This is something you’ll never see the open core software companies do. Their revenue models are too tied up in selling software licenses to allow the code to be fully open. I know I’ve said stuff like this before, but today I came across a great example of why the “open source” part of open core software is strictly a marketing term.
A person named Uniroca posted this on the Hyperic mailing list:
Tell me it ain’t so Joe! To evaluate the tool for my company’s systems, I’ve downloaded and installed 5 agents and the opensource server on 5 RH Linux hosts. The agents installed great, and the server installation was a breeze–100% easier than Nagios. However, I am running into wall–is there some way to apply an alert against mutilple resources? For instance, I want to put a 100% Full Filesystem Alert on all 5 hosts for each of their 10 filesystems. After working on it for a days, I am incredulous that the opensource tool does not appear to do this except for the admin to go through each filesystem on each host and create a new Alert. From an OS monitoring perspective, this is a complete showstopper. Unless there is a way, I am going to have to go back to Zenoss or Nagios (which I really don’t want to do).
A reply came from Mirko Pluhar:
This feature has been requested a thousand times (even one time last week) for the Open Source Edition and to put it in a nutshell: No, there is currently no way to add alerts against multiple resources.
If you read the following page http://www.hyperic.com/products/monitoring-comparison-chart.html there is a feature called “Global Alert Templates for Groups of Resources” which is exactly the feature you need and it is only available on HQ Enterprise Edition.
So, here is a feature that has been “requested a thousand times” but it is not in the “open source edition”. It is a feature that is necessary for a guy who is just trying to monitor five servers, much less hundreds or thousands.
Guess what? You won’t ever see this feature in the open source edition. It ain’t gonna happen. This is because Hyperic derives its revenue from selling the Enterprise Edition of its software which isn’t open source, and it is features just like these that drive people to buy it. Why would they want to threaten their business model by providing this feature?
In fact, even if someone in the community wrote this feature I doubt it would ever make it into the open source part of Hyperic. If they were willing to accept the contributed modification, why would they need to keep their version separate?
Before Andrew Lampitt coined the term “open core” I used to call it the “shareware” business model. Shareware was an acceptable way for smaller software firms to drive attention to their products. They would release a version with some sort of limitation, such as a timer that would only let you use the product for a certain amount of time or less features, and encourage people to share this limited application. The idea was that you could get a taste of the product before plunking down a bunch of money for it.
But the term “shareware” was often associated with lower quality software than, say, the commercial software you bought that came in a box. The term “open source” has a much greater cachet, which is why these companies adopted it.
There are some detractors of this model that go as far as to call it “crippleware”. A major complaint is that it isn’t the community that determines what features are added to the product, but instead it is the commercial software entity. This goes against every experience I’ve had with truly open software.
What really confuses me is that I don’t know why, outside of the marketing bump, these companies choose this model. Why not just go with a commercial software model with a really good API? Commercial software isn’t necessarily bad, it’s just that calling it open source is misleading. Plus, the open core model is so much more fragile because there is some code out there.
In the case above, what if someone forked Hyperic and added this feature. I doubt it would be that hard, probably much less development work than it would take to buy a commercial license for, say, 100 servers. And let’s say they went out and ranked the top ten features that drove people to buy the enterprise edition and added them as well. Just to use a round number let’s say I could do this for US$1 million. I’m not saying I can, but US$1 million could buy me 8-10 solid Java coders for a year and I bet a lot could be accomplished.
My assumption is that these open core companies want to be acquired. Let’s say the price is US$100 million or more. Why would I want to buy such a company if the revenue stream could be threatened by so much less money? In order to keep ahead I’d have to write even more code, but it would have to be closed source so I could sell it per my business model, which requires an investment in programmers, which leads to shrinking margins, and I’m still threatened by the possibility of a fork.
I, as an investor, would much rather invest in commercial software companies like Solarwinds or Nimsoft that have tight control over their IP which would be much, much harder to dilute.
With OpenNMS, if thousands of people request a feature, you can bet it goes to the top of the list. For the OpenNMS Group, we are a services company, so our IP is in our knowledge of solving management problems, in adding new people to our team quickly, and in community building – not in software. Our expertise is in forging solutions that can’t be met with off-the-shelf applications, and we can get paid a premium for delivering scalable solutions quickly and with a low total cost of ownership.
While that won’t make us a US$1 billion company anytime soon, I believe that has value.