A friend pinged me a few weeks ago with a Very Good Question, one for which I still don't have a good answer and so I thought I'd throw it out to the larger community. The question?
How can a company best preserve its customized code...when there's no guarantee that future management will support open source?
It's a big question, and one that an increasing number of companies will face as they learn to innovate again. Here's the same question with a bit more context:
I've been thinking about the source base we have on Sourceforge and who should really hold the copyright. I've spoken with [my CIO] and both of us agree that [we] may not be the best copyright holder. [We] are not a software company and when [the CIO] and I are gone the company may lose its stomach for open source....
I asked [the CIO] if he on behalf of the [company] would consider (if appropriate) signing a charter for some sort of organization or group that could hold the copyright for the source. He said he would but neither of us really know what is actually needed and what would be appropriate. A lawyer -- right?
See the dilemma? It's one thing to talk about open source, but source code without community is largely impotent.
Here are a few salient points from my friend's scenario to consider:
- Small organization;
- The company does development, but isn't a software company and doesn't want to become such;
- They have internal support for open source now...but forever? Who knows?
- At the moment management understands the power of open source, but no one here sees value in a lot of custom code locked up inside the company's walls with only the company to support it.
So what do they do? Well, to get community interested, they would need to take steps to make the source code/product valuable. They'd then need to attract a diverse group of code committers to ensure spread and depth of development. Part of this involves work that they're doing now: cleaning up and generalizing the product with multiple use cases. Then there's formalization of build processes, creation of documentation, etc.
Suddenly open source doesn't look as easy as a legal license, does it?
Open source is not a panacea. At its most basic, it's a way to ensure permanent escrow for your code. But code without community is sterile. Any suggestions as to the least-difficult way to build sufficient community around a project like this to maximize the code's odds of enduring beyond the creator's interest in the project?
Smells like a business opportunity in this. In fact, it sounds suspiciously similar to what Stuart Cohen is up to at the Collaborative Software Institute. There is far more software out there built for use rather than for sale, as Eric Raymond most famously pointed out. How can companies protect the freedom of their code beyond an open-source license?