Fauxpen Source

Sometimes I think my only true talent is an uncanny ability to surround myself with talented people. One of those is a friend of mine who recently moved back to North Carolina from New York City, and to help celebrate that move, last week I invited a bunch of smart, intelligent and devilishly witty people over for a “Dos de Mayo” party.

Of course it was impossible not to talk “shop” at least part of the time, and I’m sure I held forth on open source at least a little. My friend Phil was listening, and he wrote down on his Blackberry the words “fauxpen source“.

I thought it was brilliant.

Now a Google search turns up a number of references to “fauxpen source” prior to Phil, but I’m willing to put it down as one of those independent discoveries, like Leibniz and Newton with calculus, and give him credit for it, especially since Phil spends little time in the software business, much less open source software, and it is doubtful he picked it up elsewhere.

The three people who read my blog know that I am pretty particular about the use of the term “open source”. The term was coined as a more business friendly alternative to “free software”, however many have tried to distance it even further by applying it, if not to commercial software, at least to commercial software business models.

Open source is more business friendly since the English word “free” is pretty loaded. The classic example is that it can mean free as in freedom (libre) as well as free as in beer (gratis). Dan Ariely devotes a whole chapter to “free” in his most excellent book Predictably Irrational, and since deploying open source software is not without cost (in either time, money or both) it can be misleading.

But I am hoping to take a page out of Carlo Daffara’s book and present a rather emotionless explanation for why open source software is free software, and it is wrong to imply otherwise.

Given that “open source software” is defined by the OSI’s Open Source Definition (OSD), which consists of ten criteria, and given that “free software” is defined by The Free Software Definition, which consists of four freedoms, I will attempt to map one onto the other. I expect it to be easier than mapping the integers onto the real numbers, but one never knows.

Before I get started, I want to point out the Introduction to the Open Source Definition, which states:

Open source doesn’t just mean access to the source code. The distribution terms of open-source software must comply with the following criteria

Note that it doesn’t say “should comply” or “it is suggested that it meet” but specifically uses the word “must”.

Freedom 0: The freedom to run the program, for any purpose.

The OSD focuses more on distribution issues than use, but the 6th criterion states “The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.” I would say this is the same as Freedom 0.

Freedom 1: The freedom to study how the program works, and adapt it to your needs. Access to the source code is a precondition for this.

There are a couple of criteria in the OSD that map to this. The 2nd requires that the source code must be made available (“The program must include source code”), and the 3rd requires the ability to make derived works (“The license must allow modifications and derived works”).

Freedom 2: The freedom to redistribute copies so you can help your neighbor .

This is met by the very first criterion, Free Redistribution, which even includes the word “free”. Note that there is no altruistic language such as “help your neighbor” in the OSD, which also makes it more palatable for business interests.

Freedom 3: The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits. Access to the source code is a precondition for this.

The Free Software Definition separates adapting code to one’s needs from distribution of those changes. It’s an important distinction, since the right to modify code for personal use is much different to the right to distribute those changes.

The OSD combines the two with criterion 3. The first phrase “must allow modifications and derived works” covers adaptation and the second phrase “must allow them to be distributed under the same terms as the license of the original software” covers distribution.

The OSD adds a large number of other requirements, which I think makes open source even more “free” than free software, since it specifically spells out additional freedoms. These criteria also are very business friendly, such as number 4 about the integrity of the author’s source code. Integrity is a huge part of any business, and it is one reason that while we encourage the use of the OpenNMS software by anyone, we strongly protect the OpenNMS trademark. The OSD allows a license that requires derivative works to carry a different name (we use trademark law to enforce this since the GPL does not have this provision).

This analysis shows that open source software is free software, and I welcome anyone to point out the flaws in my logic.

In practice, I think it is pretty easy to identify open/free versus commercial/non-free software. Where it gets difficult is in identifying open source vs. commercial software companies.

In the US it seems to be a growing trend for companies to adopt a “fauxpen source” business model – using the term open source to market their commercial software offerings by providing some of the code under an OSI-approved license, but basing their revenues on the distribution of software under commercial licenses. I claim that a successful company exists to maximize profit, and if that profit is based on commercial software it is disingenuous to label the company “open source”.

Commercial licenses violate a number of the OSD criteria, since one can’t freely distribute, modify, or sometimes even see the code. The fact that some of the code is available is irrelevant: both Google and Microsoft distribute thousands if not millions of lines of code each year under open licenses but neither company would label itself as “open source”.

Having read and re-read the Open Source Definition, I have to marvel at both its simplicity and completeness. It would be a shame to let a small but well-funded and vocal group of people pervert it to their own ends.

UPDATE: The original purpose of this post was to demonstrate that open source software is also free software, and that it is at odds with commercial software. So here is a syllogism that supports my conclusion:

Open source is free software.
Commercially licensed software is not free.
Therefore, if your business (main revenue source) is selling commercial software, you are not open source.

Does that help any?

Sour Grapes

Matt Asay has a way of pushing my buttons, and while I had pretty much decided to refrain from letting him rile me up, a post he made today saddened more than angered me. Since this was a new emotion with respect to Matt, I thought it was worth exploring.

He starts off with a question from a survey:

Does open source really needs [sic] individual contributions from developers to survive?

As written, of course the answer is “no”. It’s a loaded question. If one guy sits down and writes an application, and then publishes it under an open source license, why would he need anyone else? What would it mean for him to “survive”? Feed himself? Feed his family? Have a multi-million dollar exit?

A better question is “Can open source benefit from a vibrant and active community?” Of course the answer to that is “yes”.

He then goes on to state:

… “community” is perhaps the most overhyped word in software, one that doesn’t deliver nearly as much value as marketing people would like you to think.

Heh, I really don’t listen to marketing people at all, but I would have to agree that the fauxpen source crowd often abuses the idea of community as much as the term “open source”. The fact that marketing people can’t squeeze value out of community doesn’t mean that communities don’t have value.

Matt continues:

… we tend to think of community as a group of people that actively contribute code to a project.

I don’t know who “we” are, but that is a very, very narrow definition of community. I consider anyone who uses OpenNMS and finds some value in it to be part of our community, not just the people who contribute code.

Then we get to the “moron” section of the post. Matt quotes Linus Torvalds:

… anybody who argues against free-loading in open source is a moron.

Argues against? Heck, I embrace free-loaders. They’re great. I want as many people as possible to download and use OpenNMS – for free. Why should someone have to have a background in computer science to get value out of open source software? Of course projects like the Linux kernel, which is used by millions, have relatively few people contributing back. Heck, I’ve been using it for over a decade and I wouldn’t know how to recognize a kernel bug or how to report it, much less fix it.

Likewise, OpenNMS is a complex piece of software and it takes some intense dedication to get to the point where one can contribute code. I don’t expect anyone to sit down and suddenly dedicate hours and hours of their life working on it. Plus, I would never expect someone to contribute anything to OpenNMS unless they started out with some serious “free-loader” time.

There is more to the post where it seems Matt is arguing that only corporate, commercial software companies can create successful software products, but I’m living proof that this isn’t the case.

Seven years ago this month, I started my own company focused on OpenNMS. It was me, a laptop, some space in the attic and a book on Java. It was the community around OpenNMS, especially the members of the Order of the Green Polo, that kept OpenNMS (and me) going, and it was also the many users, such as those in the Order of the Blue Polo, who urged us to keep going.

And it has been an amazing ride. Speaking of community, this week Alejandro Galue has come up from Venezuela to work on OpenNMS: just because he wants to, not because I am paying him.

Considering the tensions between the governments of our two countries, it’s amazing how there is absolutely no tension between us. People working together on a common goal like open source seem to transcend national boundaries.

At OpenNMS, we are replacing products from HP and IBM at some of the largest companies in the world. We have another client who is going to imbed OpenNMS in their management offering. We’ve been profitable since Day One and we continue to grow year after year. This was due to a lot of hard work on our part, but we wouldn’t be here if it weren’t for our community. It’s not hype – it’s just a fact.

Wikipedia defines “Sour Grapes” as “to deny desire for something one cannot attain.” I am saddened that Matt apparently has never truly experienced being part of an open source community, or else he wouldn’t be able to dismiss it so quickly. I am pretty certain that this is because Alfresco has built a business model more aligned with commercial software than open source, and they haven’t spent the time necessary to build that community, or perhaps they don’t have the skills or the temperament. Commercial software licensing and business goals are at odds with open source software and associated business models, and that will be hard if not impossible to change.

Just because you’re doing something wrong doesn’t mean it doesn’t work. When communities do work, it is mighty sweet.

Oracle Buys Sun

I finally managed to crawl out of bed this morning (after pulling a muscle in my back this weekend while putting in the vegetable garden) to find out about the Sun acquisition by Oracle.

I don’t have any strong feelings about this one way or the other, but I think in the long run it can only help Java. OpenNMS is written in Java, so we’re kind of vested in its future.

While I thought Sun paid too much for MySQL, I think Oracle got this one right. The best analysis I’ve seen so far is from Larry Augustin, so if you’re interested in such things be sure to check it out.

UPDATE: Monty weighs in.

Medsphere Gets a Microbus

Okay, my day was going pretty well. I’m am trying desperately to finish an RFP. I’d caught up on mail and tickets, and although I’d rather be outside (since it is a beautiful spring day) I finally got focused on getting my reply written.

I take a little break and what should I find on my RSS feed but a post by Matt “I live to press Tarus’s buttons” Asay featuring a cute little VW microbus and my blood pressure went skyward again.


Photo yoinked from here

If you want to see me rant about the abuse of the term “open source” you really have to look no further than Medsphere. In fact “Remember Medsphere!” is my rallying cry to caution other entrepreneurs about being careful while seeking investment.

Medsphere was founded by the Drs. Shreeve (Scott and Steve). They accepted investment, proceeded to develop their software, released it on Sourceforge and were promptly sued by their investors for US$50 million. The suit listed twelve counts including violations of RICO, which if found true could have left the Shreeves penniless.

An interview with Fred Trotter gives a good summary of the situation.

They eventually settled the lawsuit, but I don’t know the details. Steve Shreeve blogged about the situation while he was still involved with the company, but he hasn’t posted in nearly 2.5 years and as far as I can tell he and his brother are not involved with the company they founded. I can’t help feeling that he knew these actions had destroyed Medsphere’s open source credibility and he was trying to boost it back up, but his non-involvement with the company seems to provide proof that it wasn’t to be.

Cool bus or not, I find it hard to believe that Medsphere is the example we in open source should be striving to emulate. It is the prime example of a company using the term “open source” to market proprietary software. It takes more than a hippie bus to embrace hippie ideals, but I think in almost every value system Medsphere got it wrong.

Neo-Hippies?

I live in Chatham County, North Carolina, USA. This is surprising to me, since I grew up less than an hour away in a town called Asheboro, and when I turned 18 I wanted to be as far away as I could. I moved to Los Angeles. I didn’t expect to end up this close to where I grew up.

Chatham is an interesting place to live, and I often describe it as one-third redneck, one-third hippie, and one-third Latino. I can find a lot to love in all three aspects of the culture.

Working on open source software in Chatham appeals to the hippie aspect of the culture, but I really don’t view myself as a hippie. However, I do embrace such hippie ideals as personal freedom, concern for the environment, community and cooperation.

These ideas are not incompatible with capitalism, although many think they are, especially the environmental aspect. The problem is that often there is no direct way to evaluate the costs or value of things like “clean air” and “community” when trying to determine the best way to maximize profit, so these things can be exploited.

I’m trying to come up with a term to describe people who are attracted to hippie ideals but can combine them with the capitalist ideal of maximizing return on investment. It’s sort of like that scene in A Beautiful Mind where John Nash demonstrates that if he and his friends cooperate the overall benefit to the group is greater than if they act alone.

What should we call ourselves? Neo-Hippies? Pragmatic Idealists? The practitioners of conservatism popularized by the American President Reagan and Presidents Bush are called Neo-Cons – I’m looking for something like that.

What does this have to do with open source software? True open source software provides just such a cooperative benefit, since both the creators and the consumers of software have an ownership stake in the project.

While not always true of consumer software, enterprise software has tall barriers to entry and exit. If you have a large company running on Windows, it is not easy to switch to, say, OS X. Enterprise software also tends to be expensive. I once worked with a large bank, and the network manager spent nearly US$1 million on an application called Concord Network Health. While not a bad app, it was expensive, and when I was hired to install it I realized that the manager had made a bad choice. The information he was interested in was not possible to easily acquire with the software.

But there was no way they were going to scrap the project after spending so much money on it. In fact, they kept spending money on it in yearly maintenance costs in order not to “lose” their investment due to lack of upgrades and bug fixes. Even after the manager was fired a couple of years later, he still defends the decision.

In the meantime, Concord made gobs of money and made their investors happy. While not strictly a zero-sum game, in this case (and in many, many others I can name) the software vendor profited much more than the end user.

While it is rare for a vendor to seek to actively screw their customers, it is the profit aspect of proprietary software that really appeals to the open core folks. They want the benefits of open source and community, but they also want the advantages of vendor lock-in and software license revenue. My claim is that having that business model within the framework of maximizing profits means that at some point the community will suffer, and we’re back to the zero-sum game.

True open source software gets rid of this dichotomy. By lowering the barriers to entry and exit, it changes the dynamics of the vendor/customer relationship. The benefits to the vendor increase proportionally to the benefits to the community (and thus the customers), and not tangentially.

Sure, open source is not without cost, but without huge up-front license fees it is much easier to choose a different solution. Without required maintenance fees it costs a lot less to own. And being open source, it is often easier and less expensive to add the functionality you need than to seek out a different solution.

But many people seem to think that adopting a pure open source business strategy goes against capitalism. Sure, I’ll grant that it is a lot harder to make money fast, but in the long run I believe the payoff will be greater and more sustainable.

I didn’t start this post with the idea of ending up rehashing my open source v. open core beliefs (I plan to prove the validity of the pure open source business model by making OpenNMS incredibly successful, not by writing blog posts) but instead to focus on a businessman with a social agenda vs. a pure profit one.

Specifically, Lyle Estill.

Lyle is a local legend. At times he is pure hippie. Catch him on a work day and you’ll find him in dirty overalls. At other times he is pure capitalist. Catch him at a business meeting and he’s dressed in “dry clean only” finery rivaling my own collection of Armani.

He’s a salesman, a metal sculptor, a chess player, a writer and founding member of the grassroots biodiesel movement. I have rarely met a tougher negotiator or a person more focused on the bottom line, yet in almost everything he does there is a social angle to it.

He was recently quoted in USA Today (an OpenNMS client, I might add) on the resurgence of a local currency we have called The Plenty. Unfortuntely, the quote was wrong. He said we are a “whacked-out little town,” meaning a little odd but in a good way, which got translated as “wiped-out little town,” which doesn’t sound good at all. Now, when the Telegraph in the UK runs the article, the headline is “Struggling US towns print their own currency“.

(sigh)

We’re not struggling. In fact in the face of this recession I’d say we’re doing pretty well. Part of that is due to our emphasis on community.

Communities in general are becoming more prevalent. With the widespread availability of broadband internet the geographical barriers are gone and sites likes Facebook are seeing record traffic. In software especially, the role of the user community is getting a lot of attention. I don’t think that anyone will disagree that at least for enterprise software, in the near future there will be some component that is open source in order to foster just such a community.

But a traditional capitalist might see community as something to be manipulated, if not exploited, much like clean water or air. That could result in some short term gains but they will be at the expense of long term gains as the community learns that they are being manipulated.

With the rising importance of communities, there will be those of us that see that vibrant, independent and empowered communities go hand in hand with maximizing profit in the long term. That money and ideals don’t have to be mutually exclusive. But what should we call ourselves? Neo-hippies doesn’t seem quite right.

Oh, and in case anyone is counting, Lyle is rather financially well off. He demonstrates that wealth and community is not an either/or situation. I’m just trying to follow in his footsteps.

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.

Buy vs. Build

I was talking to a potential client the other day and the question of “buy vs. build” came up.

I have been saying for several years now that software (all software) will eventually become either open source or a commodity product. The days of expensive “enterprise” software will be over, perhaps not tomorrow, but within the next ten years.

But the “buy vs. build” decision won’t go away. Organizations will still have to decide if they want to try and purchase the software to solve a particular problem (the commodity side) or do they want to build their own solution (using open source).

In the past, “build” meant to build the system from scratch and “buy” included taking off-the-shelf software and configuring it to work in the environment. With the increased popularity and power of open source software, it has become a whole lot easier to build a solution in house (since one doesn’t have to reinvent the wheel), and with the availability of broadband networks, the buy solution now includes outsourcing the whole thing to another vendor.

So I’m talking with this client and it was really hard to determine if OpenNMS would be a good fit. Since we are a services company, going through our sales process is a bit different than with buying software. If you buy a piece of software and it doesn’t meet your needs, the vendor still profits, as does the salesperson, so they have the incentive to sell as many licenses as they can to anyone they can.

With our business model, if we try to put OpenNMS into a place where it doesn’t belong, we just end up doing tons of support. Compared to a situation where OpenNMS is a good fit, these clients would end up costing us money. While we like money and money is good, it is not worth forcing OpenNMS to fit where it doesn’t.

There are several factors that go in to the buy vs. build decision for a management solution, and often it is not possible to determine them on a phone call. Size plays a big role, as a small organization, especially one without a technical focus, is much better off either outsourcing the whole thing or buying a basic solution like WhatsUp Gold. Larger institutions should opt for something like Solarwind’s Orion or if they are heavily Windows focused, Nimsoft’s Nimbus.

But for many larger organizations and especially those at the carrier level, the business network is so unique that no off-the-shelf product can be made to scale or to fit their business processes. For them there really isn’t a “buy” solution, although in the past the enterprise software vendors have tried to sell one.

But size isn’t the only factor, nor is it even the main one. The true measure of a buy vs. build decision comes down to your people.

I’m not sure when “people” became a bad word, but as far back as I can remember companies have been trying to reduce the number of people in their IT departments. Perhaps it was because they had a roomful of “screen monkeys“, or perhaps it was because, especially during the bubble, anyone in the industry was very expensive. But in my experience having a few good IT folks coupled with the right tools is the best way to manage your information infrastructure.

But how to do you ask that on a conference call? How do you ask “Hey, do you have anyone on your staff who really enjoys solving problems with technology and they have the skills to take something like OpenNMS and run with it?”

If you read our Order of the Blue Polo testimonials (keep ’em coming) you’ll see some that praise the “ease of use” of OpenNMS. While I find OpenNMS extremely easy to use, our biggest criticism is the learning curve. Yet there are people talking about how easy it was to get running. The only conclusion I can come to is that OpenNMS users are just smarter, more hard working, witty, and physically attractive than your average IT person (grin).

Those organizations that choose “build” and have the staff to pull it off will be the big winners. I saw a great post yesterday on The True Cost of Migrating to Open Source. Mark Taylor presents a solid argument that the cost to migrate to a free and open solution (as opposed to a shareware, open core, neo-proprietary, or “commercial” open source solution) is the same as migrating to another proprietary product, yet the long term cost savings are great. While I’m sure this will get him labeled as some hippy purist, it is hard to argue with his conclusions.

I just wish the buy vs. build conclusion was as easy to reach.

Does Open Source Lessen Risk?

It has been a rainy weekend, soon to turn to snow. If we do see a decent amount of accumulation it will be the second such storm this year, and much more normal than the last few years when we had almost no snow. Those years were also very dry so perhaps we’ll break out of this drought pattern.

So, I’ve been able to catch up on things a bit, and one of those involved an episode of CSI called “Deep Fried and Minty Fresh” [spoilers]. There is a small section of the episode about biodiesel.

In the show, the team arrives at a residence in the desert where a man is converting used fryer grease into biodiesel. The characters are portrayed as stereotypical hippies and tree huggers, which I thought was for comic relief, but one states “It only cost a couple of hundred bucks to convert my truck”. This is actually wrong – biodiesel runs fine in unmodified diesel engines – so I’m assuming the writers really didn’t do their homework and were just taking cheap shots at the long-haired weirdos.

Where I live there is a thriving biodiesel community. It’s rare that you can drive through downtown without seeing a diesel vehicle with a biodiesel sticker or homemade emblems like “bioTDI” on a Jetta or “bioturbodiesel” on a Mercedes. And while some of the people involved could easily be classified as hippies, none are as vacuous as the characters on that CSI episode.

When I asked some of them if they had seen the program I was reminded that most don’t have televisions. However, they do have computers so I wanted to take a clip from that show and send it to them, and while the episode is a couple of weeks old this was the first chance I had to edit it off of my DVR.

The character in the show that referenced modifying his truck was not talking about biodiesel but instead about Straight Vegetable Oil (SVO). It is possible to run a diesel vehicle on vegetable oil alone (biodiesel uses a chemical process called transesterification to actually change the used oil) but it does require a modification to the engine. Basically, a tank is added to the vehicle to hold the used and filtered oil, and the hot water line from the engine is routed through the tank to provide heat. The vehicle is started and run on “petrodiesel” (or “dinodiesel”, etc.) until the oil has a chance to be heated, and then a switch is thrown to send the now warmed and liquid oil into the engine. Before the end of the trip, you throw the switch back to clean everything out before stopping.

This actually might work well in the Nevada desert, but I know from the experiences of my friend Lyle Estill that it can suck around here. First of all, it gets too cold. Second, unless you take a lot of long trips you don’t have time for the “heat-run-clean” cycle. He tried it for a long time before getting tired of being left by the side of the road and he ripped the system out.

People might think that there is a world of difference between communities that have grown up around biodiesel and those around open source, but Lyle has purposely borrowed a lot of ideas from our experiences with OpenNMS. He has built a one million gallon a year plant in town to produce biofuel from waste streams, and he has shared a lot of his experiences through his Energy Blog. You can use his site and his book to learn more about the process, or you can just hire his team to consult with you about your ideas or to have them craft a reactor for your needs.

This is similar to OpenNMS. It’s free and you can download it, use it, modify it and share it, but if you need help there is a commercial organization behind it.

In thinking about these similarities I came to realize that communities, especially open communities, act to minimize risk. If I wanted to try to wean myself from a dependence on foreign oil for my transportation needs, I could look to the work that Lyle and his team have done and make decisions that would cost me far less than if I tried to explore it on my own. Heck, I can just drive down to town and purchase biodiesel directly from the co-op, and many people don’t have that option.

In much the same way, open source software helps mitigate the risk involved in choosing software. Not only can you “try it before you buy it”, you are free to modify it and you can leverage the experience of all the other users in the community to limit the problems you experience. Heck, if the organization behind the application ceased to exist you could still use and improve the product.

Commercial software doesn’t provide that value. Most of our current energy options don’t provide that value (Lyle’s group was able to provide fuel during Katrina when all the pipelines were shut down, for example). But it is possible to build communities that do.

This is really nothing new. The whole idea of “insurance” is usually based around having a big enough pool that those who use most of the resources are easily supported by the rest of the group, but I’m thinking that open communities create a much bigger pool than closed ones.

Just some more silly thoughts for a cold and rainy day.

Why Open Core Will Fail

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.