Interface, Dependency Injection and Test Driven Development are leveraged here.
c) From the Contracts, tasks are created for the crowd to implement the components.
d)As the crowd submits the code, automatic verification is done using the test cases. The Interfaces allow for compilation and assembly even with a subset of the implementation. Using the concept of Continuous Delivery code integration and execution of test cases is automated.
To validate our methodology, we conducted an experiment of developing a web application using Crowdsourcing. The design of the application, the Contracts and the tasks were created adhering to our methodology. We posted tasks on two platforms – Freelancer and oDesk. Tasks were posted on Freelancer as contests (where individuals compete with each other) and on oDesk as projects (where an individual is hired). Although the tasks were identical and the rewards similar, only 57% of the contests were successful while all tasks through the hiring model were completed. The web application was thus successfully built and has been deployed.
The primary result from the experiment is the validation of the CrowdBuild methodology as a mechanism for parallel implementation of software using the crowd. Comparing with the traditional methodology, the experiment was completed well within the estimates for effort and cost. We present other metrics and observations from the experiment.
This paper is structured as follows. Section II presents the issues in Crowdsourcing of software development. Section III presents an analysis of the existing methodology. Our methodology is presented in Section IV. Experimental results are presented in Section V and we conclude in Section VI.