1.1. Overview
Risk management is a crucial part of software project management that helps prevent software disasters. In this paper, risks are defined as uncertain events or conditions that, if they occur, they would have bad impact on one or more software project outcomes (cost, time, quality). Identifying and dealing with risks or uncertainty in early phases of software development life cycle would lessen long-term cost as well as enhancing the chance of the project success.
The most important part of risk management is risk analysis which assesses the risks and their impact to the outputs of the software project. Many software projects fail since project managers mostly plan based on their experience and there is a lack of scientific methods to support them. To overcome subjective assessment based on development team’s experience, the team needs a quantitative risk analysis method. Although various researches have proposed and examined a range of processes and techniques and software project risk management is continuously evolving, handling uncertainty in more and more complex real-world projects remains a challenge.
Aside from that, project scheduling (a part of project planning – an early phase of software development life cycle) is concerned with the techniques that can be employed to manage the activities that need to be undertaken during the development of a project. There are various techniques for project scheduling, from simple and easily understandable ones such as Task List, Gantt Chart, Schedule Network Analysis, to more complicated ones like Critical Path Method (CPM), Program Evaluation and Review Technique (PERT), Monte-Carlo Simulation (MCS) or Fuzzy Logic etc. (Rao et al., 2013; Jun-yan et al., 2012; Kaur et al., 2013).
Traditional project scheduling under risk/uncertainty has attracted more research and attention in the project management community. In software industry, project scheduling also has to deal with the fact that resources such as human, time, technology and money are not always pre-determined (Khorakadami et al., 2007). There are always risks in software project scheduling as well. In most of the projects, the activity (from now on is considered the same as the “task” in software projects) times are not known for certain. Therefore, they may be assumed as random variables. In such cases of a high level of uncertainty where activity times are not known, PERT can be used for planning, scheduling and controlling the project.
This paper aims at finding a better model for handling high level of uncertainty in software project scheduling by considering both scheduling technique (PERT) and common risks in software scheduling. The paper’s experiment results confirmed that the model (Nguyen et al., 2018) proposed for managing common risks in software project scheduling with a model of 19 common risk factors (discussed in the next section) does not only work well with CPM, but also works well with PERT technique. This paper also learns from categories of risk levels in construction projects to adapt and implement into software projects.