Maybe it already does? If I’m behind the times and have missed this, please tell me. I’ll describe the idea in terms of browser plugins because it’s such an easy, concrete example, but clearly the idea should be more broadly applicable.
There are a number of Firefox extensions I’d like to have that don’t yet exist. I would be more than happy to pay for them. Furthermore, I wouldn’t care if other people got it for free. I just want to use it, dammit. What this suggests to me is that there should be an “exchange” for Firefox extension projects.
There would be a website where people post requests for extensions along with how much they’re willing to pay, a sort of “bounty” for the extension. The requests themselves would be public and would list all of the requirements for the software. If another person sees the request and also wants that extension, he can add to the bounty. A freelance dev can come along and opt to take on the project, and if she does, she’ll have some agreed-upon period of time to deliver the software, during which time no other dev can work on the project for money. If she fails, the project would go back on the market. When someone successfully delivers the software and gets the bounty, the extension would then be free and open source. The company that runs the website would take a small percentage of the bounty and would take some kind of electronic payment into “escrow”. Until a developer opts to take on the project, the extension requirements can be changed or modified. If very similar projects appear on the market, users could contact one another and agree to merge them and up the bounty.
There are a number of problems that could crop up. The big one I see is that if a buyer and a dev disagree on whether the delivered software really meets the requirements. (People are notoriously bad at describing what they want software to do.) However, I don’t see this as insurmountable. First, the website could insist that terribly unclear requirements be rewritten. Second, the problem would probably fix itself since, given that developers are less likely to take on vaguely-defined projects, the “buyers” would be incentivized to make their project sound attractive. Third, devs and users of the site would comprise a pretty good beta testing group that could collectively render a decision on whether the software met the stated requirements (and whether or not the extension’s bugs were tolerable). Finally, if there were a really hard case, the company could just step in and eat it; just like a financial exchange would make good on one of its participant’s obligations, it could pay the dev and also return the buyer’s money to him.
Other fun things could happen. Maybe someone sets up a rival exchange. If similar requests appear, people could “arb” between them. Also, there’s no reason that the developers have to be individuals. They could be companies that keep a group of devs on salary and assign projects internally. Let a thousand onions bloom.
It seems like a free lunch. We produce truly public goods, but we produce the ones that people really want, as identified through good ol’ price information. That, plus the transparency, is what would make this different from (and cooler than!) sites that simply try to match up companies and freelance devs.