# 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  
The most important goal of task effort prediction is to determine the time needed for task completion. Hence, the first element of set V is defined: Working Hours. The task effort depends on the task's complexity, on the quality of the requirements specifications, and on the developer's skills. The task complexity depends on the number and the complexity of reports, user interfaces (forms), and functions that should be created in the task. Thus, the next elements of V are as follows: Form Complexity, Report Complexity, Function Complexity, Developer Skills and Specification Quality. The effort of the task depends largely on whether the developer is familiar with this type of task, or whether he has to use new technologies and new knowledge. Set V is completed by the following element: a New Task Type. To fully define a set of tuples V (G) = {(s\({}_{1}\), V\({}_{1}\)), \(\ldots\), (s\({}_{n}\), V\({}_{n}\))}, it is necessary to define si, the set of all possible values for each V\({}_{i}\). The set s\({}_{i}\) is defined in two steps:  
* The first step defines the types of the selected variables and identifies the values for each variable. Although BN allows the use of both discrete and continuous variables, in this paper we use discrete variables, because the experimental data are discrete, and because the available BN tools require the discretization of the continuous variables. * All the values are checked for rank and accuracy. In some cases, it is necessary to go back to the first step and redefine the values of the nodes. The variables Form Complexity, Report Complexity, and Function Complexity define the complexity of the interface, reports, and functions to be created in the task. In the old model, the project manager entered the number of simple, medium and complex reports, and, based on that, the model calculated the value of the Report Complexity node. In the new model, the Report Complexity node can take one of the three states (low, medium, or high), and its values are evaluated by the project manager. Several project managers agreed that this is a simpler and more practical method. The same applies to the variables Form Complexity and Function Complexity. The complexity of the reports, as well as the complexity of the forms and functions, is defined based on the elements to be constructed, their number, and their comparison with historical data on similar elements (analogy). The report evaluation is also influenced by the database query complexity used to obtain the result. The assessment of the function complexity also depends on the complexity of the processing algorithm. \begin{table}
\begin{tabular}{l l l} \hline \hline \multicolumn{1}{c}{**Goal**} & \multicolumn{2}{c}{**Accurate Assessment of the Effort Required to Accomplish the Task**} \\ \hline Question 1 & What is the difference between the estimated time and actual time? \\ \hline  & Measure 1 & Task Completion Time \\ \hline Question 2 & How much does the task scope affect the required effort? \\ \hline  & Measure 2 & User Interface Complexity \\ \hline  & Measure 3 & Report Complexity \\ \hline  & Measure 4 & Function Complexity \\ \hline Question 3 & How much does the task complexity affect the effort required? \\ \hline  & Measure 2 & User Interface Complexity \\ \hline  & Measure 3 & Report Complexity \\ \hline  & Measure 4 & Function Complexity \\ \hline Question 4 & How much does knowledge of the work domain affect the required effort? \\ \hline  & Measure 5 & Task Type (New or Change/Update/Correction of Old One) \\ \hline Question 5 & What is the impact of technology knowledge on the required effort? \\ \hline  & Measure 6 & Developer Rating \\ \hline \hline \end{tabular}
\end{table} 
Table 1: GQM Approach—Goal, Questions, Measures (Part). The prediction accuracy of BN models is highly dependent on consistency, and this way of evaluating variables can result in different evaluations for the same value.