A SURVEY OF THE PROBLEM AND TECHNIQUES IN RESOURCE ALLOCATION FOR MULTI-PROJECT SOFTWARE PROJECTS
DOI:
https://doi.org/10.31891/2307-5732-2024-337-3-39Keywords:
multi-project scheduling, portfolio project management, software engineeringAbstract
Managing multiple software projects concurrently presents challenges in resource allocation. This study explores these issues and potential solutions. We conducted research to identify and categorise the most pressing problems in this domain and evaluate the effectiveness of various techniques proposed to mitigate these challenges. The key challenges identified are resource underutilisation, inefficiency, and conflict. Projects often suffer from long durations, uncertainties, and cost overruns. Traditional project management methods, such as the Critical Path Method and Program Evaluation and Review Technique, assume unlimited resources and are designed for single-project environments, rendering them inadequate for multi-project scenarios. Consequently, more recent research has explored advanced approaches to develop more effective scheduling solutions, including heuristic algorithms, genetic algorithms, and hybrid methods. Still, they lack performance guarantees and may not consistently achieve optimal results. The study examines how researchers tackle these issues. Techniques include using upper and lower bounds for concurrent activities, project buffers, and optimising project makespan for better resource utilisation. Additionally, allocating the right people to projects and coordinated planning for resource-constrained scenarios are explored. The research indicates that multi-stage hybrid approaches utilising machine learning techniques yield the most promising results. Therefore, future research should focus on applying ML techniques to select the optimal algorithm and incorporate historical data, representing a promising direction for advancing this field. This analysis provides insights for researchers seeking to develop improved approaches to resource allocation in multi-project software development.