Intelligent System for Forecasting Failure of Agile Projects

: Revealing the failure of agile software projects is a great challenge faced by software companies. This paper focuses on the using of intelligent techniques such as fuzzy logic, multiple linear regressions, support vector machine, neural network to address this challenge. This paper also presents a review of some works related to this area of interest. In this paper, the researchers propose an approach for revealing the failure of agile software projects based on two intelligent techniques: fuzzy logic and multiple linear regressions (MLR). MLR is used to determine crucial failure factors of agile software projects. Fuzzy logic is used for revealing failure of agile software projects.


-
Big size software projects -Moderate size software projects -Little size software projects CHAOS report concentrates on three main axes in software projects, as follows: -Software projects failure - The major features that cause software projects to fail - The key ingredients that can minimize project failures The Standish Group's CHAOS report shows a comparison between agile and traditional waterfall projects. According to this report, agile approaches have more successful projects and less outright failures for every project size. Table 1 shows the results of the most recent report [ This paper proposes an approach to reveal failure of agile software projects. For this purpose, this paper tries to utilize the advantages of intelligent techniques to address this problem. Linear regression analysis is used to identify crucial failure factors. Fuzzy logic is used for revealing the failure of agile software projects.
The rest of the paper is organized as follows: section two presents a background overview; section three introduces the previous work in this research filed; section four introduces the proposed approach and its components; section five introduces the challenges and future work; and finally, section six gives the conclusion.

Background and Overview
This section presents an overview of agile methodologies such as Scrum, Extreme programming (XP), Adaptive Software Development (ASD) and Feature-Driven Development (FDD). It also presents an overview of intelligent techniques such as fuzzy logic and multiple linear regressions. 10 agile method to manage a software project. Scrum focuses on the members of staff should function in order to create the system flexibly in constantly changing environment [13]. It is composed of five phases as follows:

Agile
Product backlog creation Sprint Planning and Sprint Backlog Creation Scrum Meetings Testing and Product Demonstration Retrospective and Next Sprint Planning FDD is a reiterated software development process. Its main objective is to provide tangible, working software iteratively in a timely manner [12]. It is composed of five activities as follows: Develop overall model Build feature list Plan by feature Design by feature Build by feature ASD is an agile method for managing a large software project. It concentrates on the problems of improving complex and huge systems. This methodology highly supports incremental, iterative development, with fixed prototyping. ASD is composed of six basic characteristics: mission focused, feature based, iterative, time-boxed, risk driven and change tolerant [13].

Intelligent Techniques:
This section introduces overview of linear regression and fuzzy logic as follows:

Linear Regression Analysis
Linear regression (LR) analysis is composed of two types which are simple linear regression and multiple linear regressions. The general linear regression formula can be formulated as follows [14]: Y= β0+ β1x1+ β2x2+…….. ΒNxN+ϵ (1) Where: y represents the dependent variable x1,x2, ...,xn are the independent variables βi is the regression coefficient ε is the random error component. β0 is the y intercept In linear regression, there are three main outputs that include regression details, ANOVA table and coefficients table as shown below in figure 1.

11
• ANOVA table contains one of the most significant features which are 'significance F'. Whenever, significance F is < 0.05, this means that the proposed approach supports to define the most important factors that influence failure of agile software projects. • Coefficients table contains one of the most significant features which are 'p-value'. If p-value in failure factors is less than 0.05, then failure factors are included in the crucial list.

Fuzzy Logic
Fuzzy logic is used for revealing failure of agile software projects. It is based on probabilities between 0 and 1. Fuzzy logic also contains many concepts such as linguistic variables, membership function, knowledge rules, Fuzzification and Defuzzification. These concepts will be described as follows: • Linguistic Variables are the variables that hold items in a form of statements or sentences such as "hot", "cold" and "very cold". • Membership functions are used to map the non-fuzzy input values to fuzzy linguistic terms and vice versa.
As shown in figure 2, a membership function can has many forms such as triangular, trapezoidal, Gaussian or generalized bell. Defuzzification is the process in which the linguistic values are transformed into numerical values that computers can deal with it. Defuzzification (center of gravity) can be formulated as follows [15,16]: Where: Y: The fuzzy sets to which the decision belongs. y1: The first decision y2: The second decision µ: Degree of membership Yo: The final decision

Related Work
Through previous work, many studies were reviewed and construed, these studies utilize classical techniques such as (statistical analysis and etc.) and intelligent techniques such as (support vector machine, fuzzy logic and etc.) to detect failure and success of agile software projects, as follows: V.Lalsing and et al, introduced a new process to assess people attributes in agile software projects based on time submission, rework standard, fault rate, and connection channels. This paper executed tests on little and moderate enterprises and using scrum method [1]. The importance of this research is to assess people attributes that influence of agile software projects by using a quantitative approach.
H. Taherdoost and et al, introduced a survey to display failure and success features of information software projects through organizational, people, process and technical features. This paper congrats on organizational features that utilize in enterprises concerned to agile methodologies [17]. The importance of this research is to use standard deviation to assess failure and success features that influence of information software projects.
M. Shepperd and et al, introduced a new approach based on unbiased statistic to detect success of agile software projects. This paper concentrates on various features such as organizational, people, process and technical features. This study seeks to detect the best method prediction of agile software projects [18]. The importance of this research is to use unbiased statistic for predicting success of agile software projects.
S. Lee and et al, introduced a new approach to assess agile method in little projects based on agility features that are consisted of elasticity, velocity, learning and responsiveness. This paper executed tests on little projects and using scrum method [19]. The importance of this research is to assess little projects in agile methodology by using agility features.

13
A. Elzamly and et al, introduced a new model based on risk features such as (determination risk, risk evaluation, risk handling, risk dominant and risk documentation) to evaluate success of agile software projects. This paper utilizes historical information from various enterprises to assess software projects [10]. The importance of this research is to use risk management equations to evaluate success of agile software projects.
M. Tanner and et al, presented a new approach to reveal crucial success features to enhance successful agile adoption based on customer sharing, stakeholder sharing, team construction, project kind, and skill level of team members. This paper seeks to gather historical information through questionnaires and meeting to experts to detect the crucial success features [20]. The importance of this research is to use mean analysis and standard deviation for determining crucial success features in agile software projects.
Feras A. Batarseh and et al, presented a modeling regression to reveal failure of agile software projects. The new method seeks to define kinds of software systems failures in various companies concerned to agile methodology [21]. The importance of this research is to use modeling regression to reveal failure of agile software projects. D. S. Nguyen introduced a new approach to define success features that influence of agile software projects based on gathering historical information from a questionnaire. This paper can define crucial success features that influence of agile software projects such as customer sharing, perfect planning and continuous delivery products [22]. The importance of this research is to use time series for determining crucial success features in agile software projects.
T. Chow and et al, introduced a new approach based on multiple linear regression to determine crucial success features that influence of agile software projects. This paper displays three crucial success features: (1) Delivery Strategy, (2) Agile Software Engineering Techniques and (3) Team Capability in order to Quality, Scope, Time, and Cost [23]. The importance of this research is to use multiple linear regressions to determine crucial success features in agile software projects.
N. Cerpa and et al, introduced a new framework based on logistic regression to assess success features for predicting successful of agile software projects. This paper congrats on various success features such as customer sharing, perfect planning, project manager, and expansion process and development team. This paper displays that customer participation one of the most significant features that influences of agile software projects [24]. The importance of this research is to use logistic regression to predict successful of agile software projects. R. P. Mohanty and et al, introduced a new model based on genetic algorithm (GA) to detect failure of agile software projects. This paper utilizes genetic algorithm to assess accuracy of agile software projects and detect crucial risk features [25]. The importance of this research is to use genetic algorithm to predict failure of agile software projects. D. Stankovic and et al, presented a new approach based on multiple linear regression to detect crucial success features in information technology projects. This paper displays crucial success features such as good team, Project management process and agile software engineering [26]. The importance of this research is to use multiple linear regressions for determining crucial success features of information technology projects.
Pushpavathi T.P and et al, presented a new approach based on GA based fuzzy c-means clustering and random forest classifier to predict successful of agile software projects. This paper congrats on various success features such as Total project time and Defect counts estimation. This paper displays that the precise of the proposed approach is 93.05% [27]. The importance of this research is to use genetic algorithm based fuzzy c-means clustering and random forest classifier for predicting successful of agile software projects.
H. B. Yadav and et al, presented a new method to predict successful of agile software project by using fuzzy logic. This paper executed tests on 20 projects in various sizes in small companies [28]. The importance of this research is to use fuzzy logic for predicting successful of agile software projects.
T. Hovorushchenko and et al, presented a new model to predict successful of agile software project by using neural network. This paper displays the software project period and software project performance that influence of successful of agile software projects [29]. The importance of this research is to use neural network for predicting successful of agile software projects. 14 S.A. Rizvi and et al, presented a new method to predict early stage of successful of agile software project by using fuzzy logic. This paper displays that the precise of the proposed model is 98.4% [30]. The importance of this research is to use fuzzy logic for predicting early stage of successful of agile software projects.
V. Vashisht and et al, introduced a new model to predict successful of agile software project by using neuro -fuzzy. This paper displays that the precise of the proposed model is 93.4% [31]. The importance of this research is to use neuro -fuzzy model for predicting successful of agile software projects.
Through previous work, there are not official researches to define crucial failure features that effect on agile software projects. Crucial failure features of agile software projects are very significant for enterprises that combining agile method with software projects. This paper tries to detect crucial failure features of agile software projects for avoiding software projects to fail. It also aims to find the optimal intelligent techniques to reveal failure of agile software projects.

The Proposed Approach
This section presents an approach to reveal failure of agile software projects. An approach consists of three parts: as shown below in figure 4.
1. Survey recent researches to elicit significant failure features related to agile software projects. 2. Linear regression analysis is used to define crucial failure features in agile software projects. 3. Fuzzy logic is used to reveal failure of agile software projects.

15
The first part is to survey recent manuscripts for revealing failure of agile software projects. This part aims to elicit significant failure features in agile software projects. Elicit significant failure features are based on some estimation criteria (Transparency, Clarity and Easy) as shown below in figure 5.

Linear Regression
Linear regression is used to define the crucial failure factors (CFF) in agile software projects. It consists of one dependent variable and independent variables. It is formulated as follows: Where: Y is the dependent variable (degree of influence of failure factors on agile software projects) and x1, x2… xn are the independent variables (failure factors of agile software projects).
This section presents a general linear regression algorithm to define crucial failure factors in agile software projects.

15.
Reject the other failure features

Return £
Linear regression is used to obtain the final list of crucial failure factors of agile software projects.

Fuzzy Logic
In this paper, the linguistic variables (light, medium-heavy and heavy) are used as input variables. The output variables are low, medium, high and very high. The triangular membership function is selected because it gives accurate results. As shown in figure 6, the main steps of the inference engine include: Fuzzification, knowledge base and Defuzzification. This section also presents a general fuzzy logic algorithm to reveal failure of agile software projects.

Challenges and Future Work
Future work seeks to enhance the precise to reveal failure of agile software projects by the linear regression to define the crucial features of failure and fuzzy model for revealing failure of agile software projects.
Thus, this paper will suggest a model based on hybrid intelligent techniques to reveal failure of agile software projects as shown below in figure 7. Future work seeks to realize three major targets as follows: • Define initial list of failure features in agile software projects • Define crucial list of failure features in agile software projects by linear regression • Build fuzzy logic model to reveal failure of agile software projects.

Conclusion
Crucial failure factors of agile software projects are significant for software companies that are seeking for adopting agile method in their software projects. In this paper 17 works were reviewed related to revealing the failure of agile software projects and shows the advantages and disadvantage of each of them. This paper proposed a new approach for revealing the failure of agile software projects. This paper also presented intelligent techniques: linear regression and fuzzy logic. Linear regression was used to define crucial factors features in agile software projects. Fuzzy logic was used for revealing failure of agile software projects.