The scale and complexity of modern software development project require software organizations to perform quantitative management and continuous improvement on software process, with proper and effective resource scheduling. Human resources are the most important type of resource in software process. Human resource scheduling has direct impact on the cost, progress and quality of software development. Effective human resource scheduling can not only improve the progress of software process, but also help software organizations have agile response to changes in customer requirement, markets and resources.
Traditional approaches to human resource scheduling generally depend a lot on subjective discretion and personal experiences of project managers for planning, optimization and evaluation of human resources within the organization. These approaches are inherently unreliable and unstable. In order to overcome excessive dependency of traditional approaches on subjectivity, this thesis proposes a benefit-based approach to human resource scheduling in software process, which focuses on increasing the benefit produced by human resources. This approach combines the method of resource scheduling with its aim, helps resource scheduling evolve to an objective practice based on process data of software projects, and also provide assistance to project managers’ daily decision-making.
The benefit-based approach to human resource scheduling in software process defines software process entities and their constraints for human resource scheduling according to the software process model proposed by this thesis; and then quantitatively analyze and evaluate the performance of human resources in each activity, so as to optimize human resource scheduling in software process. Since the aim of resource scheduling is to increase the benefit produced by human resources and improve proper allocation, benefit is leveraged as scheduling criteria in this thesis, and optimization algorithm is designed to maximize expected benefit to be produced by human resources in software process.
While human resources are objectively evaluated and scheduled with benefit-based approach to human resource scheduling, benefit here can be real project data produced during software development process, or history data of similar projects, or empirical data. Benefit of human resources in each activity is properly defined based on real circumstances of the project, and a corresponding algorithm is adopted. If the investment of human resources is linear to its benefit, greedy algorithm is adopted; if nonlinear, algorithm based on dynamic programming is used.
In the real application of this approach, earned value is adopted as benefit, and earned value is used to objectively evaluate the performance of human resources and quantify the investment and benefit of human resources. Earned value management is a well-accepted approach to project tracking, the adoption of earned value in human resource scheduling is reasonable and reliable.
A human resource scheduling system is designed and developed accordingly, which can provide assistance to daily project management, improve optimization of human resource scheduling, and increase return on investment of resources.