Can software be built through self-contained ten-minute contributions? In microtask crowdsourcing, transient contributors are given a short, well-defined task and an interface purpose-built for completing it.
Microtasking software development may help reduce barriers that software developers face today in contributing to open source projects, significantly expanding participation in open source projects. As many hands make light work, decomposing a large task into many microtasks brings opportunities for parallelism that may dramatically decrease the time to bring software projects to market. Enabling crowds of developers to work transiently through small contributions also raises fundamental questions about the nature of software engineering such as the prospects for modularity in software work.
To explore these questions, Prof. LaToza and his students have created the web-based programming environment CrowdCode. With CrowdCode, developers can visit a web page and immediately contribute to a software project. Contributions occur through a microtask interface, offering the developer the code of a single function and its tests and enabling contributions such as a few lines of code, a new test case, or the sketch of an algorithm in pseudocode. Rather than understand an entire codebase, developers view and edit a single function, requesting changes to other functions by editing their interfaces. The environment tracks the state of each function, automatically generating appropriate microtasks for work to progress and managing dependencies between functions.
This work is part of a joint project with researchers at UC Irvine and is supported by a $1.4M grant from the National Science Foundation on Crowd Programming.