The AdoptionAgency would be a crowdsourcing platform along the lines of Freecode.com or OpenHatch.org, in which a community would monitor promising open source development across a range of software foundries (Savannah, SourceForge, GITHub etc), and identify orphaned projects. Once a project is classified as orphaned, there would be an adoption process, in which developers who wanted to take over as the core team would have to tick a bunch of boxes.
The phenomenon of orphaned projects is one of the unfortunate downsides of the loose collaboration style of open source development is that otherwise promising projects can founder, due not to any inherent technical failings, but rather to organisational failings, resulting in the active developers leaving the project to work on something else. This leaves an "orphan" project like Chandler, a package of free code which can be used, but gives no promise of security updates, let alone ongoing development to keep up with changes in the supported operating systems, or release new versions with added features etc. This is even more of a problem in the case of plug-ins and "apps", micro-projects which add small pieces of functionality to a larger system like Wordpress or Android, and are often hobby projects written by individuals scratching an itch.
However, cases like Mozilla and Diaspora show that abandoned codebases can be picked up and built on by a new community of developers. There may be hundreds of similar packages out there in the wilds of the web, waiting to be rediscovered and reactivated. The first question is, how do we make sure a project really is orphaned? Maybe it's just dormant while the lead developer has a personal crisis. Maybe all the development activity is taking place in a forked branch, as discussed by . Even once we are sure a project is orphaned, how can we facilitate a new development effort around that project?
This is where the concept of the AdoptionAgency comes in. The platform would allow a community of free code supporters (including but not limited to programmers) to evolve a set of guidelines for identifying orphaned projects, ensuring that team leaders and steward organisations don't end up feeling elbowed aside. Once identified, an orphan project would be listed in an 'orphanage', including a full mirror of all source code, documentation, and any other information relevant to the project. The project would also be given a rating indicating how many developers would be needed to form a viable core team to move the project forward. Developers interested in taking on stewardship of an orphan project could then browse the orphanage, and apply to adopt a project. The AdoptionAgency would field these enquiries, and facilitate the formation of new teams. In order to formally adopt the project, the team would have to fulfil a number of criteria, which might include;
- agreeing on at least a basic decision-making process and team roles,
- choose a public repository to host the project (probably the one currently hosting it, but perhaps not the original developers worked in their own repository)
- producing the next release version of the code, at minimum a nightly build which adds some significant improvements to the existing code