I had dinner with Fabrizio, a good friend and CEO of Funambol, the leading mobile open source company. He was in Salt Lake to ski and was kind enough to call me so that we could hang out.
Fabrizio said some things about open source that rang true with me, which I had not considered before. I'll list two principles he mentioned, and will discuss each in turn:
- Don't upsell your community, and
- Sell open source to those who don't like/trust open source.
At first glance, Fabrizio's principles fly in the face of most open source businesses out there. But when you scratch the surface of his thinking you see that it actually undergirds the most successful open source businesses. Let me explain.
Fabrizio's first principle - "Don't upsell your community" - basically means that there are multiple markets for open source, and the developers who download your product will not be an important
source of revenues. They yield many other benefits - product extensions, product feedback, bug fixes, etc. - but don't expect them to fund your development.
You can see companies making mistakes in this regard all the time. They set up models that are designed to goad "free-riding" developers (or, "the community") to pay. Hence, the now ubiquitous "Community" vs. "Professional" or "Enterprise" versions of products, with the hope that Community users will become Professional or Enterprise buyers.
They won't. Give it up.
This is not to say that product segmentation is wrong, but it means that we need to be clear about how and why we segment an open source project.
In Fabrizio's case, he recognized that consumers aren't going to pay him money, and the enterprise market might not be fertile ground yet either. So he's focused on mobile operators, and finding a great market there (especially in developing geographies). He gets a huge amount of value from his user/development community (fast approaching 1 million downloads), and doesn't confuse his goals with the operators with those of his user community.
This has meant two things for Funambol:
- They don't write code that enterprises may want. They write code that their mobile operators will want, and let the community extend Funambol to meet enterprise-y needs (like Exchange connectors - operators and consumers don't care about Exchange, so why should Funambol spend its development dollars there?).
- Funambol's licensing is designed to maximize code reuse and utility for its developers (i.e., GPL), while not harming the mobile operators (who simply want to buy their way out an open source license, anyway).
This brings me to Fabrizio's second principle - "Sell open source to those who don't like/trust open source." These are my words, not Fabrizio's, but they're my best rendering of what we discussed. Fabrizio keeps finding that the customers willing to pay the most money tend to be those that appreciate the benefits of open source, but don't want open source, itself. In his mobile world, this means that they like the fact that the code is effectively in permanent escrow with a massive user base and so it doesn't have to bet on Funambol, per se, but rather on its community. They also don't have to fret about being locked into their vendor.
So, they like the benefits of open source. But their lawyers don't want to be bothered with thinking through the implications of possibly (though this possibility is remote) having to share their code, or figuring out support, etc. So, they buy a commercial license to Fabrizio's code to get the benefits of open source without the so-called risks of open source. They want commercial open source. They want a company behind the community, but they definitely want the community, too.
I think Fabrizio has it right. In my content management/collaboration world, my primary customers are enterprises. They want open source, but they don't want to lose the commercial relationship with a vendor. Enter
Alfresco.
But they also don't want a lopsided entity that is mostly commercial, and very little community, open source. I personally feel that the GPL (and other free software licenses) is the best way to ensure maximum community input while retaining the ability to give enterprises a way out. It won't always be like this - I assume in a few years enterprises won't be so keen to buy their way out of the obligations of open source (because they'll recognize that the obligations lead to greater and greater benefits), but while the world is as it is...it's a great model.
Look at what
MySQL has done with its Enterprise offering, coupled with their Network. MySQL took nothing away from its community, but added to what companies wanted (better support, more QA, etc.). Its development/user community gets the freedom of GPL (v2) so that they don't really have to care that there is a company behind the project. Enterprise customers, for their parts, get the commercial license so that they don't really have to care that there is a community behind the product.
Everyone wins.
This is as close to "The Right Model" as we currently have in open source, in my opinion. It's community-maximizing without being overly reliant on support dollars. (If your business depends on selling support exclusively, you're going to find that you may successfully pull in five-figure deals, but you'll always strain and struggle to get the six- or seven-figure deals. Those require something beyond vanilla support - not proprietary software, but rather "proprietary" service (meaning the code is free, the services around it are not).
Thoughts?