The paper analyzes the practices of release planning and task allocation in agile project management using multi-criteria optimization methods and genetic algorithms. A combined method that solves the problem of selecting re-quirements for release (Next Release Problem) based on NSGA-II algorithm and optimization of task scheduling con-sidering resource constraints and sequence of stages (Resource Constrained Project Scheduling Problem) is developed. The peculiarities of using DEAP library in Python to implement evolutionary computations are described, as well as the use of NumPy library to accelerate vector operations and Matplotlib to visualize the results. The architecture of the software solution is presented, including modular code organization and integration of custom heuristics for building optimal schedules. The description of utility, risk and penalty functions for dependency violations and resource con-straints is given, as well as the application of crossover and mutation methods for dictionary structures of schedules. Iterative optimization linking the stages of epics selection and schedule construction to reach a stable optimum is shown. Experimental validation confirmed the effectiveness of the proposed approach as it achieves utility maximiza-tion of the set of epics, minimization of penalties and idle time of employees in constructing optimal schedules. The developed system is applicable for complex release scheduling in Agile teams and forms the basis for further research in agile project management and resource optimization.
Read full abstract