Friday, October 31, 2008

Computer Software and Cars

As those who visit Slashdot are probably aware, many of the most vocal members of the site tend to push the ideology that all software should be open source. This is a noble goal, but it is not a workable model.

The main argument for people to want the source to their software (at least, in theory; in practice it is more because generally open source is free as in beer) is to tinker with it, to go "under the hood."

On the surface, this seems like an excellent analogy, comparing software developers to automobile hobbyists. You get a piece of software (or a car), and you tinker with it to really make it your own. Perhaps you make the user interface flashier (give it a good paint job) or tweak a few bits to make it run faster (tweak a few bits to make it run faster... yea, that translates pretty well).

So from that perspective, it seems like all software should be open source. Honestly, virtually everything technically is open for you to tweak, if you know how (for example, lawn mower races or anything that has received the Tim Taylor "more power!" treatment). But not software. Seems pretty unfair, as if we're getting the proverbial shaft.

But let's look a little closer. What is different between a piece of software and a car? Most notably, and what I'm focusing on here, is the price of the materials.

When you buy a car, the company that sold it to you really did sell the car to you; you can do whatever you want to it (except, probably, copy the design and sell it to others). They don't care what you do to it because they have your money. When you paid them, you covered the entire cost of the materials that went into the car, as well as the salaries of every engineer that helped design it, and every laborer that helped build it. Beyond that, there is no other car out there, even of the same model, that is exactly the same. (If you've ever seen discussion boards where people with the same cars are discussing their gas mileage, you'll understand this.)

When you buy a piece of software, most companies merely license it for your use. You don't own it. You don't even own your copy of it. You may own the media it was distributed on, but I am not a lawyer, so I can't say for sure. Like the car, though, what you paid for it covered the entire cost of materials and labor that created it.

But what's different? Why do they license instead of sell the software? Cost of materials. When you purchased that car, a very large percentage of the cost went towards the materials that made it (I don't know the exact numbers, but I remember someone once saying that, if it weren't for economies of scale, assembling a single average-priced car from individual parts would cost around $500,000). But when you purchased that piece of software, virtually none of the cost went towards the materials. A CD only costs a few cents to manufacture, and the extra packaging cannot possibly make up for much more of the usual $50 cost.

The car manufacturer doesn't need to worry about you copying the design, tweaking enough to avoid patent issues, and selling your own cars in competition, because it would simply cost too much; the barriers to entry in the automotive market are too high. But if you were allowed to tweak a few lines in that piece of software and start selling it, there's virtually nothing stopping you except the license agreement. Cost of materials? If you really wanted to get fancy, CDs and packaging are relatively cheap, but internet distribution is virtually free. There are no barriers to entry in the software markey beyond training!

So, although the car/software analogy is a nice way to talk about the benefits of open source, it doesn't quite fit. There will be a market for closed source software for the foreseeable future because it simply makes more business sense.

Now is the time that the Slashdot crowd would loudly exclaim "charge for service contracts, give away the software!" But honestly, I don't know about the rest of you, as a consumer I don't like service contracts. I feel like I'm wasting my money when I buy them for appliances and similar. I'm not going to pay someone else to answer my questions when I can find free answers myself.

Beyond that, service contracts just don't make sense for some software. Home office software, for example; OpenOffice.org doesn't even bother to offer anything of the sort, because it simply wouldn't make any money. The only people you can sell service contracts to are business users. For a business, it makes sense to buy the contract when it would be cheaper than hiring an expert. And, not all software is made for businesses (for example, games).

Before ending, I would like to say that I completely support open source software, I think it's great stuff, and I love watching as the quality and usage improve. I have donated money a couple of times (although not large amounts), and have released a few small utility programs with source myself. The purpose of this column was to illustrate that not everything can become open because there is no viable business model. If it really bothers you when someone keeps their software behind a restrictive license agreement and protects their source, start your own open version to compete. With enough enthusiasm, you'll probably beat them into submission in the end.

No comments: