Software Economics - Public Goods
To look at the economics of open source software, you have to start with the economics of software as a category, both proprietary and open source.
Note: it should be perfectly obvious to everyone that open source software works, and works quite well for some things. This article is more about understanding the how and they why. Just to avoid any confusion...
If you look at software as a product, it has a couple of defining characteristics:
It's difficult to keep people from sharing it. Not impossible, but not easy, either. It was already doable in the days of floppy disks, but with the rise of the internet, it has become nearly effortless. This means, in terms of economics, that it's "non excludable" - it's difficult to keep everyone from enjoying it once you've created it and started to distribute it.
If you give a copy of a program to a friend, it in no way detracts from your own use of the program. Quite the contrary, it may even make your use of it better, if, say, your friend discovers how to use a cool feature, or writes a handy extension. This is different from traditional goods like bicycles. If you loan me your bicycle, you can't use it to get around. In economics, things like software (or radio or over the air TV) are called 'non rivalrous' goods - many people can take advantage of them without ruining them.
What do you get when you combine something that's "non excludable" and "non rivalrous"? In economics, these are known as "public goods":
http://en.wikipedia.org/wiki/Public_good - read the whole thing if you have a few minutes, it's what I'll be talking about.
As per the article, "The Problem" as it were, is the free rider problem. Let's stop and look at a contrived example:
Bob is an ex-dentist and really knows what it would take to write a great program for managing a dentist's office (or pick your own example... it's contrived, don't quibble about the details). He's also a good programmer, with the skills necessary to implement the program. He talks to a few of his dentist friends, and they're enthusiastic about the whole thing.
Let's look at a few scenarios of how things might play out:
Bob values his time at 10 dollars an hour, and it will take him 100 hours to complete the project, meaning the whole project would cost about 1000 dollars.
One way things could work is that he could find a dentist friend who needs this program, and bill him 1000$ for his time and services, bang out the code, and release it as open source software. Bob gets his money, the dentist gets his code... and all the other dentists in town get it for free, which is bound to make the dentist who shelled out the money a bit irritated, given that he's a human, not a homo-economus, and doesn't like paying and see others get the same thing for free.
Let's introduce another variable: the software is only really worth 200$ to the dentist - any more than that and yeah, it's helpful, but not worth that much money (And please stay with me, I know it's contrived, but keep in mind that the situation is possible, even if the numbers might be different). That means that if Bob wants 1000$ for his time, but the dentist will only pay 200$, then no transaction will occur! The software won't get written, Bob won't get any money, and the dentist will be worse off because he won't have the nice program, and neither will his dentist colleagues.
One way things might still work is if the dentist rounds up some friends and they all contribute a bit, however, that's kind of a pain in the neck for everyone concerned - the dentist doesn't want to get into the software business and spend a bunch of time trying to chase his friends for money, and even if 10 dentists contribute, the ideal position to be in his the 11th guy, who pays nothing, and still gets the software for free. So it's in everyone's interests to not return the dentist's calls in the hope of being the 11th guy. Also, none of them gets the software until they're all on board.
So, how to resolve this problem? The wikipedia page talks about introducing an exclusion mechanism, which in this case would be a copyright system so that Bob can sell a copy of his software for 100$ and be sure that it won't be open to everyone to use. This way, the dentists get the software for 100$ less than they value it at (200$), and as soon as Bob signs up an 11th dentist, he's making more than his time/materials costs, and is therefore coming out ahead! The dentists all know that they're paying the same price, so have no reason to grumble about free riders. In short, everyone is pretty happy.
Of course, in the real world, things don't play out like that all the time. There are problems with the simplified example above, some of which are very evident: the cost of enforcing copyright laws, in an age when copying is extremely easy, is very high and potentially very intrusive. However, "intellectual property" is, by and large, a compromise solution that has had positive aspects, especially when you ignore the outliers like Microsoft, and look at all kinds of niche software vendors, who make a nice living, create good products, and have happy, satisfied customers.
If you look at the other solutions to the free rider problem listed on the wikipedia page, we can see how they might be applied to the world of software.
- Dominant assurance contracts
Assurance contracts are contracts in which participants make a binding pledge to contribute to a contract for building a public good, contingent on a quorum of a predetermined size being reached. Otherwise their money is refunded. A dominant assurance contract is a variation in which an entrepreneur creates the contract and refunds the initial pledge plus an additional sum of money if the quorum is not reached. In game theory terms this makes pledging to build the public good a dominant strategy: the best move is to pledge to the contract regardless of the actions of others.
This means that Bob goes out and gets a number of dentists to pledge 100$ to his dentist program, and if he doesn't raise at least 1000$, he'll give them each back 110$. So it's a clever solution that works out for everyone, but is still a lot fiddlier than the copyright system - Bob has to go sell the contracts and explain how things work to a bunch of people before he can get started. This might be doable with 10 dentists, but for a more mass-market sort of program, it would not be feasible.
- Coasian solution
a mechanism by which potential beneficiaries of a public good band together and pool their resources based on their willingness to pay to create the public good. Coase (1960) argued that if the transaction costs between potential beneficiaries of a public good are sufficiently low, and it is therefore easy for beneficiaries to find each other and pool their money based on the public good's value to them, then an adequate level of public goods production can occur even under competitive free market conditions.
That sounds an awful lot like open source software, especially the kind espoused by groups like the Apache Software Foundation, where making free software is not a moral imperative, but a good way of producing something that is not necessarily a key business component. This has proven to work very well for infrastructure type code, as well as lots of developer tools. It is less proven as a way to develop end-user software - in the example above, it's not like Bob needs help to develop his system, or that the dentists really want to contribute - they just want a working program and don't want to get involved in its production.
Government provision This would mean that the government would be responsible for funding the production of open source software. I'm no free-market zealot, but I think the idea of the government being responsible for software products is not one I am entirely comfortable with. Of course, I do think the government has a role with places like universities, where people can do "research" in the sense of hacking on cool systems just to see what can be done, without necessarily having to be thinking of how to make a profit in the short to medium term. Software like BSD, Tcl, and plenty of other great stuff has come out of universities, meaning that in part it is ultimately funded by the government and taxes. The problem, though, is the process of refining those things down into something people are willing to buy. Would Bob go to a local government official to get a grant to produce his software? Why should Bob get the contract and not some other guy? Does the government official know enough about code or dentists to determine who should write the program?
Subsidies Subsidies might work to encourage software production, but would probably simply be abused. It's probably not as relevant as other potential solutions. What form would it take? 1$ off your taxes per line of code written? It would be difficult to place a value on anything, and might be quite difficult to implement.
Privileged group This, as the wikipedia page says, is an incomplete solution, and is less generally applicable. In terms of Bob, it might mean that instead of valuing his code at 200$, his wealthy dentist friend with a large practice really needs the code - it's worth 2000$ to him, and can pay Bob the full 1000$ to develop it out of pocket and still come out ahead, and he doesn't really care that much about the free riders because he's getting what he needs and the rest doesn't matter too much.
Social norms If Bob and the dentists live in a small town, and are all good friends, perhaps Bob could still release the software, and even though the other dentists could copy and use it for free, they don't, because they feel an obligation to Bob to help him out for the work he's done. Even though they could take advantage of it for free, they would feel bad about doing so, and so each chip in 100$, which after enough people contribute, is enough to cover Bob's costs. It's likely that anything distributed on a larger scale, however, will see more free-riding, and "please pay!" might not work out. And it's probably fairly distressful for a developer to make that jump, knowing he's at the mercy of other people's good will.
None of these solutions is perfect, and all, including exclusion in the form of intellectual property laws, or simply doing nothing at all, have problems of their own. Due to the very nature of software, this is somewhat inevitable, and the best we can do is come up with good compromises, and continue to reevaluate them as technology and society change (this is something that needs to happen with IP laws, for instance).
Trackbacks
Use the following link to trackback from your own site:
http://journal.dedasys.com/trackbacks?article_id=2144
about 2 hours later:
The dentist/programmer analogy has a precedent.
At one time, Sun shipped a compiler (based on the old Unix pcc) with their operating system. When they switched to the SVR4-based Solaris, they dropped the free compiler and asked people to pay thousands if they wanted a compiler. At the time, gcc hadn't been ported to Solaris yet.
So Cygnus Support put out a call for funding for the port: organizations could contribute a certain amount, they would get early access to the port, but eventually it would become part of the FSF gcc (which is exactly what happened).
I was in grad school at UC Berkeley at the time, and our department kicked in a share. So did a lot of other groups, both academic and professional, that used Sun machines. Cygnus raised enough to pay developers to work full-time on the port and even make a bit of profit on the deal.
about 2 hours later:
Sounds a bit like the "dominant assurance contract". I've heard of other, similar examples, so it is possible, although currently not terribly common. Indeed, I don't think it is applicable to all situations as a replacement for proprietary software, but it might be an interesting analysis for some curious free software business type to perform: what are the characteristics that might lead to successfully utilizing that sort of approach? What characteristics of a situation indicate that it would likely fail?
about 3 hours later:
Good article. Just a thought for you, in your analysis there is no assessment of risk. Dentists usually know nothing of software development and any dentist that contributes money for software development prior to its completion risks paying for rubbish. They are unlikely to be good at assessing this risk. The situation is somewhat different for hackers wanting a compiler ported by other hackers with a considerable reuptation, as in the example cited above. If there could be some kind of relatively accurate risk assessment it could be mitigated (via insurance for example) and a whole new "customer base" (for want of a better phrase) of people who aren't hackers and don't want to be would be opened up. I haven't seen anyone able to assess this risk accurately in the general case yet and unfortunately there are rather a lot of charlatans running around calling themselves computer programmers. Rather fewer in the world of open source though!
about 14 hours later:
Most people/organisations trying to make money from open source apply a very conventional business model. They hope to use the software to win service sales from a small section of the customer base. This is a "loss leader" business model (they say that car manufacturers sell cars at near a loss, expecting to make money in vehicle service). Also, with open source there is a special social norm at work: mutual co-operation. A dentist is more likely to contribute an improvement, such as a translation, confident that he or she will benefit from similar contributions. Once established, this social norm is self sustaining. Open source seems to work, perhaps it is better to try to understand why.
about 18 hours later:
Tim, open source very definitely does work (as I mentioned in my previous posting). I guess I should state that prominently somewhere.
That said, being a service business is very different from being a product business, and I'm not really convinced of the model where one hires a bunch of developers, works for a year to create some open source software, then does a 180 degree turn and starts doing service/support for said software. The only people I can think of who attempted this were Ximian. They did get bought out by Novell, but who knows at what sort of profit, or why, or how much they were making.
about 20 hours later:
@Joe
This is sort of what my company does. I work at a small business, and we do a lot of specialized research for larger firms. The deals are usually structured so that they get exclusive use of the intellectual property for a little while, but after that it's all ours.
This type of thing works when people are willing to pay to be the first to have something, and don't care if others get it later (for free, or in my case just less money). Which I imagine describes many software situations, but not all.
1 day later:
There's kind of an unspoken assumption here that proprietary software is 'normal' and has normal economics and that open source is weird with unusual or interesting economics.
I think this is misleading particularly because I often feel that open source works mainly not because it is great, but because the alternatives are so bad.
One blog article I really liked about the economics of proprietary software (in this case Oracle) can be found here:
http://blogs.sun.com/bmc/date/20040828
1 day later:
dave - it's unspoken because I did not say it, I illustrated how IP laws have been one effective way of solving the public good provisioning problem. I also illustrate others, however, they all have advantages and disadvantages.
All software has "unusual" economics compared to things like apples or bicycles - proprietary software economics perhaps little bit less so because IP basically creates property where there is none naturally, so that software can be treated like other more normal goods. That's currently in the process of breaking down in some ways, but for lots of people it has worked out quite well, as my contrived example demonstrates.
The 'unusualness' of software economics is what makes it interesting, though:-)
1 day later:
I wouldn't be so quick to discount the dominant assurance contract model. There was a "nouveau" pledge drive that raised something like ten thousand dollars, 10 bucks at a time.
Sadly, this fell through when transaction costs were found to be too damn high. Apparently between currency conversion, tax, credit card fees and a general account freeze, ten thousand dollar is essentially zero euros.
I think the solution is to switch around the numbers and explore the demand curve a bit more.
1 day later:
silly ajax submit form doesn't update the page when it completes!
1 day later:
jldugger, I think that the dominant assurance contract model might work very well for some kinds of software. What I am not convinced of is that it's a drop-in replacement for an IP system. It's a lot easier to go sell something that already exists than to sell something that might exist in the future. As Xan mentions, there is a lot more risk in the second one, whereas the first one lets you decide here and now whether to buy and start using something.
5 days later:
don't discriminate goods just because it is digital - not only software but all knowledge (writings, music...) that can be duplicated as bits.
Digital property takes just as much human effort to produce as an apple.
Just because software cannot be easily excluded nor deprive the sharer may construe to be a "public good" for purposes of economic analysis but is not a "public good" by concept, as that is ascertained as necessary for society (the public) to operate - like law enforcement - which is borne by tax dollar.
The failure to recognize this becomes a failure for society to move into a knowledge-driven one - where people will only deem hardware and tangible goods as value - and drive vendors to find ways to 'lock in' by slipping in non-standard close-ended archaic built-from-scratch codes.
we all need to get over the horrors of DRM and unscrupulous software proprietors and find a fair, equitable model for people to pay for software (open source or close) by the true benefit (ie 'Utility') that the barbers consume.
putting a 'public good' tag is equating software to $0, it doesn't solve anything...
7 days later:
bummerhan, the problem is that, as I outlined at the beginning of the article, without 'artificial' restrictions it is a public good, or very close to it. Society has added those restrictions because, as the linked wikipedia article says, public goods are often under-provisioned. I am not arguing that software must be free, merely showing how things work.