# Advanced Bayesian Network for Task Effort Estimation in Agile Software Development
## 1 Introduction  
Inaccurate estimates of time and cost have the greatest impact on the failure of software projects [1; 2]. Traditional software project prediction models are either unreliable or require sophisticated metrics to be rendered reliable [3], thus representing a problem in agile software development (ASD). Many metrics used in traditional software development project planning simply cannot be used in agile development project planning. In recent years, most studies on predicting effort in ASD have been based on machine learning techniques [4; 5; 6; 7]. Some studies show that traditional estimation methods can be successfully replaced by Artificial Intelligence (AI) [8; 9; 7].  
The typical problems of traditional effort, cost, and quality prediction models can be overcome by using Bayesian Network (BN) models [10; 11], due to the following:  
* Flexibility of the BN building process (based purely on expert judgment, empirical data, or the combination of both),
* Ability to reflect causal relationships,
* Explicit incorporation of uncertainty as a probability distribution for each variable,
* Graphical representation that makes the model clear,
* Ability of both, forward and backward inferences,
* Ability to run the model with missing data.  
The prediction accuracy can be significantly increased by using empirical data [12; 13; 14]. There is a gap between theory and practice. Although the number of studies on the application of intelligent techniques in agile software development is increased, less than50% of these studies have been applied in practice [4]. Therefore, the purpose of this article is to increase the understanding of practitioners and facilitate BN implementation.  
In theory and practice, companies mainly measure and estimate software development functionality, effort, time and cost [15; 16; 17; 18]. Companies using agile methodologies are constantly making tradeoff decisions between functionality and effort, cost, and time [15]. Such a tradeoff is sometimes made in academic literature also--the terms 'cost' and 'effort' are used interchangeably in the systematic review of software development cost estimation [19].  
This is especially important in micro and small companies. Consequently, data from real agile projects are used for building this BN model. The model is intended for the prediction of smaller parts of projects (project tasks) and not for their scheduling. For that reason, the terms 'effort' and 'time' are used interchangeably in this paper. For a measurement unit, we use time-based units (man-hour), as many companies use [20].  
In the first phase [21], a BN model (old BN model) with eighteen nodes was developed. Empirical data were used for thirteen nodes, while values were calculated for five nodes. This BN model showed an estimation accuracy greater than 90%, but its outcomes are probability distributions for only five intervals. This decreases the prediction precision because all the values in an interval are treated equally. For example, values 45 and 61 from the interval '\(>\)40.1 h' have the same probabilities.  
Although the developed BN model is not overly complex, the objectives of the second phase are to further simplify the BN model and to increase the output interval number, without affecting the accuracy of the prediction.  
The authors wanted to further simplify the model, reduce the number of input parameters, as well as increase the number of output intervals without reducing the model's estimation accuracy.  
Therefore, the rest of this paper is structured as follows: an investigation of current usages of BN models for software effort prediction (Section 2); a description of their detailed building processes and the validation of the proposed BN model (Section 3); the explanation of the application of the respective BN model in another company (Section 4); and the presentation of conclusions and the outlines of future work (Section 5).