A knowledge-based evolutionary assistant to software development project scheduling
The scheduling of software development projects is a central, non-trivial and costly task for software companies. This task is not exempt of erroneous decisions caused by human limitations inherent to project managers. In this paper, we propose a knowledge-based evolutionary approach with the aim of assisting to project managers at the early stage of scheduling software projects. Given a software project to be scheduled, the approach automatically designs feasible schedules for the project, and evaluates each designed schedule according to an optimization objective that is priority for managers at the mentioned stage. Our objective is to assign the most effective set of employees to each project activity. For this reason, the evaluation of designed schedules in our approach is developed based on available knowledge about the competence of the employees involved in each schedule. This knowledge arises from historical information about the participation of the employees in already executed projects. In order to evaluate the performance of our evolutionary approach, we present computational experiments developed over eight different sets of problem instances. The obtained results are promising since this approach has reached an optimal level of effectivity on seven of the eight mentioned sets, and a high level of effectivity on the remaining set.
project scheduling software projects human resource assignment multi-skilled resources heterogeneous effectivities genetic algorithms