One of my recent columns, "Open Source Citizenship," attracted more than the usual amount of e-mail and Weblog commentary. Lots of people are thinking about whether, and how, to coordinate in-house development with open source projects. Licensing, employment agreements, open source culture, and government policy are some of the issues raised in the follow-on discussion.
With regard to licensing, several readers pointed out that a modified version of the GPL (GNU General Public License), the AGPL (Affero GPL), aims to close the GPL's "Web services loophole." The AGPL adds a section to enforce sharing code that powers a Web service, so if you host a Web service based on a modified AGPL-licensed module, you have to guarantee your users the same access to source code that the original module guaranteed its users. In-house developers would often like to give back to open source projects, whether or not compelled by a license to do so.
But there are a number of roadblocks. One reader notes that his terms of employment state that anything he invents or creates while working for his company belongs to the company. He wonders how broadly this constraint applies, as do I.
Another reader points to the differing priorities that govern open source and in-house projects. An open source project typically has no urgent deadlines and may invest heavily in supporting many platforms and configurations. An in-house project often reverses those priorities. Deadline pressure is intense and the deployment target is narrowly specific. Even when in-house developers are inclined to give back, the code (for valid reasons) is not always welcome. "The open-source project owner would frown upon changes suggested by people who have not yet earned their stripes," the reader says. "But the in-house developer has neither time nor availability to earn those stripes. The net result: multiple in-house forks and associated waste of resources."
Jonathan Bollers, vice president and chief engineer at Science Applications International Corp. (SAIC), says that SAIC forks open source projects for in-house development "almost without exception." The problem is that although there is often a desire to give back, it's "a tedious process fraught with more heartache than benefits." The bureaucratic hurdles include security considerations, export controls, and a host of other issues that Bollers sums up as "releasability remediation."
He asks a crucial question and proposes an intriguing answer:
"So how can the defense community give back, apart from well-shrouded blogging, discussion and Usenet postings, and seeding academic research? How can we be viewed as good open source citizens by releasing remediated code?
"In many cases, defense-related development could be a boon to those entrepreneurs engaged in IT commercialization. Modular and well-structured code, properly tagged for defense-sensitive algorithms, functions, identifiers, and key words could be effectively re-released as open source.
"The government might consider incentives for those in the IT contracting business, perhaps in the form of additional fees, credits, or preferential rating for future procurements, to remediate via software engineering for reuse processes that specifically target release to open source.
"These two-way-street incentives would not only revitalize thoughts and ideas in the open source community, they may also be the harbinger for the next wave of technical innovation in the post 'new-economy' economy."
Excellent idea! I'd love to see some of my tax dollars directed toward that end.