Sunday, August 2, 2009

An Explanation of the Economic of Open Source

When I was in University, not long after discovering a thing called "Linux" and all the wonderful free software that came with it, I fell in love with Open Source. The ethics of openness and meritocracy really appealed to me. It just seemed to me to be the "right" way of doing things.

However it was a source of some good humoured tension between myself and my colleagues, circa Red Hat 6.0. Reaction against the idea of open source basically ranged from "anything given away for free can't be any good", to "very idealistic but it has no future since there is no way to make a living off of 'free'".

When he came to speak with us at the University, I asked the inventor of Java, Sun Fellow, and former Alum James Gosling, whether Java would ever be open sourced. He replied that this would be unlikely to ever happen, as no one had yet figured out an economic model for open source, and the quality of the software would likely remain below traditional proprietary products, since it could only be done by otherwise employed programmers in their free time -- not an uncommon sentiment at the time.

Since then both of Sun's flagship products, Java and Solaris have been open sourced.

Open Source is now big money, with many largest technology companies converting their product lines to open source, and many open source companies enjoying unprecedented profitability. What happened?

To finally reply to Mr. Gosling, people figured out the economics of it, and the economics are good.

Basically it's a sophisticated variation of a loss leader, like giving away razors so you can sell blades. Except you share the cost of developing razors (including R&D, which is significant for software) and development of the market (everyone already knows they need to shave, but not everyone knows they need a new "foobarizer" software); and all revenue thereafter is almost pure profit (as there is no manufacturing costs).

As razors are hardware, once designed to specification they can be mass produced by the cheapest manufacturer -- which is how everything tangible you buy in a store is made in China. In software, however, there is no cost to manufacture; the cost to design correctly is the entirety of the production overhead.

Since software is complex, and requires highly skilled, creative, and thus expensive designers; it cannot be out-sourced to the cheapest bidder. Companies that once made hardware, such as Intel and Nokia, are increasingly turning to software to help compete against strong Chinese companies good at cloning things.

That may explain why software is popular, but how is open source in specific profitable if you're giving away the designs to your products for free?

To get the complete picture of the economics of open source, I have reproduced the following reply I gave on reddit to this "old-school" take on open source economics by Erik Naggum.

The economics of open source are now well understood.

The part that Erik missed was neither source code itself nor the time invested by a programmer, no matter how expert, is intrinsically economically valuable. What's valuable is source code that creates value for a customer.

Let's say you create a library for Singular Value Decomposition. Good luck finding someone who finds that so valuable that they will pay you money for it. Maybe you can, but it'll take work to find such a person.

Now let's say you open source that library, and share the burden of maintaining it with other programmers in the same situation with you. You have code that is the product of 10 programmers at the expense of 1.

Now you have more time to integrate that library into a larger application, let's say one for visualizing complex data sets. Now you begin to start creating enough value that it's easy to find people who will pay you.

But what if it's GPL? You've still created value, but things are not as simple as being able to just sell it as a software license.

Well, no matter what you make, someone will always either manage to break it; or find some flaw they would like improvement in -- especially as time and market conditions change. So you sell support and contract upgrades.

But since everyone else can just take a copy and distribute it themselves, won't you have endless competition?

Well yes, but the hard truth is that's probably in your own long-term best interest. There is collective benefit to having competition.

As the creator of the software you have competitive advantage amongst any pretenders; you know it best, and your superior skill will tend to win out in the end. So the only people you are really competing against are other experts.

There are customers you cannot or will not serve yourself, that can be served well by your fellow competitors. Even if a competitor takes money out of your hand on one transaction, the fact that he even exists means the market for your goods is growing -- and in the aggregate -- you'll have more customers than if the market was entirely proprietary to you alone. Consumers will enjoy the competitive pricing and service, and will see it as an advantage over proprietary markets.

Moreover, since you now share a common open market, your product stands a chance of becoming a de-facto standard, meaning it becomes the platform for launching ever more specialized, value-added extensions to the original product. Even as the platform loses value, it's corpse fertilizes the ground for the next generation of products, ever climbing upward.

It's called "growing the pie", and is truly the healthy and productive free market at work; no "communism" or "sharing" anywhere. It's proprietary systems, trying to lock their own customers into traps they cannot escape to wring every last penny out, that is anti-free market.

It's not time (spend coding) that's economically valuable, it's the value that code creates for a customer. And if you don't know how your time creates value for customers, you don't deserve to be in business.

So to the summarize the economic proposition of open source:
  1. Decide what it is you do that provides value to someone with money; which we'll call V.
  2. Decide what is needed before-hand in order to enable V; a "platform", which we'll call P.
  3. Begin designing and producing P, as pre-requisite business development overhead necessary for V.
  4. Share P as open source, inviting outside participation in the evolution of P; a community of P of size N we'll call C.
As you can see, the key to this strategy is the development and maturation of P through the cooperative efforts of C.

With luck and management, the cost of development of P is divided by N. Moreover, as software creation is a highly creative task, the outside input from C has multiplied the value of P by N. On the down side, you also may have as many as N possible competitors to V.

However recall that you specifically chose V to be something that'd be hard for others competitors to replicate. If you did a good job, your "competitors" products are actually complementary to yours. If you did a bad job, you're no worse than any other firm in perfect competition.

With time, P grows and develops inertia that causes it to disrupt other similar (proprietary) platforms, lending V a competitive advantage because it uses P.

As all technology follows a typical S-curve life cycle, features lose value and migrate from V to P. This is natural and expected, and indeed necessary for the continued growth of P. New and more developed P enables newer and more valuable V.

Like a shark, firms must always be re-evaluating V to ensure they're still giving a reason for consumers to pay for V.

No comments: