I was thinking along these lines:
A company has a Github repository with several tasks. Independent developers choose tasks, fork the repository and upon completion of the task send a merge request. The company would then review the committed code and upon approval pay the developer.
While this at the first glimpse seems like a pretty simple and feasible model there are obviously quite a few gotchas:
1.) How can companies make sure developers don't use their source code for their own purposes? 2.) How can a company make sure it's not wasting time on a developer? There would have to be some sort of rating system. 3.) How could you break down more complex tasks so developers don't have to spend weeks just to understand the software they're working on. 4.) Is it possible at all to accomplish non-trivial tasks on a complex software system one doesn't have at least some sort of training on? 5.) How would you make sure a company actually pays the developer upon task completion?
Quite a few problems, indeed. Nevertheless, do you think such a concept might have legs?