Jamie Hill
Photo of Jamie Hill

UX Designer, CSS Wizard, Ruby on Rails Developer.

On Open Sourcing Your Competitive Advantage

It’s been a little quiet around here, so I thought I’d share something that’s been on mind for a while.

At what point in the lifecycle of a commercial project is it a good idea to Open Source?

Take Shopify for instance, they open sourced their payment integration code early on in the form of ActiveMerchant. This was undoubtably a wise move, as they benefitted from an entire Ruby community testing their code in the wild and contributing back in the form of new payment gateways.
I don’t know exactly when it was in the development of Shopify that ActiveMerchant was released but at what point are you open sourcing your competitive advantage. Don’t get me wrong, I love open source, I am just trying to determine when is a good time to open source and when are you just giving away your competitive advantage. For instance, if ActiveMerchant had been released 2 years before the release of Shopify, anyone could have used it in the development of a Shopify’esque product… but would anyone have even thought of using it in that way? Who knows?

Bite sized chunks

I feel it is a good idea to open source little and often. Obviously if Shopify had open sourced their entire shopping cart, subscription code and templating solution as a whole, you would have seen Shopify’s popping up all over the interweb and their business would likely have suffered. Instead they opted to open source their payment gateway code (ActiveMerchant) and templating library (Liquid) separately as self-contained projects.

A key ingredient

There comes a point when you simply should not open source certain code, this is when it contains the key ingredient to a commercial project. Do you think Coca-Cola would have been as big as they are today if they had released the complete recipe, including the key ingredient for their revolutionary new black fizzy pop? It’s all about the byproduct, for example if Coca-Cola had released the secret to their new screw on lid (I’m sure they didn’t invent screw on lids but bear with me), they would have got their name out there through recognition of their fancy lid, the pop community may have helped refine it’s design and coke may have stayed fizzy for longer… that’s one hell of a contrived example but hopefully you get my point. It doesn’t matter that every other pop out there will also stay fizzy longer, they’re not Coke.
I’d love to hear peoples examples of commercial projects where code has been open sourced. What result did it have on the project? Was it worthwhile or did it have a detrimental effect on your business?