Archive for August 14th, 2007

Tuesday, August 14th, 2007

Navigating the Waters of Commercial Open Source

  Just like it’s a baby’s job to cry, it’s a company’s job to make money.  There is no need to rehash old cliche question "how can you make money if you give away the product for free."  I think the software world, as it exists in 2007, is proof that we’ve evolved beyond this initial fundamental question, even if others are having a harder time.  Yet the story has become more complex, more subtle.  One question that I deal with every day is, how do commercial open source companies work together to produce a product?

  In the old days, building a product with technologies provided by other companies meant buying licenses typically, or maybe support contracts.  A financial transaction insures that the companies you depend on will help you make sure their aspect of your product works as it should.  In the real world it’s never true that this always works, but it provides a basis for the relationship.  What then becomes the basis when there is no explicit transaction between companies?  Or even when when one company knows absolutely nothing about the other.  In working for a commercial open source company, I’ve had some interesting experiences finding out.

  First let me say that I’m an engineer and I solve technical problems.  In the old days, after securing a license from a vendor, you get a support contact, and then you’re off building your product.  In dealing with open source, after first doing your license compatibility checks, community "vibrancy" checks, you just dig into making your product with various open source bits.  If you’re lucky, things work as they should.   Again, the real world is  a little different.  Here’s where the interesting stuff starts.  When something doesn’t work as expected, I post to forums, send emails to developers, and do a lot of googling.  Openly, brazenly, technical details about my project leak out into public forums.  I ask questions to Sun, to Freescale, and surprisingly they respond.  Solutions that are found to problems are also public.  My competitors could have a head start simply by reading forum posts.  There is no commercial relationship between me and any of these open source software providers.  Should there be?  They have no idea what my product is, who the customer is intended to be (a potential competitor?), or when I intent (if ever) to release my product.  Yet they respond, and they put a lot of effort into their responses.  These are very smart people being payed well (I hope!) to help me fix problems.  Why are they doing this?

  Some companies present the lure of open source, and then attempt to reel you in with a commercial license after the complexities of integration become apparent.  I don’t really think this strategy works, because the true values of open source products outweigh any short-term gains you get for paid support to a commercial product.  What about other companies that release pure open source products with no commercial "safety net" license?  What is their motivation?

  This question I don’t have a solid answer to, but here are my suspicions.  Software companies that have released products as OSS have a belief (faith) that by this act, the hordes of new users and products that incorporate said product will generate them more revenue  than if they’d kept it closed.  How can they prove this?  I don’t think they can.  But in the end the market will shine some light on the effects of these decisions.  Is Java being used more now that it’s been GPL’ed?  Is mobile Java on more phones now that it’s open source?  More importantly, is Sun making more money on Java based on it’s decision to GPL it? 

  I don’t think the market has decided on this either way just yet.  I wish it would, I’m dying to find out.