It seems lately that at least once I week I hear about another company “adopting” the open-source model for their application. Usually this is a company that tried to create a traditional commercial application, failed at it, and they are hoping to ride the buzz surrounding “open source”.
But they just don’t get it.
Open source software development is not just about providing the source code for your application. It is much more about building a community around a shared project. That takes time. I think the biggest myth about open source software is that you say “hey, I’m open source now” and suddenly thousands of qualified people give up nights and weekends to work on your code. You can’t stick nine pregnant women in a room for a month and get a baby, it just doesn’t work that way.
But some people are trying.
There are several open source business models. I, of course, am biased towards ours, which is the software is always free (as in freedom) but you pay for services and support. In other words, it’s like being a carpenter. You can buy the same tools that a master craftsman uses, but it is doubtful that you can produce the same quality of work without investing a lot of time. We don’t sell software, we sell time. This is very similar to what JBoss does.
Then there is the dual-license model, which is what MySQL uses. They publish all of their software under the GPL, but for a fee you can get access to the software under a different license. The main downside to this is that an outside contributor must turn over the copyright to MySQL or they won’t accept the code. I understand the reasons for it, but in my mind it negatively affects community contributions. Why should I want to work for MySQL if they are going to directly profit from selling that work? For some people it is no big deal, they get satisfaction from contributing, and if that works for them, great.
Finally we come to the “shareware” model, which is now really starting to draw my ire. Popularized by SugarCRM, it is a “model” where some of the code is open, but to get the full featured version you have to pay, and the full version is not open. Remember shareware? You download a little app for free that does some things, but if you want to unlock all of the features you send the guy ten bucks? If this software was so good, then why hasn’t a community sprung up around the free version and made it better? And don’t think I’m knocking SugarCRM, we use it, but it really isn’t open source in the way I think about it.
So, today a client sends me a link to an announcement about another company trying to enter the “open source” network management game. Hyperic announces that “it is adopting an open source business model … with full access to the underlying source code”. And look, there is the “HQ Enterprise Subscription” where you get other features, for a fee of course.
I decided to check it out.
So I try to find out what license provides this “access to the underlying source code”. Is it GPL’d? Apache? Hrm, doesn’t say. So I guess I should download the application. I click on the link for the “free” version and get a license page, which states:
b. Restrictions on Use. You may not reverse engineer, decompile, disassemble or otherwise attempt to determine source code or protocols from the Software. You may not lease, rent, resell or sublicense the Software to any third party, or otherwise use it except as permitted in this Agreement.
What a novel approach to free software.
The application itself is still downloading as I write this. It is over 100MB in size, and it doesn’t seem to be available on a Sourceforge mirror. That’s probably because their “open source” claim is bogus. I doubt if the download will even contain the source, but I have been wrong in the past (I’ll update this post if it does). [Update: It doesn’t].
OpenNMS was open source when it wasn’t hip. I hope no one is fooled by open source wannabes who hope to use the term as a bait and switch for commercial software. Use these three points to see if any application you are considering is truly open source:
1) The software, and all of the software, is free
Check out the Open Source Initiative’s licensing web site. If the license the code is published under is approved, then that’s one step in the right direction.
The second step is to make sure that all of the software is free, that there isn’t some “special” version published under a non-approved license.
OpenNMS is published under the GPL and all of our work, even work for hire, is available in our subversion repository on Sourceforge. Note that we are project 4141 out of over 100,000 – we’ve been doing this for awhile.
2) There is an independent community supporting the project.
The power of open source comes from the community that uses it. At OpenNMS we are blessed with a number of constant contributors who aren’t directly paid to work on it. OpenNMS is supported by the OpenNMS Group but many of our contributors work for other companies. They even give up a week of vacation each year to attend our developer’s conference, and we currently have 26 people with developer access to the SVN repository. It is these people, as well as the hundreds of others who use the product and help determine its direction that have made OpenNMS what it is today.
3) The company touting an open source application actually had a hand in writing it.
Most of my loathing is reserved for those companies that claim to be open source, but in fact all they did is add a proprietary front end to an open source application. Ethan Galsteed’s Nagios has been a victim of this where his work and the work of his community has been co-opted by “parasites” who hope to cash in on the “open source” buzzword. They also tend to fail at the first two checks in the list as well.
Note that I did not start OpenNMS, but those who did allowed me to become the maintainer back in 2002, and in those four years I am extremely proud of the community I helped build and the product that community produced. The code in the development branch of OpenNMS looks almost nothing like the code four years ago, and it truly is an enterprise open source solution.
So, be wary of people claiming to be open source. You can’t hang a tarp in front of a cathedral and have it become a bazaar.