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