When Should Source Be Released?
MEconomy asks: "I'm the CTO of a commercial entity developing a technology that we plan to 100% open source. I'm looking for other options, opinions, and bulletproof arguments to take to Open Source-leery business types to convince them to release earlier (my preference) rather than later." While releasing the source early is a good thing, it can be released too early. I would never release the code to a project that wasn't in a runnable state, and would honestly consider holding off source releases until the project was at least in the "beta" stage. What do you think?
"I am very curious what peoples' thoughts are on the tradeoffs (business risks, community reputation, etc...) between:
- immediate release of the source code at product launch,
- waiting until the technology has acquired a large enough user base to insure a competitor won't just 'take the code and run',
- commit to full source code release and release piecemeal (ala ZeroKnowledge),
- a short-term (~1yr) closed-release to mutually trusted third parties (e.g. EFF),
- placing the code in a provable timed-release escrow."
[Update by nik]: Accepted practice seems to be to wait until about a year after you're bought by Sun. . .
ESR has a lot of good advice on this.. See www.tuxedo.org/~esr.
--
--
Mod up a post Rob doesn't like and you'll never mod again
If you release pre-beta code, you're essentially filtering out people who would download the code simply to run it for free. Not many people are eager to deal with the extremely buggy, pre-beta or even pre-alpha code.
Releasing early also gives you the advantage of having more eyes looking at your code early to spot any bad design decisions -- it's a lot easier to fix bad choices early in the project than it is when the code is more developed... You don't want to have to rewrite the entire foundation just because you made a seemingly good decision early on, which later turns out to cause issues.
It can't hurt to have extra experienced eyes running through your code at the early stages.
This isn't a flame. I swear.
Both Mozilla and Java have the problem of long development / consumer introduction periods. So the general public (or, in the case of smaller technologies) gets really sick of hearing about them (but knowing that they can't relly use them), until, eventually, they get sick of them.
I've been willing to be part of testing Mozilla, and I love it. So have many of us. But most consumers aren't so forgiving. Be careful of saturating the market with concept so that people have tuned it out by the time you have some substance.
-Waldo
-------------------
I'd suggest releasing code at your v0.99 point which should be a code-freeze state and final bug-fixes. At this point, OSS people will no doubt grab the source and put it through the ringer. After a couple of weeks worth of reports and suggestions, you'll probably be able to put together a release.
But please note:
Since you didn't say what KIND of software it is, a fair evaluation is extremely hard to give. Also, what lang. is it written in, and is it going to be standards compliant? (i18n, etc.)
-What have you contributed lately?
Early and often seems to be good except for the pull into other directions.
--Mike--
You sure as fuck had better not be releasing the source code as an alternative to having your own people test it. "Why pay QA when geeks will test it for free?!" Nonono, make sure the code is secure after you have your own people banging on it for a while, make sure it's well documented, THEN feel free to release whenever and however you want.
--
Peace,
Lord Omlette
ICQ# 77863057
[o]_O
The Magic Cauldron is a discussion of different models of opensourcing your project.
It's a very well written article, has some examples, etc.
Is it an applciation that is going to gain a lot of interest? In that case I would start publishing a least the API's so that you can see how many people are interested in working with your technology. A lot depends on what you are trying to release. If it's something that you can have people start writing add-ons and features to without releasing the whole thing, then you should probably consider open sourcing that part right away. (ie, keep the "kernel" closed until you have a big jump on competitors)
Of course IANAExpert.
I need a TiVo for my car. Pause live traffic now.
Give your application a name like:
- g00pr4.5.5.27-8.22.2.1.rpm
software-title-goes-here-.0.1.2.9.p4.7.3.2.9.9.c7
Add a new version number at random everytime you write two lines of code. This will make you a kewl OSS programmer.
At least that is the approach I took with GridSlammer, and it has worked out very well.
Thad
The Bolachek Journals
I have discussed Open Source software releases with several companies, mainly concerning obsolete or discontinued products. The motivations for Open Source release are far more complex than the surface "religious" issues would indicate. I have raised these issues with several of the Open Source luminaries (in particular with ESR), and have developed a series of questions that should have solid business-motivated answers before proceeding with an Open Source code release.
1. Is this product intended to produce a revenue stream for the company?
If "no", then Open Source release is probably OK. Otherwise:
2. Does this product contain trade secrets or protected/restricted Intellectual Property (IP)?
If "yes", then the source code is likely to be useless unless a license to the related IP is included. Otherwise:
3. Is this product of strategic importance to the company?
This is a difficult question. It could be something as simple as a specialized driver for a very rare piece of equipment, or something as complex as an ASIC partitioning and layout system. In either case, the product could be vital to the business process, yet not be a revenue source in and of itself. This leads to two questions:
3.1. Does the company expect to rely on assistance from the Open Source community to make this product usable to the company itself?
If "yes", then the company is taking an extreme risk, since there is no guarantee the Open Source community will express any interest at all in the product. However, if the company lacks the expertise to complete the work, or the funds to hire outside assistance, this may be the only way to get the work done. Otherwise:
3.2. Will this product be useful to your competitors? Does it pose an economic or competitive threat to your business?
This is the two-edged sword of Open Source: The product may be of immense help to you, but may be of even greater help to your competition. However, all such advantages are transient and temporary to a greater or lesser degree, so it is often far more important to give your own needs top priority, and let the competition do what it may with the product.
This list of questions goes on to greater length and detail, dealing with a wide range of resource and business issues surrounding Open Source, some of which have been mentioned in prior replies on this topic. There are also many issues related to the management and functioning of the software development process, and control of the product. (Such as: "Who decides which patches and CVS commits are rolled into the next release?)
It all boils down to a simple question: Why do you want this released as Open Source? This question demands an affirmative answer, and not the obsequious answer of "Why not?".
For an enlightened view of an intermediate stance, take a look at Caldera's new policy of "Open Access": All software will be released with full source code. The source code will have the same license as the binary, which may range from fully proprietary to GPL. All licensed customers will be able to build their own binaries, and develop and incorporate any and all pacthes they need. The main goal is to give Caldera customers a real say in the software they use, and to avoid the restrictive license hegemony that helped make Microsoft the monopoly it is today.
Caldera also plans to rely on continual innovation to stay competitive, which means all products will evolve toward the GPL as they age (either by succesively more liberal licenses, or piecemeal). And all products will fall under the GPL by default if Caldera is unable to support their end of the license for any reason whatsoever.
This policy, in essence, takes all the teeth out of the "shrink wrap" licenses and the ludicrous rules embodied within UCITA.
But I digress: The decision to release under Open Source is NOT a black and white issue, and ESR (among others) lists several reasons when Open Source is inappropriate.
Seek the greatest advantage for yourself AND for the Open Source community. In very many circumstances, a radical rethink of business processes and reasoning will often result in the decision that Open Source is a net advantage for all concerned.
But not always.