Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
633,31 KB
Nội dung
MINISTRY OF EDUCATION AND TRAINING HANOI UNIVERSITY OF SCIENCE AND TECHNOLOGY Nguyen Ngoc Tuan RISK MANAGEMENT IN SOFTWARE PROJECT SCHEDULING USING BAYESIAN NETWORKS Major: Software Engineering Code No.: 9480103 SUMMARY OF SOFTWARE ENGINEERING DISSERTATION Hanoi – 2021 This dissertation was finalized at: Hanoi University of Science and Technology Supervisors: Assoc Prof Huynh Quyet Thang Dr Vu Thi Huong Giang Reviewer 1: Reviewer 2: Reviewer 3: This dissertation was accepted to be defensed by the University Doctoral Committee at Hanoi University of Science and Technology Date and Time: ……/……/…… ……h…… This dissertation could be found at: Ta Quang Buu Library - Hanoi University of Science and Technology National Library of Vietnam LIST OF SCIENTIFIC PUBLICATIONS Nguyễn Ngọc Tuấn, Huỳnh Quyết Thắng (2017), “Iteration scheduling using Bayesian networks in Agile Software Development”, Kỷ yếu Hội nghị Quốc gia lần thứ X Nghiên cứu ứng dụng Công nghệ thông tin (FAIR’10) – Đà Nẵng, ngày 17-18/8/2017, trang 300-308, ISBN: 978-604-913-614-6 Nguyễn Ngọc Tuấn, Võ Thị Hường, Huỳnh Quyết Thắng (2017), “Hướng tới mơ hình mạng Bayes để đánh giá rủi ro lập lịch dự án phần mềm”, Kỷ yếu Hội nghị Quốc gia lần thứ X Nghiên cứu ứng dụng Công nghệ thông tin (FAIR’10) – Đà Nẵng, ngày 1718/8/2017, trang 275-282, ISBN: 978-604-913-614-6 Nguyễn Ngọc Tuấn, Trần Trung Hiếu, Huỳnh Quyết Thắng (2017), “Phương pháp xác suất cải tiến sử dụng mạng bayes đánh giá rủi ro lập lịch dự án phần mềm”, Chuyên san Công nghệ thơng tin Truyền thơng, Tạp chí Khoa học Kỹ thuật - Học viện KTQS - Số 184 (06-2017), trang 45-61, ISSN: 1859-0209 Nguyen Ngoc Tuan, Huynh Quyet Thang (2018), “Risk management in Agile software project iteration scheduling using Bayesian Networks”, New Trends in Intelligent Software Methodologies, Tools and Techniques, Volume 303, 2018, pp 596 - 606 (SOMET 2018), ISBN 978-1-61499-899-0, DOI: 10.3233/978-1-61499-900-3-596, SCOPUS Indexed Ngoc-Tuan Nguyen, Quyet-Thang Huynh, Thi-Huong-Giang Vu (2018), “A Bayesian Critical Path Method for Managing Common Risks in Software Project Scheduling”, SoICT 2018 Proceedings of the 9th International Symposium on Information and Communication Technology, Danang City, Viet Nam - December 06 - 07, 2018, ISBN: 978-1-4503-6539-0, pp 382-388, DOI: 10.1145/3287921.3287962 Quyet-Thang Huynh, Ngoc-Tuan Nguyen (2020), “Probabilistic Method for Managing Common Risks in Software Project Scheduling Based on Program Evaluation Review Technique”, International Journal of Information Technology Project Management, Volume 11(3), pp 7794, ISSN: 1938-0232, DOI: 10.4018/ IJITPM.2020070105 INTRODUCTION Motivation Projects always involve risks and project managers’ regular worries are concerns about risks Many projects in Vietnam as well as in other countries experience on-going problems For example, the Hanoi Urban Railway Project Line 2A (Cat LinhHa Dong) was approved in October 2008 and was scheduled to be put into service in 2013, but until now the project’s investment is almost doubled and the project remains incomplete [1] Many software projects have suffered from significant budget overruns together with series of delays, which cause either temporary issues or permanent failures For example, The Queensland Health Payroll System was launched in 2013 and coming in at over 200 times the original budget [3], or the project e-Borders in UK Started in 2007 but it had a series of delays and had to be cancelled in 2014 [4] Some researches pointed out that most of software projects (83.8%) are over budget or behind schedule and 52.7% of software development projects deliver software with fewer features than originally specified [5, 6] Statistics also show that 31.1% of development projects end up being cancelled or terminated prematurely Among those completed projects, only 61% of them satisfy originally specified features and functions [7] In software industry, one of the greatest challenges that development teams constantly face with is to keep the projects under control in terms of budget and schedule (development time frame) The above situation raises an important question: how projects’ risks are managed better in order to get rid of temporary issues as well as preventing from failure? Since risks are inevitable in projects, risk management has become an important part of project management Software project scheduling is also crucial due to frequent changes in software requirements Software projects hardly follow exactly their original plans or schedules The current problems in software project management mostly because of the fact that project managers rely on their experience and lack of scientific tools to support them In this thesis, 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) Although many researchers, experts and writers have proposed variety of processes and techniques, project risk management (PRM) is still rapidly evolving and handling risks in general projects as well as software projects remains a challenge This thesis concentrates on modelling risks/uncertainty in project time frame management, or in other words, on quantitative analysis of risks in software project scheduling (to mitigate the subjective analysis based on the project manager’s experience) Furthermore, Bayesian Networks (BNs) have attracted a lot of attention in different fields (construction, R&D etc.) as a powerful approach for decision support under uncertainty A BN is a graphical and mathematical model which offers a powerful, general and flexible approach for modelling risk and uncertainty Its capability of modelling causality and also conditional dependency between variables make it perfectly suitable for capturing uncertainty in projects Yet, BNs are rarely applied in project risk management in general as well as in software project management and software project scheduling In addition, the author of this thesis strongly believes that if we can identify and control risks at early stages of software development project, we can significantly increase the chance of success of the project Therefore, this thesis aims at introducing an advanced approach for incorporating and managing uncertainty/risks in software project scheduling The idea is to use BNs to perform the well-known scheduling techniques such as CPM, PERT etc as well as modelling risk factors in software project scheduling The proposed approach enriches the benefits of scheduling techniques by incorporating uncertainty/risk factors and adding the strong analytical power of BNs Related work Hui and Liu [7] selected 24 risk factors that may cause potential impacts on (the whole) software project and applied BNs properties in the calculation of impact in their project risk model Khodakarami [15] applied BNs into general project scheduling with two case studies of aircraft design and health and fitness center design and construction Park and Shin [16] proposed an application of BNs into risk management of ship building project and proposed 26 risks Hu et al [17] proposed BNs model with causal constraints in risk analysis in software projects Fenton and Neil [18] introduced AgenaRisk as a probabilistic tool based on BNs Akos Szoke in his PhD dissertation in 2014 proposed an optimized algorithm for agile software project scheduling [19] Kumar and Yadav [20] introduced a probabilistic approach to assess risks in software projects as well as proposing a list of 27 risk factors in software projects Anthony et al [21] proposed a risk assessment model for decision making in software management which consists of processes and component of risk assessment in three groups: operational risks, technical risks and strategic risks Rai, Agrawal and Khaliq [22] identified 43 risk indicators in Agile Software Development (ASD) Chang, Yu, and Cheng [23] proposed a risk-based Critical Path Scheduling Method based on risk categories and risk levels which applied into construction projects Lastly, Sharma and Chanda [24] developed a BN model for prediction of R&D project success which also assesses based on R&D project risk factors In summary, current researches related to this thesis are either on risk management or assessment for the whole software project or for other project (construction, building, R&D etc.) scheduling There is a need of probabilistic method on risk management in software project scheduling as well as examining deeper the risk attributes of software project scheduling Research scope The research is about software projects (or software development projects), having common features and also specific features in comparison to other type of projects (such as construction projects, R&D projects etc.) The scope of this research is on risk management in software project scheduling This is quantitative risk management which concerns about risks affecting project schedule (or project time frame) In terms of project scheduling techniques, this thesis focuses on the most popular techniques such as CPM, PERT for traditional software development projects, as well as Agile software project scheduling Research objectives The main objectives of this research are: - To find out a quantitative method to better assess and analyze risks in software project scheduling In order to archive this objective, the research has to answer to following questions: what are the risks’ attributes of software project scheduling? How to manage risks in software project scheduling better? In other words, the research aims at analyzing and modelling risks in software project scheduling - To find out a probabilistic method to improve well-known software project scheduling techniques, including both techniques for traditional software scheduling and agile software scheduling Scientific contribution and practical implications The proposed method and model would enhance risk management process by a quantitative assessment of risks impact on software project scheduling If we apply this model and method in practice, it would help predict, monitor project schedule better as well as making appropriate decisions Research hypothesis and methodology The hypothesis of this thesis is that it is possible to use BNs to quantify uncertainty in software project scheduling and improve software project risk assessment Since there is very limited research on this topic, the research methodology comprises a literature reviews from general project management to get the relevant ideas for software project management Firstly, a literature reviews to investigate the current state of project scheduling under uncertainty which determines the need, scope and objectives of the new approach Secondly, a literature review follows on the background, theory and application of BNs This provides the conceptual and the fundamental background for the new approach The research also examines the features of software projects, both in waterfall model and ASD model In order to handle risks in software project scheduling, the common risk factors are also needed to be examined Within the research, tools are built to validate the models and help software project managers in assessing risks and making appropriate decisions An overview of the main chapters is as follows: Chapter briefly reviews software project scheduling and software project risk management process and explores the currently popular techniques in project scheduling Chapter consists of initial attempts of applying BNs into risk management in software project scheduling as well as experiments on common risk factors in software project scheduling Chapter incorporates BNs into popular software project scheduling techniques, namely CPM, PERT and agile software scheduling Chapter concludes the thesis and points the way forward for future research There are publications involved in this research, in which one is published in an ISI journal (please find more details in the LIST OF SCIENTIFIC PUBLICATIONS) CHAPTER OVERVIEW OF SOFTWARE PROJECT SCHEDULING AND RISK MANAGEMENT 1.1 Software project management and software project scheduling Software project management is an art and science of planning and monitoring software projects It refers to the branch of project management dedicated to the planning, scheduling, resource allocation, implementation, tracking and delivery of software and web projects [31, 32] The project manager leads the project team and often plays the central role among the investors (or customers), the suppliers and the senior management of the organization He or she makes sure the project complies with the constraints as well as delivering the product (software) on time Therefore, software project management is about the methodology to organize all activities related to the software We always need project management since software projects always have constraints of budget and time frame According to Project Management Insitute (PMI) in Project Management Body of Knowledge (PMBOK) guide [33], project management includes five stages or process groups: Initiating, Planning, Executing, Monitoring and Controlling, and Closing In modern software project planning, the two essential tasks are project risk management and project scheduling They play crucial roles to make sure the project is effectively and efficiently organized, including resources (hardware, software, and network) allocation, task and personnel assignment and monitoring [10, 33] Software project scheduling is one of the most demanding tasks for software project managers It is all about resources allocation during the project life cycle In simple words, software project scheduling is splitting the whole project into smaller tasks and estimates the required time and resources to complete each task In real-life software project, a schedule is represented as a set of activity diagrams (Work Breakdown Structure, Activity Charts) which clarifies the dependencies between activities (tasks) and personnel assignment 1.2 Software project scheduling methods and techniques 2) Risk Analysis attempts to measure the risk and its impacts on different project outputs (i.e cost, time, and performance) This stage is also known as quantitative risk management; 3) Risk Response attempts to formulate management responses to the risk This is a decision making process Since the main stage is Risk Analysis, risk management in this thesis is quantitative That is why probabilistic approach (BNs) are applied in order to manage software project risks better Another reason for applying BNs in software project scheduling is that activities or tasks in popular scheduling techniques can be connected to from Bayesian Networks For example, in CPM and PERT, predecessor node (activity) i and successor node j is connected by: Connecting EF of i with ES of j and connecting LS of j with LF of i 1.5 Chapter remarks As mentioned in the Introduction section, there is now still limited research on the topic of applying BNs into risk management in software project scheduling Therefore, together with getting relevant knowledge for risk management in software project scheduling, this thesis also takes into consideration of risk factors in software project scheduling as specific attributes in software projects Those backgrounds will be used for proposed approaches and experiments in Chapter and Chapter Chapter will consist of initial attempts of applying BNs into risk management in software project scheduling as well as experiments on common risk factors and their impacts in software project scheduling 19 common risk factors for both traditional software development projects and agile software projects are proposed 10 Chapter 3, in turn, will incorporate BNs into popular software project scheduling techniques, namely CPM, PERT and agile software scheduling to enhance the predictability of schedules using those techniques BNs are also applied in examining the relationships among risk factors proposed in Chapter CHAPTER COMMON RISK FACTORS AND EXPERIMENTS ON BNS AND SOFTWARE PROJECT SCHEDULING 2.1 Application of BNs into risk management in software project scheduling This section is the work represented in publication The goal of this section is to introduce a mathematical model and algorithm (BRI) as well as proving that software development teams can rely on the model and the algorithm to accurately predict, calculate the risks and their impacts on the success of the project The Arizona State University at Tempe in 2000 conducted a research to develop a model that can be used to assess potential impacts of software risk factors on a software development project They came up with a model that consisted of 24 common risk factors in software projects Hui and Liu [7] built up software to calculate the impact of these 24 risk factors to the chance of software projects’ success Based on the software and model, they surveyed 29 IT specialists who had to 25year experience in the IT industry These 24 risk factors are classified into categories Some notable categories are: Resources (Reliance on few key person, Schedule pressure), System (Creeping user requirement), Management (Incapable project management), Experience (Lack of experience with project environment) The risk factors 11 are list in Table 2.1 From the list of 24 software risk factors, we have built sub BNs and overall BNs for risk modelling in software projects We propose the algorithm BRI (Bayes Risk-Impact) to assess the impact of risk factors: * Input: Risk factors and probability (Table 2.1) * Output: The degree of the impact of the risk factor on the fulfillment of a software project in the form of a vector of numerical values The higher the value, the greater the impact * The BRI algorithm assesses the impact of risk factors: Step Based on known probabilities, for example P(X|~parent(X)) = 0.4, calculate the possibilities of child nodes in each sub BN Step With each child node, recursively find ImpactWeight (child_node) Find BNs started by the examined child node in the original BN Calculated ImpactWeight(child_node) with the probabiliy calculated in Step If not found, ImpactWeight(child_node) = P(child_node) Step ImpactWeight(examined_risk) = ∑ImpactWeight (child_node) Step Sum up together ImpactWeight(examined_risk) into impact vector Step Repeat to examnine next risk A tool is built to simulate the above model and algorithm, helping managers assess the level of impact of the risks on the ability to complete a software project when the probability of occurrence of the risk is known in advance The software is built in C# programming language, with MS.NET Framework 4.5 library and the integrated developer environment (IDE) is 12 Visual Studio 2012 The sample data set is the data of real software projects and the results of the research of Hui and Liu [7] Experiment method: joint testing for all data sets and testing in each phase of each project Experimental results with all three data sets show the similarity of the levels of impacts (all high) of the risk factors (e.g incapable project management, lack of client support, or excessive reliance on a single process ) The tool and experimental results show that the algorithm BRI accurately assesses the impact of risk factors on the project schedule The proposed models, algorithms and tools, in addition to quantifying risks and their consequences, can also help identify problems and potential risks at the first stage of the project – project scheduling and project planning 2.2 Experiments on common risk factors This section examines a model and a probabilistic tool CKDY using BNs to evaluate risk factors in software project scheduling The result of this section is represented in publication We apply the method proposed by Kumar and Yadav [20] including steps In each step, we choose the right solution to put into the building of the tool CKDY The following is a detailed description of the options: (1) Selecting the top ranked risk factors in software project scheduling We synthesize from a number of published risk factors such as SEI risk classification [81], NASA NPD2820 risk classification [82], along with research results (24 risk factors) of Hui and Liu [7], the selected 27 risk factors by Kumar and Yadav [20], to select a set of risk factors in software project scheduling to test the method proposed by Kumar and 13 Yadav [20] The set of risk factors in software project scheduling is shown in Table 2.3 Component Risk Factors Sub component Poor management skills and experience Pressure on the schedule Frequent changes in customer requirements Inappropriate process Inappropriate technology Consequences Incomplete mission Wasted resources Reliability Impact Over scheduled Table 2.3 Risk factors, consequences and impact (2) Constructing causal relationships among the software risk factors This is the modeling process of causal relationships between Risk Factors, Consequences and eventual Impact with the help of domain experts Based on the relationships, we form up sub BNs of risk factors and consequences which are illustrated in Figure 2.32 and Figure 2.33, and the overall BN model is shown in Figure 2.34 (3) Constructing the node probability table (NPT) for each node of the model The initial probability values are the evaluation and judgment from experts (or project managers); the other probability values are provided from available PSPLIB (Project Scheduling Problem Library) data set [83] (4) Calculating the probability value of software risk factors for the project We apply Bayes formulas to calculate the probability of each node, and finally the probability of the 14 outcome of the project To make the calculations easier, a support library - HuginExpert [84] The CKDY tool [85] is developed which inherits Hugin classes, functions and APIs that provide Bayes analysis and prediction solutions for Java programming language (ParseListener, Domain, Compiler ) The functions of the tool are shown in Figure 2.13 including: Calculating, predicting probability of risks in the project phases; giving warnings to managers after each phase; ranking risk factors; provide a visual graph of probability variation for each period The CKDY tool has also been tested and compared with Microsoft's MSBNx software [88] for building and computing based on BNs The results show the similarity in the evaluation of consequences and outcomes according to the proposed research model 2.3 Proposed common risk factors in software project scheduling The 19 common risk factors in traditional software project: The Table 2.9 lists the 19 common risk factors in traditional project scheduling The common risk factors selected from the 27 software risks proposed by L Wallace et al [26], risk factors in Table 2.3 (section 2.2), 43 risk factors in Agile software projects selected by Rai et al [22] Only common risk factors (that the ASD and the traditional software development have in common) and affect software scheduling and planning are examined In order to identify them, the three lists of risk factors mentioned above are compared and combined (in consideration of the planning phase of software development) The comparison and combination were based on the risk factors’ description, even when they are not stated literally the same For example, the risk factor Continually changing system 15 (in 27 risks [26]) can be considered the same with Frequent changes in customer requirements (in risk factors in Section 2.2) and related to Customer not certain that the functionality requested is "do-able" (in 43 risk factors [22]), or Poor management skills and experience (in risk factors in Section 2.2) is considered the same with Lack of management experience (in 43 risk factors [22]) No 10 11 Risk factors Large-scale, offshore and distributed Insufficient training Excessive preparation/planning Teams are not focused Inappropriate process The best people not available for self-organizing team The skill level of people (team/developer) Staff is not committed for entire duration of the project Ineffective communication Staff does not receive necessary training Lack of tools and methods Software tools are not used to support software planning 12 and tracking activities Configuration management software tools are not used 13 to control and track change activity throughout the software process 14 Incorrect scale 15 Inappropriate technology 16 Level of team/developer Customer not certain that the functionality requested is 17 "do-able" 18 Lack of commitment of superior management 19 Lack of management experience Table 2.9 List of 19 common risk factors for software project scheduling The 19 common risk factors in agile software project: 16 Using the same method explained above, the thesis came up with 19 common risk factors in agile software scheduling which is listed in Table 2.11 In order to have the most common risk factors in software project development, the list of 19 risk factors in iteration scheduling (in Table 2.11) only differs to the list Table 2.9 with the risk factor (Ineffective communication versus Staff doesn’t attend to daily meeting) CHAPTER INCORPORATION OF BNS INTO SOFTWARE PROJECT SCHEDULING TECHNIQUES 3.1 Applying Baysian Networks into specific software project development This section proposes an enhanced method and algorithm by combining optimized agile iteration scheduling (proposed by Akos Szoke [19]) and the ability to predict and handle risks in resource-constrained contexts of BNs Based on the method, software was developed as a support tool for managers to control their project schedules The result of this section is represented in publication Like many other scheduling methods, Akos Szoke’s algorithm assumes that in the available set of resources, tasks are done in planned durations However, software project scheduling has to deal with the fact that resources such as human, time, technology and money are not always predetermined Moreover, there are always risks in software projects as well as in the schedules, for example risks related to human or technology Incorporating BNs in to agile iteration scheduling would help model and quantitatively analyze risks, and hence help assess risks and predict the progress of the project better The lack of predictability is also one of the five most important concerns while dopting Agile practices and processes (VerisonOne [97]) 17 The improved algorithm Szoke-BN has a matrix of completion probabilities as the input data, so that the output is the set of schedules, set of time for tasks, and the probability of successful schedule The algorithm also integrates strategies for selecting tasks in iteration scheduling to reduce the shortest time that all resources finish in an iteration – makespan, with the constraints of resources allocation This algorithm not only provides iteration schedules, but also helps project teams analyze the schedules at any point of time, as well as predicting the chance of their success 3.2 Incorporation of Baysian Networks into CPM This section takes the advantage of BNs in modelling uncertainty and incorporates them in Critical Path Method - one of the most popular techniques of project scheduling The section also examines 19 common risk factors in project scheduling The incorporation of Baysian Networks into CPM and 19 risk factors resulted in the RBCPM model and the RBCPM method A BN is formed for 19 common risk factors and a general risk (Figure 3.3) As mentioned above, their relationship is also analyzed based on literature review and project managers’ experience Another BN is the CPM network (or the overall BN), in which a task is a node (and also a variable in BN), with the defined connection between dependent variables Predecessor node i and successor node j are connected by connecting EF of i with ES of j and connecting LS of j with LF of i Figure 3.4 presents the connection among tasks in the CPM network In the directed graph CPM, each task is associated with parameters D, LS, LF, ES, and EF In our RBCPM model, each task is also affected by a general risk which represents the set of 19 risks 18 Figure 3.4 Task’s parameters and connection to other tasks The tool RBCPM is built to test the model and the method RBCPM The experimental results show the reliability of the model and the tool, since the calculation is appropriate to the situation of the real-life projects However, the reliability of the proposed model depends on the BN, i.e 19 common risk factors, their relations and their NPTs Therefore, the feedback from experts and from project managers is crucial to the results This is also the similar case with any other system based on BNs The main results of this section are presented in publication 3.3 Incorporation of BNs into PERT Since PERT is similar to CPM, this research proposes a RBPERT model identical to the model proposed in Section 3.2 with two differences: (i) PERT scheduling technique is used instead of CPM, and (ii) risk factors are deeper analyzed using the adapted risk categorization and levels from construction project The process in improved RBPERT Model is shown in Figure 3.10 19 Figure 3.10 Process in improved RBPERT Model Chang et al [23] categorized construction project risks into categories: Risks due to the physical environment and Resource risks (people, machine, materials, methods, money) Adapted to software development project, in this research the machine category is considered as technological risks, and materials category is considered as support tools The tool RBPERT was built in Java programming language which includes the following main functions [100]: Calculates the start and end time of each task (activity) with PERT scheduling technique and calculation; Calculates and provides a distribution chart that accumulates the probability of project completion time; Provides the RBPERT model of the project A result model is presented in Figure 3.13 The experimental results from the tool RBPERT show that the probability for the projects to be done in real time durations could not be 100% which is the limitation of the PERT 20 technique, and the tool also reflects Firstly, PERT requires a subjective (time) estimates of the tasks, leads to the accuracy of PERT estimates rely on these subjective estimates; i.e., the schedule would be affected if the people provide these estimates are not focused, lack of experience or biased Secondly, in our research, it is assumed that the critical path will remain the critical path throughout the whole project, which is not always guaranteed in real life PERT technique Besides, like CPM, PERT technique implemented in this research also assumes that all the resources are available during the whole project (which might not be the case in the real-life project) Another explanation for the differences between the result from the tool and the real-life projects is that in real-life, project teams can work overtime (so that the real total duration can be longer than reported) in order to finish the project faster Figure 3.13 A result for the network provided by the RBPERT tool for the first data sample 21 However, the experimental results show that the proposed approach also enriches the benefits of PERT in handling uncertainty by further incorporating risk factors together with the powerful analytical capability of BNs The main results of this section are reflected in the publication 3.4 Incorporation of BNs into ASD scheduling The author develops an algorithm for Agile iteration scheduling with the incorporation of BNs to support software teams to analyze the schedules as well as predicting the chance of their success, together with the incorporation of 19 common risk factors in iteration scheduling To elaborate the proposed model and algorithm, the tool BAIS (Bayesian Agile Iteration Scheduling) is built using Java The tool allows users to enter the number of resources (developers), the number of tasks, the length of iterations, tasks’ precedencies, pre-assignments and durations for tasks The tool also requires the input for a table of probability for each resource finishes the assigned task in time The tool provides: an iteration schedule (based on the input data), the possibilities for each task, resource and the whole iteration, and BNs for resources This section is the work represented in publication CHAPTER CONCLUSION 4.1 Summary of the work has been done - Carrying out literature review on project scheduling techniques, software project scheduling techniques, and on risk factors in software project scheduling - Proposing scientific models for risk management in software project scheduling that examines specific features of software project scheduling such as common risk factors and 22 their impacts (on software project schedules) as well as supporting software project managers to keep track of their projects’ schedules The models based on a probabilistic approach using BNs, and applied both to traditional waterfall software development and ASD - Validating proposed models by building tools and carrying out experiments with data from the real world These results have been published in conference and journal papers (see List of scientific publications for more details) 4.2 Main contributions The research has developed the algorithm BRI (Bayes RiskImpact) and the tool CKDY to assess the impacts of risks and hence proposes common risk factors in software project scheduling Based on literature review and experiments, the research has come up with 19 common risk factors in software project scheduling (for both agile development style and traditional development style) The research also proposes advanced scheduling methods in software project development The methods based on incorporating BNs and common risk factors models into popular software scheduling techniques such as PERT, CPM, and ASD Tools have been built to experiment the proposed scheduling methods and models Experimental results show that the proposed methods and models are reliable as well as providing practical value to software development teams in analyzing, monitoring and predicting risks and the chance of success of the project 4.3 Limitations Although the author tried to get real software project data from well-known software companies in Vietnam, his approaches have not been applied by those companies into real 23 on-going software projects yet All the experiments have been done with finished projects and with the judgements from the projects’ people (especially the projects’ managers) The definition of empirical evaluation criteria is also another limitation of the thesis since there is not enough data and information from real software projects (to act as the basis for evaluating according to the criteria) Although the research tries to find out the optimization algorithm for software project scheduling, it has not proposed a brand new algorithm yet The research has only improved the existing methods and algorithms using probabilistic approaches 4.4 Further research The results of experiments on the available data sets and indicate that the approach proposed in the research can provide practical value as a decision support tool for software scheduling and planning To further affirm this, more representative real-life data sets needed, and some case studies can be carried out in real on-going software projects The author would come up with consistent data sets for both traditional software project development and agile software project development, and these data sets could also be contributed to the research community Further research can be incorporating additional uncertainty sources into the model, or further handling common causal risks (which affect more than one task) The list of 19 common risk factors in software scheduling could be further refined by case studies or surveys The research would also go further with finding out a software scheduling optimization algorithm using Bayesian Networks 24 ... suitable for capturing uncertainty in projects Yet, BNs are rarely applied in project risk management in general as well as in software project management and software project scheduling In addition,... risk factors in software project scheduling - Proposing scientific models for risk management in software project scheduling that examines specific features of software project scheduling such as... BNs into risk management in software project scheduling as well as experiments on common risk factors in software project scheduling Chapter incorporates BNs into popular software project scheduling