Tuesday, September 19, 2006

Open Source vs. Closed - Another Look

A recent post by Matt Asay got me thinking about the real vs. perceived benefits of open source. In the past, it has been taken for granted by open source supporters (myself included) that the more open the process, the more easily one could build a community, fix bugs, add features, and trample the competition. However, I'm beginning to wonder if software need not necessarily be open source to actually derive the same benefits usually associated with the open source process. I've never been sold on open source as a means to get developers to write code for free. Rather, I always chalked up open source's continued success to a couple of factors: the more open process usually wins because the bar to access is lower and the internet has driven down the price of commodity software, thus creating an environment conducive to open source proliferation (read "There is no Open Source Community"). Now I'm wondering if software vendors can actually create a community, engage with it in an open process, and derive benefits from an active (and activist) community without actually making any of the software open source.

Let's engage in a little thought experiment. Let's say a software company makes a widget that greatly enhances the IT experience (and we'll focus on the data center IT market, because that's the devil I know). Let's also assume that it doesn't have any funky proprietary protocols that won't play nice within an existing environment - all interfaces are standards-based (RSS, HTTP, DAV, SMTP, SNMP, etc. etc.) We should also assume that the API's are thoroughly documented and easily accessible, perhaps with an open source dev kit thrown on top to ease the developer curve, although even that need not be open source. And of course, given this market, they have to have a free, usable download that potential users and customers can take and deploy - and when I write "usable" I mean capable of doing real work without having to buy a product. Given all this, what possible benefit would this company derive by taking an additional step and making it open source?

Given the above, a software company can release stuff, build a user base, encourage participation, engage with their community via forums, bug trackers, blogs, the whole bit. Users can download, extend the software via a dev kit, test for bugs, and most of all, use it for everyday work. Theoretically, they will become so enamored with it that they will someday buy the supported product or recommend someone else to purchase. Potentially, this software vendor would lose the benefits of a security audit or contributed patches and extended features. However, this type of contribution is so rare, that one might take the view it can be discounted, since one can never depend on that type of collaboration.

To take this thought experiment one step further, let's say there are two competing software platforms/products/suites/whatever-you-want-to-call-it. Let's say that the differentiation between the two is a toss-up in terms of features, reliability and support. The difference is that one is open source, and the other is merely "an open process", but you can't see the code. I suppose you could argue that it's more difficult to support multiple platforms with closed software. However, my experience with commercial open source is that the impetus for supporting more platforms comes from the software authors, not outside contributors. In my experience, outside contributors overwhelmingly use commodity Windows, Linux or FreeBSD on x86 hardware, and the decision to support other platforms comes at the behest of customers that need HPUX, Solaris SPARC, or AIX. You could argue that customers can take open source and make it run on their platform of choice without support from the vendor, but that's not usually the way procurement works. Usually, the customer looks at what platforms are supported and make their choice from there.

In the past, I argued that a small edge in openness would make a difference in the long run, simply because the more open the software, the lower the bar to entry. However, I would say that the bars to entry rest more on usability and ease of deployment than anything. You would, of course, lose free software advocates, but I would argue that this comprises a small minority of IT staff or management. From this thought experiment, it would seem that you can derive the benefits once thought to be the domain of open source without actually going open source. When most open source supporters think of closed software, they immdiately jump to the image of oppressive EULA's that severely restrict the freedoms of the end user. However, a software vendor need not construct an oppressive EULA just because they are closed source. Proprietary software can be freely redistributed with few restrictions on software usage. I suspect that the arguments on open source and proprietary have been a bit too skewed to the extremes. There seems to be an unexplored middle ground that vendors can use to their advantage - make it free enough to use and distribute, but not open up the code.

Now for the flip side of the argument: if company X is going to be that liberal with their licensing, what advantage do they maintain by not going full monty open source? The old bugaboo FUD about open source - that competitors can copy your features, steal your IP, and subvert your development process, have not reallly turned up in the real world. In the software market, these tactics can be spotted, and there are IP laws that can enforce compliance (assuming a GPL-like license, of course). Furthermore, the framework and platform for separate software products, even if they're direct competitors, are most likely vastly different, and the amount of work needed to shoehorn one algorithm or feature into another platform will most likely be just as costly, if not more, than developing a feature in-house. And let's face it, even with the most closed software, features are open to everyone's eyes. You don't need access to the source code to see new features.

In conclusion, I don't see any clear advantage of releasing software under an open source, GPL-like license. However, I don't see much disadvantage either, so in a crowded market, it's probably best to err on the side of being more open than your competitor.

I have a suspicion that Microsoft is looking at this very argument - they probably feel that they only need to be "open enough" to stave off much of the open source competition. Given their market position, they're probably right.

My company, Hyperic, has taken the view that it's best to err on the side of openness, especially given the crowded market for IT software. Another company with a similar target audience but different type of product, Splunk, has taken another view: that they only need to be "open enough". It will be interesting to see which tactic is more successful over the long term.

4 comments:

Anonymous said...

Hey Pat! Thanks for your comment. I agree that both companies, Hyperic and Splunk, will continue to flourish and grow. And my main point was that we are essentially taking the same path - with the one difference being that one is open source and the other isn't. I have to admit that Splunk was a major inspiration in writing this, because it got me thinking about this basic question: does releasing open source code actually give a company a real advantage in the market? I've been very impressed with what Splunk has been able to do, and it's really got me thinking about whether a company needs to release open source software. Over the long term, my bet is that the more open you are, the better your chances, but now I'm not completely sure.

Anonymous said...

Pat,

ps - I don't mean to pit Hyperic vs. Splunk as competitors. I picked the two companies because they sell different products to similar customers, and they have slightly different levels of openness. A better case study would be if I could find a direct competitor with a less open free version. However, I also realize that having the word "splunk" in my post will garner extra page views :D

Unknown said...

There is no "one perfect answer for every scenario", so blanket statements are hard to come by. That said ...

Perhaps you're asking the wrong question altogether.

Rather than "what does the company get?" one might ask "what does the user get?" With open source software the user gets much more control, can participate as a peer, can often even select between vendors and can distribute risk more effectively (e.g. the company going bust doesn't mean the product is gone).

The "user" may be another company in the industry as well, though not necessarily a direct competitor.

In the end, the user gets more value which translates to a more compelling offering.

But in the end that's really more about the product itself and may not translate to greater sales or market share for the company of origin. That's because open source is not a business model, it's a development model. The business model and the marketing to back it up have to come from elsewhere.

But given equal savvy when it comes to marketing and business, the open product should make a more compelling argument to the market.

This is, by the way, one of the things that proprietary companies are trying very hard to do: steer the conversation away from the benefits the user gets and towards metrics they may be able to compete on (features, etc) and if one must discuss "openness" do so only in terms of the company of origin. Sad.

girish13 said...

Deriving profits and marketing out of open source is a startegy used by many companies. This is besides the fact that some companies actually use open source as a way to improve there commercial products.

According to this article

http://icodeleague.110mb.com/cmsimple/index.php?Everything_Else:Economics_of_Software_Development_-_Open_Source_vs_Closed_Source

A dual licensing strategy which is very common today(example MySql, RedHat) is exactly the way to promote your product through opensource. Get developers to like your product, So that the companies which these developers work for buy the commercial version of those products.

Interesting Use of open source I must say