tecosystems

Is Open Source Innovative?

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

In making the case that the window for Linux “worldwide domination” in the mobile space has elapsed – its role as the foundation of the open source Android platform notwithstanding – Forrester analyst Mike Gualtieri argues that open source isn’t fundamentally innovative.

Open source never seems to be the innovator. Instead, it seems to disrupt pricing power for established technologies.

There are numerous counterexamples to this; my analyst colleague from the 451 Group Rachel Chalmers cites Unix, others the underlying protocols of the internet and I myself would point to the more recent work that browser teams like Chrome and Mozilla are doing or the pre-Cambrian explosion currently occurring in the non-relational database market. But superficial questions like “can open source innovate” obscure real, fundamental changes in the way that software is being developed today. Changes that are important.

The fact is that neither open source nor proprietary development is intrinsically innovative. The availability of source code has no real bearing on how unique the underlying ideas contained within it may be. What people mean when they say open source cannot innovate is that the profit motive, or more accurately profit models, associated with proprietary software development create greater incentives to innovate.

Which may or may not be true; my own view is that attitudes towards monetization of software generally appear to be somewhat cyclical. Tracing the history of software revenue models from IBM to Microsoft to Google to Facebook, attitudes towards the importance of software as the primary revenue mechanism come full circle [coverage].

In any event, the profit motive is only an incentive for innovation for software that is written to be sold. Which a great deal of software today was not, originally.

What does the following list of projects have in common?

  • Cassandra
  • Git
  • Hadoop
  • jQuery
  • Memcached
  • MongoDB
  • Rails

The answer is that none of them were originally written for purpose of sale. Unlike the Oracle database or Windows, these projects – all of which have achieved mainstream success – were written not to be sold but to solve a problem.

This inverts the traditional software startup model, in which a market opportunity is identified and solutions are built towards it.

The more common software development path today is reverse engineering projects from existing solutions. Rails, the framework built by 37 Signals, was a byproduct of the construction of their primary SaaS products (one reason their founders recommend selling your same). Git was written by Linus Torvalds to replace BitKeeper in managing changes to the Linux source tree. 10Gen, the authors of MongoDB, were originally a Platform-as-a-Service company, not a database vendor. Cassandra was built by Facebook to manage their Inbox. Memcached was written by Danga for Livejournal. Hadoop was written to build Yahoo’s search index. And so on.

That many of these technologies have been commercialized after the fact changes nothing about the substance of the original idea. The history clearly demonstrates that the incentives for software innovation may vary widely. The acceleration of this extracted-software model is not entirely attributable to the commercialization of the internet, but certainly that provoked substantial adaptation – much of what we consider innovative in the software infrastructure space has come from the web – while enabling would be sellers of these technologies by making marketing, sales and customer acquisition more efficient.

The reality is that the nature of how, where and why software is developed has fundamentally changed. There are many reasons to develop software. What the incentive is for a given project, and what that dictates with respect to the development model employed, is likely to say less about whether the software is innovative than the nature of the problem it is intended to solve.

Innovation is a function of incentive, not the software development model.