Tarus Balog

Authored Content

Open For Business: Pay day

I want to conclude this series of columns, in which I’ve written about marketing, pricing, and sales, with a discussion of what might be the most difficult aspect of running…

Authored Comments

This really resonated with me. Thanks for the post.

Here is one other data point, from 11 (!) years ago - cost. How do you price per-incident support?

https://www.adventuresinoss.com/2008/12/18/why-we-dont-have-per-inciden…

I agree that in a perfect world CLAs would be unnecessary, but I disagree that they are a bad idea.

You work at Red Hat, a company that both contributes to a lot of projects as well as consuming thousands that get packaged up into Red Hat products. Managing CLAs would be a problem that would make your life easier if they went away.

I, however, focus my work on pretty much one project, OpenNMS. Having a CLA in place is important to our survival.

OpenNMS was created by a company called Oculan. I started working with them in 2001, and in 2002 they decided to no longer work on the project. Since they owned the copyright they decided to focus on making it a proprietary product.

I saw the potential and asked to continue OpenNMS on my own, so basically OpenNMS became a fork of itself.

Several years later, after Oculan had ceased operations, we found out that a company with VC funding out of Silicon Valley had taken our project, put a slightly different GUI on it, and were selling it as a proprietary product. They were considerably better funded than we were (OpenNMS has no outside investment, we like to say our business model is "spend less than you earn") and we were ill equipped to defend against this kind of theft.

We were able to hire a legal team lead by Eben Moglen to pursue this. The infringing company claimed that *if* they were infringing on the OpenNMS license, they were only using the part covered by Oculan's copyright and thus we had no legal standing. We knew this wasn't true because we learned about it through a whistleblower ex-employee who claimed he had been instructed to follow OpenNMS commits and to merge our work into their product. But it greatly complicated our ability to bring this company into compliance.

The matter was never resolved as the company went out of business before the case could be formalized. It did however motivate us to put some sort of CLA in place.

As with any good open source project, we turned to our community for suggestions. One person suggested we adopt the Sun (now Oracle) Contributors Agreement.

I had never heard of it before but immediately liked it. It consisted of two main parts: shared copyright assignment and a statement that the contributor owned their contribution.

Many CLAs demand that the contribution become the sole property of the project. Since our product consists of many small parts, I could easily see where a developer would hesitate to contribute, say, a particular piece of monitoring code, if they could never use it elsewhere. This agreement allows the author to maintain copyright, while assigning copyright to the project as well.

You touch a bit on the second part, where the contributor certifies that they have a right to actually contribute the code. While this will not prevent someone from submitting code they don't own, having to sign a paper attesting to the opposite has, at a minimum, a psychological component that makes them at least think about ownership before sending in that pull request.

Now the Oracle Contributors Agreement has never been tested in court, but the precedent of shared copyright is well established in other media, such as books. If two authors write a novel, there is nothing in copyright law preventing one of them from writing a sequel.

CLAs, combined with an effort that resulted in the purchase of the Oculan copyrights, means that the OpenNMS Project now controls 100% of the code that makes up the platform and we are in a position to defend the work of our community against license infringement.

It is extremely important for smaller projects like ours to at least consider a formal statement concerning contributions, and articles like this do them a disservice. Ultimately it comes down to your community. Our community is happy with the OpenNMS Contributors Agreement and I doubt we have ever lost a contribution because of it. Each project's situation is different, but you can't make a carpet statement that CLAs are a bad idea for everyone.