Risks analysis of software development using bayesian belief network and non-linear programming methods

Software development always faces with different kind of risks at different stages in the project. Risks, if not managed properly, can impact all aspects in the development. Based on results of a 2003 survey by the Standish Group, more than 60% of software development projects were late, with less functionality, or always ended up with overrun budgets. Although risk management has been becoming a critical topic in project management in the software industry since 2000, most of the risk management tools used today cannot even accurately identify the risks, let alone calculate their impact on the project. The goal of this dissertation is to demonstrate a new mathematical approach to risk management. We used the Bayesian Belief Network (BBN) as the base model, incorporated with non-linear programming and algorithmic methods to form a unique approach that can identify most of the risks in a typical software development project, calculate their impact, and predict the optimal solution (minimal or maximal impact) accordingly with pin point accuracy. In this dissertation, we first reviewed how we built the BBN model with 24 most common software development risks and their casual diagrams, along with their occurrence probability, and transition probability. Then, we validated the consistency and reliability of the model with two sets of input data to the model; one form a survey conducted by the author, and the other from 5 years of real development records kept by a medium size development organization in a database. Output impact values from both set of input were then verified against the details in the result records in the database to support the validation. Finally, we showed how we built the optimization component of the model with linear programming and algorithmic method to find the minimum and maximum impact values, followed by a confirmation of the BBN optimal values and their comparison to the output from a popular optimal solution finding software tool. A successful software development project relies on many factors, and risk management is certainly one among the important ones. The BBN model, if used properly, can tell a project what kind of risks are there and what would be the minimal impact from these risks. With critical information like these, a project team can allocate their valuable time and resources effectively to manage the risks and reduce their impact on the project to minimum. We believe the new BBN model will become an integral part in project management in the software development industry. We also hope that this research will open up a new area in mathematical modeling of software development risk management for other colleagues to join in and continually explore new ways in improving software risk management.