An Evolutionary Algorithm for Task Scheduling in Crowdsourced Software Development

The complexity of software tasks and the uncertainty of crowd developer behaviors make it challenging to plan crowdsourced software development (CSD) projects. In a competitive crowdsourcing marketplace, competition for shared worker resources from multiple simultaneously open tasks adds another layer of uncertainty to potential outcomes of software crowdsourcing. These factors lead to the need for supporting CSD managers with automated scheduling to improve the visibility and predictability of crowdsourcing processes and outcomes. To that end, this paper proposes an evolutionary algorithm-based task scheduling method for crowdsourced software development. The proposed evolutionary scheduling method uses a multiobjective genetic algorithm to recommend optimal task start date. The method uses three fitness functions, based on project duration, task similarity, and task failure prediction, respectively. The task failure fitness function uses a neural network to predict the probability of task failure with respect to a specific task start date. The proposed method then recommends the best tasks’ start dates for the project as a whole and each individual task so as to achieve the lowest project failure ratio. Experimental results on 4 projects demonstrate that the proposed method has the potential to reduce project duration by a factor of 33-78%.

[1]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

[2]  Shuai Wang,et al.  An Evolutionary and Automated Virtual Team Making Approach for Crowdsourcing Platforms , 2015 .

[3]  Björn Regnell,et al.  Market-Driven Requirements Engineering for Software Products , 2005 .

[4]  Klaas-Jan Stol,et al.  Two's company, three's a crowd: a case study of crowdsourcing software development , 2014, ICSE.

[5]  Gregg Vesonder,et al.  Failure Prediction in Crowdsourced Software Development , 2017, 2017 24th Asia-Pacific Software Engineering Conference (APSEC).

[6]  Prasad Desai,et al.  Is This the Right Time to Post My Task? An Empirical Analysis on a Task Similarity Arrival in TopCoder , 2020, HCI.

[7]  Ye Yang,et al.  Award vs. Worker Behaviors in Competitive Crowdsourcing Tasks , 2015, 2015 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM).

[8]  Enrique Alba,et al.  Efficient parallel LAN/WAN algorithms for optimization. The mallba project , 2006, Parallel Comput..

[9]  Abdullah Khanfor,et al.  Ant Colony Optimization to Reduce Schedule Acceleration in Crowdsourcing Software Development , 2019, HCI.

[10]  K. Dasgupta,et al.  CrowdControl : An online learning approach for optimal task scheduling in a dynamic crowd platform , 2013 .

[11]  Ye Yang,et al.  Who Should Take This Task?: Dynamic Decision Support for Crowd Workers , 2016, ESEM.

[12]  Ye Yang,et al.  Leveraging Crowdsourcing for Team Elasticity: An Empirical Evaluation at TopCoder , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP).

[13]  Sihem Amer-Yahia,et al.  Optimization in Knowledge-Intensive Crowdsourcing , 2014, ArXiv.

[14]  Jose Emmanuel Ramirez-Marquez,et al.  Study on Patterns and Effect of Task Diversity in Software Crowdsourcing , 2020, ESEM.

[15]  Gianluca Demartini,et al.  Scheduling Human Intelligence Tasks in Multi-Tenant Crowd-Powered Systems , 2016, WWW.

[16]  Björn Hartmann,et al.  What's the Right Price? Pricing Tasks for Finishing on Time , 2011, Human Computation.

[17]  Ye Yang,et al.  Empirical Analysis on Parallel Tasks in Crowdsourcing Software Development , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering Workshop (ASEW).

[18]  Xiaochen Li,et al.  Solving Team Making Problem for Crowdsourcing with Evolutionary Strategy , 2018, 2018 5th International Conference on Dependable Systems and Their Applications (DSA).

[19]  Michael A. Cusumano,et al.  The Business of Software: What Every Manager, Programmer, and Entrepreneur Must Know to Thrive and Survive in Good Times and Bad , 2004 .

[20]  Schahram Dustdar,et al.  QoS-Based Task Scheduling in Crowdsourcing Environments , 2011, ICSOC.

[21]  Márcio de Oliveira Barros,et al.  Staffing a software project: A constraint satisfaction and optimization-based approach , 2008, Comput. Oper. Res..

[22]  Dorit Nevo,et al.  Determinants of success in crowdsourcing software development , 2013, SIGMIS-CPR '13.

[23]  Matthias Hirth,et al.  Task Scheduling on Crowdsourcing Platforms for Enabling Completion Time SLAs , 2019, 2019 31st International Teletraffic Congress (ITC 31).

[24]  Razieh L. Saremi A Hybrid Simulation Model for Crowdsourced Software Development , 2018, 2018 IEEE/ACM 5th International Workshop on Crowd Sourcing in Software Engineering (CSI-SE).

[25]  Gregg Vesonder,et al.  CrowdSim: A Hybrid Simulation Model for Failure Prediction in Crowdsourced Software Development , 2021, ArXiv.

[26]  Geoffrey Gordon,et al.  A general purpose systems simulation program , 1899, AFIPS '61 (Eastern).

[27]  Julian Togelius,et al.  Greedy Scheduling: A Neural Network Method to Reduce Task Failure in Software Crowdsourcing , 2021, ICEIS.