Thinking about it, I see a system of project profiles that would include (as bare minimum):
- a feature specification
- a deadline
- a running total of bids on the project (actual paid money)
Then there would be a trusted escrow that would collect funds from bidders and either release them to developers upon meeting the spec or refund bidders if the deadline passes and the spec is not met. I have no idea how the funds should be split in case of multiple coders working on a project. And there would also have to be a dispute resolution procedure for cases when it's not clear whether or not the spec has been met.
I imagine it could work somehow like this:
* anybody can propose a project (incl. deadline and description)
* potential users can donate into a fund (covering all projects) specifying the project they want to support
* if the project (idea) is great, the fund accumulates - nonsense remains unfunded
* programmers can submit their programs as a solution for a specific project
* for each download they get credit points
* payment from the general fund is based on these relative credit points (similar to project activity at Sourceforge or FreshMeat)
* so that really downloaded projects get more money
* if there is nobody working on the project, the fund becomes bigger and bigger and the willingness to develop programs will increase (*)
* and the fund needs to have some trustees of course...
The only issue I have not solved yet is how to avoid "fake downloading" which drives the credit points up to get more payment for a nonsense project that I have submitted myself...
BTW: SourceForge has recently installed a Donate! program (using payPal). So that project owners can get donations to drive their projects (and pay the new subscriber fees).
-- hns
(*) just a crazy idea: if the fund gets large enough, there is no limitation to software. A new Linux PDA project could also be financed that way...