I was going to hold off until Tarus had a chance to respond to Luke’s post, but I’m guessing Tarus is away from the intarwebs today. After having trouble posting my comment (probably just too long to be accepted) on Luke’s blog, I’m doing it as a post here on my own.
Without presuming to speak for Tarus (Ben and I both work with Tarus and so are quite familiar with his philosophies) I’d like to lay out a few places where I think Luke’s post missed the mark. These thoughts are ones that I really wanted to get across in person during our brief conversation in January after Luke’s talk at CloudCampATL, but I didn’t want to hog his time.
My points follow.
- Open-core is not invalid as a business model, it’s just not the same as open-source
Tarus’ campaign is not against the open-core business model itself. It’s against open-core companies that want to have it both ways by playing the necessary-feature-withholding game but still calling themselves “open source companies”. It’s not about hate but about calling something what it is.
- Joint ownership of copyright and why we as a project sponsor pursued it
As the maintainers of OpenNMS, we do require all contributors to execute an agreement that concerns copyright. It’s not about attribution or assignment, though, as assignment in particular is essentially impossible under current U.S. copyright law. It’s actually about declaring a shared or joint copyright. A contributor who executes the OpenNMS Contributor Agreement (which Tarus blogged about here) forfeits exactly zero rights while simultaneously granting us the same set of rights that the contributor has. The contributor is still free to do anything he wishes with his contribution — license it commercially, give it away under a non-GPL-compatible license, print it out and roll a joint with it, or (gasp) also contribute it to Hyperic. That point was key in our selecting this agreement, which as Ben pointed out earlier is literally the Sun Contributor Agreement with e-mail and fax information added and “Sun Microsystems”, “OpenSolaris”, and “California” changed to “The OpenNMS Group”, “OpenNMS”, and “North Carolina” respectively. We were incredibly hesitant to add this kind of requirement, and we didn’t do so unilaterally. When we went shopping for an agreement, we created a committee of non-employees from the Order of the Green Polo (the secret society of core OpenNMS contributors) to do the research and waited months for them to make a recommendation — they all have day jobs, after all. We knew that we ran the risk of pissing off and maybe even running off valuable community members, something that thankfully did not happen. Even with OCAs on file for all our contributors, we still don’t hold all the copyright since we inherited the code from the original creator, Oculan (formerly PlatformWorks, then Atipa, now part of Raritan through subsequent acquisitions). Raritan doesn’t want to sell us the intellectual property for one dollar, so we couldn’t do anything evil with the code today even if we had the desire to do so.
At the end of the day, our motivation for adding the OCA was about protecting the community, not about enriching ourselves. Having all the rights conferred under U.S. copyright law is the only way that we as a company can take legal action to protect the community from having its work (allegedly!) ripped off by people whose primary interest actually is self-enrichment. it’s incredibly tricky to pursue a GPL-violation lawsuit when you don’t hold copyright on your entire code base. Having an OCA for each contributor means that if the project ever has to appear in court, we don’t have to go broke flying everybody who’s ever contributed code to the venue. One other thing that a folder full of OCAs allows us to consider doing is offering patent indemnification to our support customers.
- Making money selling software, and pragmatism
As far as development costing money, The OpenNMS Group is in exactly the same boat as Reductive Labs. We’re not running a charity either, and we’ve all got heads full of ideas that we just don’t have the resources to translate into code. It takes real discipline when you love the project as much as I do to put off work on an amazingly cool feature until we find somebody willing to fund it, and go work on weatherizing the damn house instead (which I should be doing right now). Would we ever sell some software? We’ve talked about it, but we would never sell OpenNMS to end users. If we held all the copyright would we maybe license the code commercially to, hypothetically, HP as the foundation of a completely redone OpenView Network Node Manager? Only if the community were on board, and the version HP got would be exactly the same as the GPL version, and we’d plow almost every penny of profit back into the project the same as we do today. This all in keeping with our promise that “OpenNMS will never suck, and it will always be free.”
- Supported binaries and what we’re willing to support
Luke refers to a model of producing supported binaries — which we do, but we also are just as happy to support a customer who builds everything from source. There’s no shrink-wrapped version of OpenNMS is what I’m getting at here, and if there ever is, it won’t affect our willingness to support people who roll their own. We even support customers who make substantial changes to the code provided they purchase a Developer Support agreement in addition to Basic or Enterprise support. Digium is going through a transition to a similar model right now — they’re about to start offering support contracts for GPL Asterisk where they previously offered support only as part of the cost of the shrink-wrapped Asterisk Business Edition. While I wish we had something like Digium’s hardware revenue stream to draw from, I do think that their move is something of a validation of our model.
- The greater sin is (C), both of the above
Last item, and this one’s actually way more than just the semantic distinction that I thought it would be when I wrote this paragraph the first time. Luke asks, “Is it a greater sin to only accept patches to your product if the contributor is willing to assign copyright to your commercial company, or to produce some closed-source code?” I would like to point out that the open-core guys, in our sector at least, are doing both. See Zenoss‘ and Hyperic’s terms. In so doing, these guys are accepting code from the community and reserving the right to roll it into their closed-source code.
Geeky, OpenNMS, Software
copyright, gpl, hyperic, opencore, OpenNMS, opensource, puppet, reductive, zenoss