I have been an open source person for as long as I remember, at least since I met Alessandro Rubini in the late eighties. He was writing the mouse device driver for Linux and I had the fortune to spend a good amount of years in the same dorm and then lab, where he was going around with a Linux PC in a wooden box.
In the last five years, I spent almost every day thinking about a business model that could allow open source to become a viable alternative to proprietary software. I do not believe the Linux model can be replicable. You cannot build a project hoping it will get big and some IBM or HP will throw in a ton of money. If you want to get a salary doing what you love, you need to come up with a better model. A sustainable model for open source. A honest way to create value for your community, while generating enough cash to make it work. With Alberto Onetti, I wrote a paper some time ago on how it works for Funambol.
The guiding principle for me has always been "Just be honest" with your open source community.
My epiphany with dual licensing happened in London some years ago. I met Marten Mickos and I decided that was the way to go. I loved the "quid pro quo" concept (albeit it means "a misunderstanding" in Italy... We would use "do ut des"): you either give back code to the project or you give back cash, so we can put it back in the project itself. That's being honest.
The problem with dual licensing starts when your product is not meant to be embedded. There, the trigger to open source everything around your code is clear. When you have an application, it gets tricky. Therefore, many open source companies decided to split open source from commercial based on features. That is, you get an open source product that does 70% of what you need. If you need the other 30%, you have to pay. The risk is that your product manager will have to think where to put every new single feature, with your investors and sales people telling him/her "close" and the community shouting "open". It creates tension in the community ("why did you put THAT feature in the commercial product? We need it! We'll build it ourselves"). When Marc Fleury says that who adds commercial extensions to open source code is not really open source, I believe he goes overboard (he likes to be controversial, I guess ;-) But he is not totally off base. Dual licensing with commercial extensions targeted to the open source crowd (all enterprises, for example) will aways create tension. In the long run, I believe it won't be sustainable for us. Many have noticed it, such as Alfresco and others, switching to a 100% service-based model and sort of giving up dual licensing (maybe because it was not working for them as it does for others ;-)
Now, how do I build My Honest Dual Licensing? How do I keep the concept of quid pro quo, without creating a gigantic bait and switch? How can I be honest to your open source community, while generating cash to sustain the project via licenses?
It is quite simple, actually: we will not segment your product based on features, we will segment our user base. On one side, we build a phenomenal open source product targeted to your open source community, pure and honest. On the other side, we build a commercial product based on the same core BUT targeted to someone else. If "someone else" is not in your open source community, you are golden. Your community grows happy giving back the code to the project, your "someone else" pays for it and gets back what it needs (quid pro quo).
Ok, now the issue is finding that someone else ;-) In the Funambol case, the community is everybody in the world, including individuals, universities AND enterprises. "Someone else" is the carriers. The carriers have totally different needs than enterprises. They target millions of users. They target consumers. It is the same core but with some different features (probably still 70% vs. 30%). Features, though, that the open source community does not care about. That's the trick. No tension when adding features. Clear separation between open source and commercial. Segmentation based on your user base, no bait and switch. My Honest Dual Licensing.
Just be honest.