A Novel Prototype Tool for Intelligent Software Project Scheduling and Staffing Enhanced with Personality Factors Constantinos Stylianou Department of Computer Science University of Cyprus Lefkosia, Cyprus cstylianou@cs.ucy.ac.cy Simos Gerasimou, Andreas S. Andreou Department of Computer Engineering and Informatics Cyprus University of Technology Lemesos, Cyprus {simos.gerasimou, andreas.andreou}@cut.ac.cy Abstract—Software project managers are often faced with challenges when trying to effectively staff and schedule projects. Incorrectly planning and estimating the execution of tasks frequently causes software projects to be delivered late and/or over budget, whereas not selecting the appropriate developers to carry out tasks may produce lower-quality, defective software products. To combat these challenges, this paper presents IntelliSPM – a tool aiming to support software project management activities consisting of several optimization mechanisms borrowed from the area of Computational Intelligence. The tool takes into account technical aspects but also significant human factors, which have been found to play a crucial role in software quality and developer productivity. The purpose of IntelliSPM is to offer suggestions to project managers containing a set of possible project schedules and staffing strategies that minimizes duration and maximizes resource usage. Several simulated and real-world projects were used during the validation process, with results showing that IntelliSPM is capable of providing that much-needed practical benefit to software companies to improve various aspects of development, such as performance and job satisfaction, whilst keeping within the general objectives and particular constraints of each software project. Keywords-Software project staffing and scheduling; genetic algorithms; particle swarm optimization; personality factors I. INTRODUCTION Software development companies have struggled for many years to adequately deal with the various issues complicating project management activities, such as the accuracy of planning estimates, the suitability of staffing methods and the sufficiency of control mechanisms. These difficulties contribute significantly to the fact that the majority of software projects are still either challenged (due to late delivery, overrunning costs and reduced functionalities), or considered to have failed (by being cancelled or delivered but never used) [1]. In addition, the ever-growing size and complexity of modern software systems has also added to the difficulty in managing today’s software development projects and, in turn, has increased the rate of unsuccessful projects. These issues show a possible sign that existing software project management techniques may not be efficient or effective enough to provide practical benefits to software development companies and their project managers. Researchers in the area of Software Engineering, therefore, have focused their attention on finding ways to provide software development companies with various tools and technologies, in the hope of mitigating the risks of a software project failing or being challenged. One particular area of interest involves the improvement of scheduling and staffing processes so that project managers are able to plan and assign developers to tasks in the best possible way. This area is considered extremely important because, on the one hand, inaccurate scheduling may cause significant delays in delivery and budget overruns and, on the other hand, improper staffing can lead to an undesired low level of quality in software products. Despite many research efforts, scheduling and staffing of software projects remain a major challenge for software project managers due to the inherent complexity and uncertainty involved in these activities. Furthermore, management decisions regarding scheduling and staffing can suffer from the subjectivity of managers, whose criteria are often based on past experiences and perceptions, possibly leading to wrong decisions being made. Thus, the approach described in this paper targets helping software project managers to make scheduling and staffing decisions by employing optimization techniques from the field of Computational Intelligence. The techniques are incorporated into a dedicated decision support tool, namely IntelliSPM, developed using Matlab and Java, and use information concerning technical aspects (project duration and developer skill levels) as well as human aspects (personality traits of developers) of software development. The aim of the tool is to suggest optimal solutions to different scheduling and staffing queries based on various preference criteria. For example, certain project managers may want to evaluate whether their available developers have the adequate skills to undertake a project. Thus, IntelliSPM provides a way for software project managers to assess their resources, for instance, when deciding to submit a request for tender/proposal. Alternatively, a software project manager may wish to simply assign developers to tasks of a project whose schedule is known beforehand. Furthermore, the tool is able to notify managers whether or not the available developers are adequate enough to satisfy all the skills required by the tasks of a project and, thus, assist in deciding whether to improve skills further within the capacity of the available developers or consider the need to hire additional 2012 IEEE 24th International Conference on Tools with Artificial Intelligence 1082-3409/12 $26.00 © 2012 IEEE DOI 10.1109/ICTAI.2012.45 277 2012 IEEE 24th International Conference on Tools with Artificial Intelligence 1082-3409/12 $26.00 © 2012 IEEE DOI 10.1109/ICTAI.2012.45 277