This invention relates to a method and apparatus for developing software.
In one embodiment, a method for facilitating the distributed development
of software components includes providing a skill rating for software
developers, communicating specifications for a software component to a
subset of the developers, receiving submissions from the developers,
scoring the submissions, and selecting one submission to be included in a
software repository. In another embodiment, a method for compensating a
software developer includes soliciting software developers for the
submission of computer software components, receiving software components
in response to the solicitation from the developers, evaluating the
received software components, selecting one or more of the submissions
for potential distribution to the public, and allotting the proceeds from
the distribution to the developers.