I guess everybody knows it but nobody ever named it, as far as I know, so I’m doing it here:
The Intellectual Property Rights Imperative of Single-Vendor Commercial Open Source Always act in such a way that you, and only you, possess the right to provide the open source project under a license of your choice.
For those familiar with the dual-license strategy, this is probably a no-brainer, but I thought it would be good to spell it out and put a name on it. This helps fine-tune behavior and improve on it. One such possible improvement is the switch from a copyright transfer agreement to a relicensing rights grant.
Most notably, all commercial open source vendors I know who use a dual-license strategy require that outside code contributors sign over the copyright to their code contributions to the vendor. MySQL, SleepyCat, Jaspersoft—they all do or did it. If I was a potential contributor, I’d hate loosing the rights to my code; hence I’m less inclined to even consider contributing. This dovetails nicely with the recent debate about “GPL vs. Apache” which is all about reducing friction in building your community.
So why not weaken your contributor agreement? The intellectual property rights imperative says nothing about the firm maintaining the copyright. All you really need, as Larry Augustin pointed out to me by email, is to maintain the relicensing rights. Thus, you could ask a contributor to sign a rights grant that allows the firm to relicense his or her contribution. This is much weaker than a copyright transfer and, so my guts feeling, is likely to be received more friendly by your potential contributors. Thus it should help you to grow your community faster.
I’m sure the intellectual property rights imperative holds. I’m not sure about switching to the relicensing grant, mostly because I don’t see people doing it, so I may be overlooking something. IANAL, as they say…