Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

The time for open source, Part 2: Make money giving things away

Open source is all right, John, but you'll never make a living at it.

Peter Seebach, Freelance writer, Wind River Systems
author photograph
Peter Seebach has been messing about with source code since before it was fashionable. He has worked on everything from language standardization to mouse drivers.

Summary:  How can you make money giving away your product? There are many ways. This article, second in a series, looks at the business models that have made it possible for people to generate money working on open source, perhaps explaining why there's so much of it.

View more content in this series

Date:  15 Mar 2011
Level:  Intermediate PDF:  A4 and Letter (41KB | 9 pages)Get Adobe® Reader®
Also available in:   Russian  Japanese  Portuguese

Activity:  8602 views
Comments:  

In the essay "The Physicist as Programmer" (reproduced in the book Programming on Purpose II, where it is Essay 13), P. J. Plauger offered the following advice for enthusiastic programmers:

Never give away anything you can sell.

While this advice has generally done quite well for many of us, there are some very interesting exceptions. In this article, second in a series, I examine some of the ways you can make money giving away something you can sell, or perhaps selling something you can give away.

Plauger's advice tells you how to make money, without ascribing any grave moral failings to people who choose to do otherwise. Other people went further, and when "free software" was a new idea, some people believed that it would destroy the lives of programmers because it would make it impossible to receive pay for programming software that did have restrictive licenses. People believed this, in all sincerity. They also pointed out many things you could never make work with such software; things like operating systems. Things that were simply too large for a small team of people to do in their spare time, and therefore could not be created unless they were being sold for money with significant licensing fees.

It didn't turn out that way. In this part of my series on open source, I look at some of the economic models and business models that work for open source projects, and a few examples of fields where some once viewed open source as impractical or impossible.

Towards a post-scarcity economy

Fundamentally, limitation of resources drives economies; there's not enough stuff, so we have to find ways to allocate stuff. Speculators and futurists talk about a "post-scarcity" economy, in which things are generally free; in which the costs of things are too low for it to be worth measuring them.

While we're some way from having enough food and energy for everyone, let alone doing so safely or cheaply, software provides an interesting special case, because duplication is essentially free. This explains why people have assumed that open source couldn't provide a way for people to make a living; without the artificially induced "scarcity" of licensing and the like, it's hard to for people used to a traditional economy to see where there could be an exchange of value.

However, software development is still work, and still requires specialized skills, and the creation of software, which you can then duplicate for no measurable cost, turns out to be a value too. What we see, then, is a migration away from the traditional model of pricing items by scarcity, towards a model of pricing services.

What makes this particularly effective is that it allows participants to compete with a broader economy that is still scarcity-based, and undercut prices by a factor of 100 percent. If you charge for licenses, free software will be 100 cheaper than your product. You can never beat that margin. The only way to compete effectively with the post-scarcity providers is to switch to their model. You have to figure out a way to provide things without charging money for licenses.

In short, even if you can't make money on open source software, you may be able to make a whole lot of money with open source software. So much, in fact, that it may be worth spending money creating and enhancing the open source software you need to do so. It's going to be a long time before we fully understand the implications of open source for the broader economy, but so far, it's been very good for just about everybody.

BSD and Linux

BSD and Linux® are now both well-established examples of successful development of operating systems as open source. Both, of course, built on existing work. Before you dismiss this as "cheating," consider that this is the entire point of open source. You can build on what other people did, and provide things for other people to build on. It is not "cheating" to play to the strengths of your development model.

BSD was built on the work of people at the University of California, Berkeley. They began, long ago, with AT&T's UNIX®, and started modifying it. Eventually, they reached a point when they could remove all the remaining AT&T code and have a complete new system. They did. The purpose of the AT&T code was to provide infrastructure under which development of individual components could take place. (This explanation is slightly oversimplified. A full discussion of the issue would be an article in its own right, and would probably violate a number of confidentiality agreements.)

Similarly, the Free Software Foundation's GNU project developed a broad variety of utilities and tools for UNIX-like systems, which relied on those existing systems for their infrastructure. However, this meant that, when Linus Torvalds released a kernel, the tools to run on it and provide it with basic userspace functionality already existed. Again, existing infrastructure allowed the development of the needed components.

Some people have argued that no one could have done an open source operating system "from scratch" — without the existence of other systems for the infrastructure work. This may well be true, but it's also true most modern operating system work now; we've gotten well past the point where the operating system can be toggled in on the front panel.

Making money on Linux

Back when Linux was first showed up, many people claimed it would be commercially irrelevant because there was no way to make money on it. This has turned out not to be the case. Interestingly, rather than fewer ways of making money, open source appears to offer more ways of making money. With proprietary, closed-source software, your primary moneymaking plan is to sell licenses, and possibly do some custom work for specific customers. Carrying that custom work can become a major cost, though, and there's no one to share the costs of maintenance. Most of your revenue has to come from selling licenses. Software developed for internal use never makes you money; all it does is provide functionality. (That can be worth it, but it's never a direct source of revenue.)

People making money from Linux do so in many ways. One is to sell a "distribution" — essentially selling the packaging of a bunch of software as a bundled solution. You can make money doing this, simply because good packaging is worth something to people. Even if they don't have to pay you money to get your product, they may well prefer to send you $10 for a DVD than to download and burn it themselves. Projects doing this can also collect donations.

An interesting way to make money can be found in hardware vendors. Hardware vendors can sell more hardware if their hardware is more useful, and these days "runs Linux" is a great place to start on "more useful". Meanwhile, professional programmers can sell the service of developing Linux support for hardware. The programmers get paid to program, developing code which (we hope) they can then contribute to the main Linux source tree. The hardware vendors get paid to sell hardware; paying someone to develop support for it is a cost of doing business. Conveniently, it's quite common that it's a much lower cost than, say, the cost of developing your own system from scratch.

Services and support can also be sold, of course. There are always people out there who want something done, and would rather hire someone else to do it. Open source creates a real and competitive market for support services — supporting software is no longer a task limited to the one company that has access to the source code.

Viable ecosystems

Like biological ecosystems, a computer ecosystem is more viable when it has more participants and more diversity. Building an ecosystem for a closed-source project is certainly possible, but it's not easy. Third parties don't want to be too dependent on software that could easily migrate away from them, leaving them with nothing to sell. They will do it if they have to, but it's something people would usually rather avoid.

With an open source project, the ecosystem participants don't have to worry so much that the project leader will move in an unacceptable direction. After all, they can just take the version they liked and work on it. It might not be ideal, but it's better than being totally out of business if a single entity (which may regard you as a competitor) decides to change something that was vital to your product's viability.

In both closed-source and open source ecosystems, the participants have common interest. In open source ecosystems, though, there are fewer secrets, and thus, fewer opportunities for mistrust. You don't hear news stories about the U.S. Department of Justice investigating allegations of Linus Torvalds using special undocumented system calls in Linux to make his word processor run better than any competitor's could.

Reducing barriers to participation in a market makes it easier to build a viable ecosystem. Increasing the size of the market does, too. So if you give away a product, making it easy to get large market share, and you let everyone play on a level playing field, it should be easy to develop a thriving ecosystem. The theory, in this case, works out; open source software provides a large pool of opportunities for people to make money.

Proprietary connotations

Twenty years ago, I regularly saw the word "proprietary" used in advertising and marketing copy. It was used roughly to mean "special and good". The implication was that something was a special advantage a given company had, with which other people couldn't compete.

Years later, we've gotten used to interoperability. We refer to a device as having a "proprietary" plug or a "standard" plug, and of course, the standard one is better because doesn't require a unique cable that you can use only with that one device. You know the moment you see that cable that you will inevitably lose it, rendering the device useless. Eventually people catch on, and they start preemptively viewing devices that use special cables as useless or annoying.

So now, if I see the word "proprietary" used, I more often see it used as a pejorative by competitors. A "proprietary" network is no longer an especially fast network; now it's a network that doesn't actually network. No one wants that. Looking back, I think those connotations were always more accurate; it just took a while for people to become aware of that.

Financial networks

Frankly, even I was a bit surprised by this one. Not that I didn't think open source technologies were up to the task; I just didn't expect the financial industry to catch on within the decade. The London Stock Exchange recently announced that their new Linux-based platform was noticeably faster than the previous implementation.

Over time, people have gradually realized that security through obscurity doesn't work; if you really want things to be reliable, there is a great deal to be said for having 100% complete source code availability. Nonetheless, financial markets have often had some mix of the people who think "proprietary" means "fast" or "good". (see the Proprietary connotations sidebar). It's nice to see that progress has been made on that front.

Routers and network appliances

It's no secret that a lot of wireless routers run Linux under the hood, as do many other network appliances, such as some network-attached storage (NAS) devices. However, most consumer routers I've used have been disappointing at best. They've tended to buggy NAT implementations (such as being unable to contact your external address from the inside network), limited settings, bad DHCP implementations, and the like. A friend of mine spent something over a month trying to get a vendor to acknowledge that you couldn't enter a WEP key except in hexadecimal; he finally sent them a screen shot of the interface, with "ASCII" clearly selected, complaining that "g" was not a valid hex digit. A new update came out, eventually.

DD-WRT

The magic of open source, though, is that if they're running Linux, it's usually possible for us to update it. Sure enough, the DD-WRT project offers router firmware replacements that are full-featured, powerful, flexible, and just plain awesome. After the second or third time I griped about a misbehaving router, one of my friends convinced me to try DD-WRT. The DD-WRT allows a user to replace a commercial router's firmware with a free Linux implementation, adding a number of functions that are within the hardware's capabilities, but not necessarily utilized. I haven't looked back; it's amazing.

What's particularly interesting about DD-WRT is that the user interface is excellent. For a long time, user interfaces were regarded as one of the things for which open source models were hopeless. Certainly, I've had plenty of bad experiences with open source user interfaces. However, the DD-WRT interface is remarkable; it is unequivocally better than any wireless router factory-provided interface that I've seen. (As a disclaimer, though, I've been using consumer hardware, not high-end professional stuff.) As a special bonus, it doesn't automatically and randomly redirect you to an advertising page every so often, nor can the firewall be configured remotely (see Resources for an example of a closed-source product that did allow that).

Given the availability, free, of DD-WRT, why do many companies persist in shipping less powerful, less flexible, and buggier interfaces on their routers? I am pretty much stumped on this one; it would seem to me that hardware vendors would be much happier using DD-WRT, so they could sell more hardware at lower costs. It may come down to branding issues, control, or job security; we just don't know.

One more case study

A while back, my employer had a problem: We needed a particular piece of functionality, and while there were some near matches for it available (as open source, of course), there were a number of mismatches between existing designs and our primary use cases. We decided we needed to build our own. There was no question that the resulting project ought to be made available as open source. Sure, we were spending development time on something that could conceivably be a competitive advantage; however, the advantages of something open to the community, which other people might work on, obviously outweighed that.

That project is pseudo (see Resources), and it's now being used outside our environment by other projects, including the Yocto Linux project. If you're interested in learning more about a specific open source project, look for an upcoming series on pseudo on IBM developerWorks.

In the next (and final) installment of this series, I'll address the frequently asked question: If open source is such a great thing, why is there still commercial software?


Resources

Learn

Get products and technologies

Discuss

  • Get involved in the developerWorks community. Connect with other developerWorks users while exploring the developer-driven blogs, forums, groups, and wikis.

About the author

author photograph

Peter Seebach has been messing about with source code since before it was fashionable. He has worked on everything from language standardization to mouse drivers.

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


Rate this article

Comments

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Open source
ArticleID=631833
ArticleTitle=The time for open source, Part 2: Make money giving things away
publish-date=03152011
author1-email=dw-nospam@seebs.net
author1-email-cc=

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

For articles in technology zones (such as Java technology, Linux, Open source, XML), Popular tags shows the top tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), Popular tags shows the top tags for just that product zone.

For articles in technology zones (such as Java technology, Linux, Open source, XML), My tags shows your tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), My tags shows your tags for just that product zone.

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Try IBM PureSystems. No charge.

Special offers