Investigating the impact of developer productivity, task interdependence type and communication overhead in a multi-objective optimization approach for software project planning

https://doi.org/10.1016/j.advengsoft.2016.04.001Get rights and content

Highlights

  • Proposed approach adopts MOGAs to minimize software project cost and duration.

  • Solutions representing resource allocations and task schedules are evolved.

  • Objective functions consider productivity of developers and task interdependence.

  • The performance and scalability of four MOGAs were compared using several datasets.

  • MOCell, NSGA-II and SPEA2 outperform PAES in the majority of project instances.

Abstract

One of the most important activities in software project planning involves scheduling tasks and assigning them to developers. Project managers must decide who will do what and when in a software project, with the aim of minimizing both its duration and cost. However, project managers often struggle to efficiently allocate developers and schedule tasks in a way that balances these conflicting goals. Furthermore, the different criteria used to select developers could lead to inaccurate estimation of the duration and cost of tasks, resulting in budget overruns, delays, or reduced software quality. This paper proposes an approach that makes use of multi-objective optimization to handle the simultaneous minimization of project cost and duration, taking into account several productivity-related attributes for better estimation of task duration and cost. In particular, we focus on dealing with the non-interchangeable nature of human resources and the different ways in which teams carry out work by considering the relationship between the type of task interdependence and the productivity rate of developers, as well as the communication overhead incurred among developers. The approach is applied to four well-known optimization algorithms, whose performance and scalability are compared using generated software project instances. Additionally, several real-world case studies are explored to help discuss the implications of such approach in the software development industry. The results and observations show positive indications that using a productivity-based multi-objective optimization approach has the potential to provide software project managers with more accurate developer allocation and task scheduling solutions in a more efficient manner.

Introduction

The success of a software project relies on delivering end-products on time, within budget and with all the required features and functionality. These goals can be realized only if the necessary planning, organizing, staffing, directing and control activities are carried out correctly by project managers. Furthermore, considering the ever-increasing size and complexity of modern-day software products, development companies face escalating pressure of having to provide software products sooner and cheaper than their competitors in order to remain viable. Therefore, a primary concern for software project managers is to make sure the right developers are selected while effectively balancing the duration and cost of a project, in order to prevent unnecessary cost and schedule overruns in subsequent stages of development and any overall reduction to the level of quality of the end-products. Consequently, it is important for software project managers to have support during resource allocation and scheduling activities through tools that will help them successfully select and arrange the most suitable (teams of) developers to guarantee the success of the software project, whilst satisfying both time and budgetary criteria simultaneously.

Human resource allocation and task scheduling in software development projects is a naturally complex and computationally-intensive process since multiple objectives need to be satisfied. For this reason, the problem is classed as a special case of the resource-constrained project scheduling problem (RCPSP), and therefore is considered to be an NP-hard problem, meaning that there is no algorithm known to be able to solve it in polynomial time [1], [2]. Project managers often struggle to use a manual approach because there are many different combinations to be examined. Thus, an exhaustive search to find the best solution will often prove inadequate and impractical, especially if they have a limited amount of time at their disposal. As a result, the majority of works view the problem as an operational research problem, where proposed solutions make use of techniques that carry out combinatorial optimization of various software criteria, such as cost, duration, or number of defects. Examples include mathematical modelling methods and computational intelligence techniques, where specialized algorithms are employed to locate optimal or near-optimal feasible solutions as a means of providing better and faster support to decision-makers. Several of these approaches emphasize that the allocation of developers and scheduling of tasks needs to take into account certain attributes of the available workforce, such as the capabilities and experience of developers in certain skills, as well as their cost.

There are, however, several other attributes that should also be addressed, the influence of which could allow project managers in the software industry to make more accurate staffing decisions and estimates during their planning activities earlier on in the project. Specifically, the proposed approach uniquely investigates the inclusion of productivity-related attributes concerning:

  • the productivity rate of developers.

  • the way in which productivity rates are combined within teams based on the type of work carried out (known as task interdependence type).

  • the communication overhead that is incurred when developers work together and collaborate.

Including these attributes during planning activities is important, especially in cases where tasks are allowed to be undertaken by several developers whose efforts need to be combined to produce a task's output. Consequently, these attributes reflect on both the duration and cost of a software project, as well as the quality of the end-product.

The paper contributes to the existing research area in two ways. First, it adapts the RCPSP of human resource allocation and task scheduling in software development projects so as to include these overlooked productivity-related attributes. Second, it presents a novel attempt to solve the problem of minimizing the duration and cost of a software development project in its initial stage with the use of a multi-objective optimization incorporating the productivity-related attributes. In order to help achieve this, several objective and constraint functions are proposed to guide the generation of feasible and optimal solutions. Also, we attempt to include hard, realistic assumptions and constraints concerning the availability and suitability of developers that would normally affect the planning decisions of software project managers. The inclusion of these assumptions adds significantly to the complexity of the adapted RCPSP problem we attempt to solve, which makes it that much harder for the optimization process to find feasible and optimal solutions. We therefore employ several different variations of multi-objective genetic algorithms (MOGAs) to carry out the optimization and pose our first research question:

R1. How do different MOGAs perform in terms of generating (near-)optimal solutions with respect to our proposed approach to resource allocation and task scheduling?

Given the fact that as current technology capabilities are constantly improved, software systems progressively become larger. It is also important for our approach to be applicable for varying sizes of projects undertaken by varying sizes of development companies. Consequently, we examine the issue of scalability by setting our second research question:

R2. How do different MOGAs behave in terms of scalability as the number of tasks and developers increases in our proposed approach to resource allocation and task scheduling?

Furthermore, it is equally important to investigate the implications of the productivity-based attributes in practical software development settings. For this, several real-world projects were investigated. The ultimate goal is to provide an approach that accurately reflects both the manner with which these activities are carried out, and also the factors that may influence decisions taken by software project managers in an automated, efficient and less time-consuming way.

The remainder of the paper is structured as follows: Section 2 provides an overview of recent related attempts that also use optimization techniques to solve the problem of human resource allocation and task scheduling in software projects. Section 3 gives a formal description of our proposed adaption of the RCPSP, which considers task type interdependence, developer productivity and communication overhead. Section 4 presents the multi-objective optimization process adopted to solve the problem. Section 5 explains the experiments carried out to evaluate the proposed approach with regards to the research questions. Section 6 presents the results obtained and the quality indicators employed to help compare the MOGA variations. Section 7 discusses several observations made in real-world projects concerning the applicability of our approach. Section 8 examines potential threats to validity and how certain limitations were addressed. Lastly, Section 9 presents a synopsis with concluding remarks and possible future directions.

Section snippets

Related work

The majority of attempts to allocate developers and schedule tasks make use of optimization techniques, where the main goal is to maximize or minimize various software development objectives (most popular being cost and duration) through the use of mathematical modelling methods such as linear programming [3], [4], [5], constraint satisfaction [6], [7], queuing theory [8], [9], and statistical/probabilistic modelling [10], in addition to computational intelligence techniques like genetic

Description of adapted RCPSP

A software development project consists of a set T={t1,t2,,tM} of M tasks, which are determined by the project manager based on the activities from the different phases of software development that will be required. All tasks must be undertaken by at least one software developer employed by the development company. The project manager also determines the set S={s1,s2,,sK} of K professions whose associated skills will be required by the software project. Each task tiT is subsequently

Multi-objective optimization approach

The aim of our approach is to allocate human resources and schedule tasks so that the overall project duration and cost are minimized. We propose to solve our adaptation of the RCPSP by employing a multi-objective genetic algorithm as the optimization method that will generate near-optimal solutions. Genetic algorithms [39] are a type of evolutionary algorithm, which are widely used to solve search-based optimization problems by simulating the theory of natural evolution on a population of

RQ1: Performance of multi-objective genetic algorithms

The first research question investigates whether certain variations of MOGA are able to perform better with respect to locating (near-)optimal developer allocations and task schedules, in view of the increased optimization complexity that results from the addition of realistic assumptions and constraints in our productivity-related adaptation of the RCPSP. Therefore, to answer the first research question, we selected to compare four well-known variations of MOGAs, namely, the Non-dominated

Results and discussion

For each project instance, the four algorithms were run 100 times resulting in the generation of 100 Pareto fronts, each consisting of a number of non-dominated solutions in the objective space corresponding to developer allocations and task schedules. Subsequently, by combining the 100 Pareto fronts, we were able to extract an approximation Pareto front containing the best solutions each algorithm managed to locate for a project instance over its 100 runs. Then, by combining the approximation

Real-World observations and considerations

As part of our research, we also examined several software projects that were carried out by third-year university students during a project-oriented Software Engineering course spanning two semesters. The students possessed software development knowledge and skills at different levels of proficiency, and also had gained various practical experiences from their university coursework and, in some cases, industry employment. Groups of four to five students were required to develop a software

Construct validity

Threats to construct validity that may exist concern the assumptions and simplifications made regarding the software development process. In our case, the proposed approach does not take into account each developer's degree of dedication to the tasks that he or she is assigned to. Rather, the allocation of a developer is constrained to only one task for the whole duration of that task. However, on the one hand, taking this into account was not in the scope of the current work and, on the other

Conclusions

This paper addressed the problem of human resource allocation and task scheduling for software development, which is one of the most challenging planning activities faced by project managers as they attempt to minimize the cost and duration of the project. We adapted the traditional RCPSP to include productivity-related attributes, focusing on the fact that developers possessing different rates of productivity carry out tasks at different speeds. We have also established that the nature of the

References (57)

  • DurilloJ.J. et al.

    jMetal: a Java framework for multi-objective optimization

    Adv Eng Softw.

    (2011)
  • CruzS. et al.

    Forty years of research on personality in software engineering: a mapping study

    Comput Hum Behav

    (2015)
  • AndréM. et al.

    Formal model for assigning human resources to teams in software projects

    Inf Softw Technol

    (2011)
  • AcuñaS.T. et al.

    How do personality, team processes and task characteristics relate to job satisfaction and software quality?

    Inf Softw Technol

    (2009)
  • ChangC.K. et al.

    Genetic algorithms for project management

    Ann Softw Eng

    (2001)
  • LiC. et al.

    Integrated requirement selection and scheduling for the release planning of a software product

  • OteroC.E. et al.

    A multi-criteria decision making approach for resource allocation in software engineering

  • BarretoA. et al.

    Staffing a software project: a constraint satisfaction approach

    ACM SIGSOFT Softw Eng Notes

    (2005)
  • AntoniolG. et al.

    Search-based techniques for optimizing software project resource allocation

  • JaloteP. et al.

    Assigning tasks in a 24-hour software development model

    Software engineering. APSEC 2004: Proceedings of the 11th Asia-Pacific software engineering conference; 2004 Nov 30-Dec 3

    (2004)
  • PadbergF.

    A study on optimal scheduling for software projects

    J Softw-Evol Proc.

    (2006)
  • RenJ. et al.

    Cooperative co-evolutionary optimization of software project staff assignments and job scheduling

  • GerasimouS. et al.

    An investigation of optimal project scheduling and team staffing in software development using particle swarm optimization

  • ChenW.-N. et al.

    Ant colony optimization for software project scheduling and staffing with an event-based scheduler

    IEEE Trans Softw Eng.

    (2013)
  • CallegariD.A. et al.

    A multi-criteria resource selection method for software projects using fuzzy logic

  • AntoniolG. et al.

    Search-based techniques applied to optimization of project planning for a massive maintenance project

    Software maintenance. ICSM 2005: Proceedings of the 21st IEEE international conference on software maintenance; 2005 Sep 26–29

    (2005)
  • Di PentaM. et al.

    The use of search-based optimization techniques to schedule and staff software projects: an approach and an empirical study

    Softw Pract Exp.

    (2011)
  • AlbaE. et al.

    Management of software projects with GAs

  • Cited by (0)

    View full text