Open-Source Tensions
I am a big advocate of open-source software. I believe that, along with Amazon Web Services, open-source has been the single greatest enabler of startups in the last decade or more.
Amazon made it possible to launch an online startup for pennies on the dollar of what it cost in the 90s; I still remember startups that raised millions just to buy and run their Web servers. Nowadays, you do it for a few hundred dollars per month.
Open-source software - programming languages like Ruby and Rails, Nodejs, Python, PHP; databases like MySQL, PostgresQL, Mongo, Couch; operating systems like Linux and its variants; Web servers like Apache and nginx; the list goes on - makes it possible to build services for a pittance. Further the proliferation of this software has made the labour cost of building something cheaper, as so many components are available off the shelf (or off the github), with enough variants to satisfy almost any need.
At the same time, a tension exists between commercial and open-source. Of course, commercial vendors would prefer open-source did not exist, since they make money off selling software! I refer, however, to the companies who have built their businesses on open-source.
There are two kinds of such companies:
- Leveragers: These are companies like Facebook, Twitter, Google and many others whose core product is not open-source, but who use open-source to get there. These companies build new open-source products and extend existing ones, and then contribute their modifications back to the world at large, often under liberal MIT/Apache licenses. Facebook's value comes from connecting people, not database engines; Google's value is in its index, not its filesystems; Twitter's is in its users, not its messaging queue.
- Stackers: These are companies who build a business on open-source products. Some, like RedHat, package up service and support around the products. Others, like Cloudant, offer to run these products for you, packaging up the expertise and management. Their core product is the open-source, or a variant of it.
While the "leveragers" sometimes become overly concerned that their technical advances are part of their competitive advantage, overall they tend to recognize where their value lies and contribute.
The "stackers" are a more challenging breed. Because they actually build and operate the core products, and are paid to do so, they quickly identify shortcomings in the software and invest their own resources to upgrade the products. However, they are doing so to capture more sales.
Thus, the challenge. If you are Acquia, running Drupal for customers, and you make a modification that does not exist in open-source Drupal and hence leads to a boost in sales, you begin to wonder if you should be releasing your code back to the open project.
Often, these tensions between commercial and contributory inside open-source companies creates split personalities. Companies claim to be open-source and contributing, but do not want to contribute too much (the definition of which is amorphous).
Over time, if the open-source project appeals to enough users, your "unique" advancements will work their way in from other sources. Given the speed of open-source, it will happen sooner rather than later, and likely in a fashion fundamentally different than how you did it. This will create a challenge to maintaining your own product, as you have now come to rely upon a version growing further away from the mainstream.
At the same time, if you have an add-on which is not part of the product, you can easily leverage it for commercial value without diverging from the product. A great example is Heroku, who built everything on the core Ruby, nginx and other products, but built a proprietary mesh to route between and manage the products. As a separate component with specific value, they were not torn between commercializing a unique asset and the open-source core.
At heart, a company needs to decide what is its core value-add offering to customers. If it is a commercial software, then be open about it internally and externally. If it is a social network, then focus on the network.
Like most challenges in a company, you need to start and end with your value proposition, then work out the rest.