A Bayesian belief network model and tool to evaluate risk and impact in software development projects

A recent survey indicates that 53 % of software development projects are over budget, behind schedule, or deliver fewer features than originally specified. Statistics also show that 31 % of development projects end up being cancelled or terminated prematurely. Among those completed projects, only 61 % of them satisfy originally specified features and functions. In today's environment, one of the greatest challenges a project manager constantly face with is to keep the projects under control in terms of budget and development time frame. A successful software development project relies on many factors; it is not that easy to control all of them and continually keeping those entire factors all going well together. The goal of this paper is to introduce a mathematical model and prove that a software development team can rely on it to accurately predict, calculate the risks and their impacts on the success of the project. Our objective is to conceptualize the model into a scientific tool that can be used to understand and calculate the risks of a development project. Subsequently, the software development team can take appropriate actions to mitigate the risks, and as a result, the project manager have a better control of the budget and development time frame of the project. It is the author's believe that if we can identify and control problems at early stages, we can significantly increase the chance of success of the development project. The model and the software tool written by the author in this paper to calculate the risks and weight their impacts on a project can be used to identify problems and their potentials risk at early stage. The tool also allows a project manager to apply the model and obtain results without getting involved in too many mathematical calculations. Although the model introduced in this paper can generally provide an accurate picture of what, how, and when things may go wrong at the beginning of a typical software development project, there are areas need further fine tuned, especially when it is used for a particular industry or at later stages of software development cycle.