# Advanced Bayesian Network for Task Effort Estimation in Agile Software Development
## 3 The BN Model
### The New Proposed BN Model
#### 3.2.1 Structure Definition
To ensure consistency in the evaluation of these variables, the following rules are defined [21]:  
* The report is simple if it takes data from a single table in the database. If there are two tables, the report is moderately complex. The report is complex if the data are taken from three or more tables. If more than 10 types of data need to be printed/displayed, the complexity of the report increases by one level, e.g., a simple report becomes moderately complex. * The user interface of up to 5 elements is simple. With up to 10, it is moderately complex. With more than 10 elements, it is complex. If the elements (controls) are more demanding for programming, and when there are 2 such elements, the interface is moderately complex. It becomes complex when it contains more than 2 such elements. * The function is simple if it is an existing function, without changes. If minor changes to an existing function are required, the function is moderately complex. The function is complex if it is a completely new function, or if major changes to an existing one are required. After the project manager determines the number of simple, medium and complex reports, the total complexity of the report in the task is defined according to the algorithm in Table 2. Similar to the Report Complexity node, the algorithms are defined in order to determine the total complexity of the Form Complexity and Function Complexity nodes depending on the type and total number of elements. The Specification Quality is determined by the level of requirements decomposition: definition of technical demands and business clarity. The rating can be from 1 (very poor), to 5 (very good). The following questions help in quality assessment:  
* How understandable is the task? * Is it complete? * Is there a possibility of a different interpretation? * Does the user have a developed idea? * How are the links to other tasks/modules defined? * Are there any technological specifics? Variable New Task Type can take on only two values: Yes or No. If the user requested a change/addition to the task, the value of this variable will be No. The estimation of the skills and knowledge, as well as experience and motivation of each developer, is rated by the Personal Capability Assessment Method [35] and then classified into one of five grades. The evaluation of a developer is performed once or twice a year. \begin{table}
\begin{tabular}{c c c c} \hline \hline  & \multicolumn{3}{c}{**Report Complexity**} \\ \hline  & \multicolumn{2}{c}{**Input Parameters**} & \multicolumn{2}{c}{**Output Value**} \\ \hline
**High (No)** & **Medium (No)** & **Low (No)** & **Total** \\ \hline
0 & 0 & \(\leq\)10 & Low \\ \hline
0 & 0 & \(>\)10 & Medium \\ \hline
0 & \(\leq\)5 & \(\leq\)10 & Medium \\ \hline
0 & \(\leq\)5 & \(>\)10 & High \\ \hline
0 & \(>\)5 & x * & High \\ \hline \(\geq\)1 & x * & x * & High \\ \hline \hline \end{tabular}  
*—\(\times\) can be any real number.  
\end{table} 
Table 2: Algorithm for calculating the total report complexity. To reduce the number of possible outcomes, a Task Complexity node is created. The value of this node is calculated based on the values of Form Complexity, Report Complexity, and Function Complexity and then ranked as low, medium, or high. The variable Working Hours expresses the number of hours spent on an individual task. To define node values, the historical data in the database of agile development projects of the commercial business system were checked. The range of values was from 15 min to 95 h. For application in the BN model, it is necessary to simplify the possibilities, so the outcome values should be intervals instead of point values. Instead of splitting the values of Working Hours in intervals, a node Working Hours Classification is added, so that the number of output intervals can be easily changed. In the old BN model, the values of Working Hours Classification were ranked in five non-linear intervals based on the authors' experience. Increasing the number of output intervals represents one of the imperatives.