Staffing a software project: A constraint satisfaction and optimization-based approach

  • Authors:
  • Ahilton Barreto;Márcio de O. Barros;Cláudia M. L. Werner

  • Affiliations:
  • COPPE-UFRJ, Caixa Postal 68511, Rio de Janeiro, RJ, Brazil;DIA-UNIRIO, Av. Pasteur 458, Urca, Rio de Janeiro, RJ, Brazil;COPPE-UFRJ, Caixa Postal 68511, Rio de Janeiro, RJ, Brazil

  • Venue:
  • Computers and Operations Research
  • Year:
  • 2008

Quantified Score

Hi-index 0.01

Visualization

Abstract

Software development is a people intensive activity. The abilities possessed by developers are strongly related to process productivity and final product quality. Thus, one of the most important decisions to be made by a software project manager is how to properly staff the project. However, staffing software projects is not a simple task. There are many alternatives to ponder, several developer-to-activity combinations to evaluate, and the manager may have to choose a team from a larger set of available developers, according to the project and organizational needs. Therefore, to perform the staffing activity with ad hoc procedures can be very difficult and can lead the manager to choose a team that is not the best for a given situation. This work presents an optimization-based approach to support staffing a software project. The staffing problem is modeled and solved as a constraint satisfaction problem. Our approach takes into account the characteristics of the project activities, the available human resources, and constraints established by the software development organization. According to these needs, the project manager selects a utility function to be maximized or minimized by the optimizer. We propose several utility functions, each addressing values that can be sought by the development organization. A decision support tool was implemented and used in an experimental study executed to evaluate the relevance of the proposed approach.