Harmony is an effort that was begun and shepherded by Amanda Brock, the general counsel at Canonical, makers of Ubuntu Linux. The intent was to create a small collection of consistently-worded contribution agreements (both licenses and assignments) for free and open source projects to use to reduce the friction such agreements can cause when they’re encountered for the first time by corporate counsel unfamiliar with FOSS licensing. There’s a great description on the website.

“Contribution agreements are one available tool out of many in an overall legal strategy for FOSS developers, the entities that distribute their work, and the users of their work. We hope that our work will enable more people to contribute code, by reducing the cognitive cost and legal time of reviewing contribution agreements. However, the fact that we're working to improve this one tool doesn't imply that we think it is a necessary part of all FOSS legal strategies. Many successful FOSS projects choose not to use contribution agreements, and we are hearty advocates of those projects, and of a broad variety of strong legal strategies built using a broad variety of tools.”

There are a variety of opinions on whether contribution agreements are necessary, and some excellent discussions on assignment versus licensing one’s contributions, and whether one is doing so with a corporation that might then “close” the project work into a proprietary product, or with a non-profit foundation designed to promote and protect the project for all and sundry to use. Indeed most of the heat of the debate exists on their need. There is no one right answer or one true software IP management system. For-profit companies will implement different systems against different FOSS projects depending upon whether they’re using and contributing to an external project, creating a complementary community around their own project, or embedding a project into a product or service with the product’s attendant business model. Non-profit foundations will implement different systems for FOSS projects depending upon the needs of their members and constituents, possibly based on whether they’re a trade organization or a public good organization, or as a way to create a neutral space in which to collaborate. Companies contributing software to a FOSS project will want to understand what’s happening to their software ownership, and this will be different to what a lone developer does when they contribute to a project in the context of who owns the project and what their employment agreement might dictate. It’s interesting to see the variance across a number of FOSS foundations and projects, and how history and timing plays a role in the examples.

The Free Software Foundation evolved an IP system 25 years ago of assignment of contributions to the FSF to ensure ownership was held in a single place to best defend against challenges. It is not a mandatory system for all of their projects, but was an early system they put in place.

Apache remains the most popular web server on the Internet since its inception in the early 1990s. As a project it grew and flourished for almost a decade without much legal assistance beyond the Apache Software License which looked amazingly close to the BSD license and reflected both its research routes and the history of academically-centred projects like MIT’s Athena (X11) and Berkeley’s UNIX contributions. In the late 1990s, commercialization had begun and the legal climate in the software industry was evolving and maturing. Companies like IBM wanted to craft a stronger provenance story for Apache before they were comfortable using it at the heart of Websphere, and helped fund the Apache Software Foundation into existence, which then evolved the license to reflect the maturing world of software IP, and added a contribution license agreement.

Linux has evolved an interesting system. When it was begun in 1991, Linus Torvalds chose not to use assignment agreements and is on record expressing his disagreement with such assignments. Over time the Linux community has evolved the Developer Certificate of Origin (DCO), which is a simple attestation in the commit comments. There is an interesting cultural difference around Linux. It is so widely adopted at the product level, that it almost gets a pass. The Linux Foundation (and its predecessor, the OSDL) boasts an incredibly deep legal bench. While Microsoft snipes from the edges around Android and patents and may well be satisfied with it’s patent licensing revenue stream, were someone to attack the Linux kernel on copyright grounds they would run into a spectacular array of lawyers, as indeed the Canopy Group discovered when it attempted to chase IBM through the SCO Group.

MySQL was the Web’s database for a very long time, growing up with the Web as it evolved. MySQL AB maintained a strict assignment policy for inbound contributions as it was a for-profit company that wanted to feel secure in a core asset. Indeed, the dual-licensing revenue stream which anchored a lot of MySQL growth would have been impossible without a solid assignment process. Of course, through the subsequent acquisitions by Sun Microsystems, then Oracle Corporation, the world of assignments in a corporate space has been tarnished as developers question the inequity of such assignments between companies and developers.

The Eclipse Project launched in 2003 with a license that acts as both an inbound and outbound license, a rigorous IP management system that was based on membership agreements, committer agreements, and traceable audited submission channels. Over time, the project evolved into the Eclipse Foundation, the license continues to evolve, and the IP management system has evolved and is reflected in a fabulous diagram.

As the world of software IP management continues to evolve and mature, we don’t have the liberty of ignoring the changes brought on by the law and court cases involving software copyrights and patents, not as individuals and certainly not as companies. Neither do we get to follow Dick the Butcher’s suggestion in Henry the Sixth and kill all the lawyers. The Harmony Project is an attempt to provide some clarity to the discussion by creating a set of usable documents (with their guide, Creative Commons-style agreement generator, and FAQ) and the first version of the documents will be a stake in the ground to anchor debate for some time. I’ve great confidence that the agreements will continue to evolve with discussion and debate, and the core Harmony team should be applauded for their efforts to date. Disclosure: While I'm certainly not part of the core team, I participated in quite a number of the Harmony teleconferences over the past six months or so.