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 the 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 an 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%.
翻译:软件任务的复杂性和人群开发者行为的不确定性使得规划多方源软件开发(CSD)项目具有挑战性。在一个竞争性的众包市场中,对来自多个同时开放的任务的共享工人资源的竞争增加了软件众包的潜在结果的又一层不确定性。这些因素导致需要支持CSD管理人员的自动化时间安排,以提高多方源软件流程和结果的可见度和可预测性。为此,本文件为多方源软件开发提出了一个基于进化算法的任务时间安排方法。拟议的进化列表方法使用一种多客观的遗传算法来建议一个最佳的任务开始日期。该方法分别根据项目期限、任务相似性和任务失败预测使用三种健身功能。任务失败功能使用神经网络来预测具体任务开始日期的任务失败的可能性。拟议方法然后建议整个项目和每项任务的最佳任务开始日期,以便实现最小的项目失败率。4个项目的实验结果表明,拟议的方法有可能将项目期限减少33-78%的系数。