Key Factors for Selecting an Agile Method: A Systematic Literature Review

— Agile methods have become popular in recent years because the success rate of project development using Agile methods is better than structured design methods. Nevertheless, less than 50 percent of projects implemented using Agile methods are considered successful, and selecting the wrong Agile method is one of the reasons for project failure. Selecting the most appropriate Agile method is a challenging task because there are so many to choose from. In addition, potential adopters believe that migrating to an Agile method involves taking a drastic risk. Therefore, to assist project managers and other decision makers, this study aims to identify the key factors that should be considered when selecting an appropriate Agile method. A systematic literature review was performed to elicit these factors in an unbiased manner, and then content analysis was used to analyze the resultant data. It was found that the nature of the project, development team skills, project constraints, customer involvement and organizational culture are the key factors that should guide decision makers in the selection of an appropriate Agile method based on the value these factors have for different organizations and/or different projects.


I. INTRODUCTION
Many companies want to implement good-quality systems, and they want to do it quickly, at a reasonable cost and within a specific scope [1], [2]. Therefore, many companies have started to shift to so-called Agile methods to develop such systems [3], and it has been found that the extent of the organizational team's skills [1], [4], [5], culture of the organization [2], [4], nature of project [5], and project constraints [5] must be given in-depth consideration [6] when selecting an Agile method. However, selecting the most appropriate Agile method for a project based on organizational capabilities is a difficult task [7], [8] because there are many Agile methods to choose from, such as Extreme Programming (XP) [9], [10], SCRUM [11], Test-Driven Development (TDD) [12], Feature-Driven Development (FDD) [13], Lean Development (LD) [14], Adaptive Software Development (ASD) [15], Agile Modelling (AM) [16], Crystal Family Group (Clear, Red, Orange, Yellow) [17], Internet Speed Development (ISD) [18], [19], Disciplined Agile Delivery (DAD) [6], Agile Software Process Development [20], DevOps [21], Kanban [22] and the Dynamic Systems Development Method (DSDM) [23]. Moreover, many firms around the world are still unaware of the importance of employing a suitable Agile method, while others may be aware of some of these methods but do not have the courage or the confidence to migrate to these methods [4], [24]. As a result, despite the increasing use of Agile methods in software development projects, some firms believe that migrating to Agile methods involves a drastic risk [25]. Further, there has been little research conducted to comprehend the difficulties associated with the selection of Agile methods [25].
Therefore, the main aim of this study is to identify the key factors that need to be considered when selecting Agile methods. This will assist decision makers in selecting the most suitable Agile methods for different project conditions in order to ensure a successful outcome. To this end, a systematic literature review (SLR) was undertaken to find and evaluate the relevant research studies in order to identify the factors that may influence the selection of Agile methods [26], [27].
The rest of this paper is organized as follows: Section II provides the background to Agile methods and some of the techniques that have been adopted for their selection. In addition, it describes the research methodology that was employed in this study to identify the crucial factors for selecting Agile methods. Next, Section III presents the results obtained from the SLR of the relevant works, and it discusses the factors that were identified. Finally, Section IV provides a conclusion and defines the scope of further work that will be undertaken on this topic.

II. MATERIAL AND METHOD
This section provides a brief background to the emergence of Agile methods as well as the main techniques that have been used to select Agile methods. In the early days of system development during the 1950s and 1960s, Code-and-Fix and Stagewise methods were used [28] and then, in 1970, Structured Design Methods (SDMs) were introduced which enhanced these methods [29]. In the following decade, Rapid Application Development (RAD) emerged to address the weaknesses of SDMs [30], [31]. Then, in the late 1990s to early 2000s, Agile methods emerged to facilitate the early development of high-quality software products [23]. The chronological evolution of these systems development life cycle (SDLC) methods is illustrated in Fig. 1. Then, in 2001, a group of 17 software developers (members of the Agile Alliance) collaborated to enhance and explore the new Agile development methods. They proposed Agile methods based on some specific values and principles under the so-called Agile Manifesto [32]. The four values are defined as follows: "Individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan" [32]. Also, to help developers and project managers understand Agile methods and apply their values, the Alliance refined the values captured in their manifesto into 12 principles, the following are the examples of the principles [32]:

1) Stakeholders (customers and users) and developers must
work together daily throughout the project.
2) Build projects around motivated individuals.
3) Face-to-face conversation is the most effective and efficient method of conveying information to and within a delivery and development team. 4) Working software (solutions) which quantify the business value is the best way to measure progress.

5) Sustainable delivery and development by maintaining a constant pace.
Over the years, a range of practices has been developed for use with different Agile methods to cover and achieve the above principles [19]. For instance, active stakeholder participation, the planning game, and the sprint planning meeting are practices used in different Agile methods (AM, XP, and SCRUM, respectively) that all focus on the principle of having face-to-face conversations (principle 3 above). On the other hand, daily meeting (SCRUM), whole team (AM), and pair programming (XP) focus more on working together daily throughout the project (principle 1 above) [33], while, 40-hour weeks is an XP practice that focuses on maintaining a constant pace until the end of project development (principle 5 above).
Currently, there are numerous Agile methods obtainable. Therefore, it is difficult to select the most appropriate one in order to allow the correct practices to be adopted, especially for developing large, critical or complex projects [34]. Moreover, organizations cannot follow the same method to implement all of their projects [16], [17], [35]- [37] because of the different requirements of each project. In addition, some Agile methods are not covering all the stages of the development, they are considered as partial methods that require significant tailoring to make them work in practice. This includes the Crystal family of methods [17], AM [16] and, to a lesser extent, XP [10] and FDD [38]. On the other hand, some methods such as DSDM [23] and ISD [18] are more complete and require less tailoring. Obviously, a way needs to be found to ensure that the most appropriate Agile method is selected [39]- [41] for a specific project. Therefore, researchers and practitioners in the Agile methods domain have started to investigate various techniques to select the most suitable Agile method for a particular project. Table 1 below shows the different selection techniques that have been proposed so far.
Previous works have demonstrated that there is a need for systematic identification of the crucial factors for selecting an appropriate Agile method. However, even though several studies have investigated the selection of Agile methods, the researchers are not aware of any SLR that has been published to identify the factors involved in the selection of Agile methods. Therefore, the main objective of this study is to undertake an SLR to precisely identify the crucial factors for selecting appropriate Agile methods. The main aim of undertaking an SLR is to identify the available research studies relevant to a particular research question [26,27]. As will be explained below, a total of 1073 studies were found to be related to the search string for the SLR. However, only 53 were reviewed because only these were found to contribute to answering the research question. The SLR consisted of three stages: planning, performance, and reporting. The first two stages are explained in this section, while the reporting stage is covered in Section III.

Selection technique
Description of technique (based on factors considered) Alistair Crystal Family [17] In this work, it is argued that the size and criticality of the project are the main factors that could affect the selection of an Agile method (see also Section III). The Radar Chart [42] In this work, the researchers propose a radar chart technique to confirm the suitability of Agile methods and the following factors were considered: high team skill personality, nature of the project in terms of dramatic changes, less criticality and small team size (small project). Else, traditional approaches are more suitable. The researchers state that a flexible organizational culture is also needed when selecting Agile methods [42]. However, the radar chart is provided to confirm whether Agile methods are suitable or not and it does not determine which Agile methods should be used [43]. Informal Selection [40] In this work, the researchers propose an informal tactic for selecting the most suitable Agile or non-Agile methods [40]. The researchers state that in order for project managers to select a suitable method, they need to have a deep understanding of both types of methods and anticipate the problems that might occur in each. Thus, the researcher suggests empirical validation and investigation of the selection factors which might affect a specific category of SDLC methods [40]. The Slider [42] In this work, the researchers propose a technique called the Slider to consider four selection criteria when any organization decides to migrate to Agile methods [42]. The researchers suggest that in cases of project uncertainty or instability, high customer responsiveness, the existence of an innovative culture, and less criticality, Agile methods would be better than traditional methods. Else, traditional methods would be more suitable, or there may be a need to adopt some traditional practices [42]. On the other hand, a related work states that in the case of mixed results a combination of Agile methods and traditional methods is required [43]. However, this method of selection does not show which Agile methods are more suitable [43]. Selection of Practices in Agile Methods [41] In this work, the researcher focuses on evaluating which practices to adopt by taking into account the project constraints and the nature of the project. When project managers tested the provided selection method, they suggested that additional criteria could be incorporated for accurate decision making in selecting Agile method practices. However, the additional criteria were not discussed [41]. Selection of Practices in Agile methods [39] The researchers proposed a formal method of prioritizing the practices in Agile methods, whereby two approaches are derived from the Analytical Hierarchy Process (AHP) decision making technique, namely Rule-Description-Practice (RDP) techniques and cost-value analysis [39]. Both are combined to elicit and prioritize the best Agile method practices [39]. However, the researchers state that this approach is limited to only two criteria and it could be enhanced by some more selection factors [39]. It has been suggested that issues such as quality, scope and time should also be taken into consideration [5]. General Agile Adoption [44] In this work, the researchers suggest that the following five major factors should be considered when migrating to Agile methods: Supportive organization culture especially in the case of negotiation Trusted team including customers High team skills even among developers Developers' opinion must be highly considered when selecting a method Suitable organizational environment that facilitates communication between development team members and the customer. However, these factors are provided as isolated factors and the researchers did not focus on the value of each factor nor on the selection of an Agile method based on the provided selection factors. Methodology Selection Framework [45] In this work, it was found that project criticality and size highly affect the selection of Agile methods.

A. Planning Stage
In the planning stage, the researchers started by establishing the research question. Then the search strategy was developed based on the research question. The method for assessing the quality of the studies, definitions for data extraction, and methods for synthesizing the findings were all discussed in the planning stage.

1) Research Question:
The main goal of the study was to identify the crucial factors for selecting Agile methods. Thus, the research question was formulated as follows: "What are the factors that influence the selection of the available Agile methods?" This question helps in summarizing and categorizing the crucial selection factors, as well as in identifying gaps for further investigation.
Another question that was investigated based on the result of the SLR was "What are the techniques that have been used to select Agile methods?" This question was included in order to investigate the previous techniques that have been used in selecting Agile methods.

2) Search Strategy:
In the planning stage it was decided that Science Direct, IEEE Xplore, Emerald FullText, ACM, Springer and Google Scholar would be the libraries to search for primary studies. The researchers created the search string shown in Table 2 to search these libraries. The search string covers the concepts that represent the selection of Agile methods and consists of three parts. The first part was designed to retrieve any study that is related to Agile methods, the second part to retrieve any study that is related to the selection of Agile methods, and the third part to represent the factors. Boolean 'OR' was used to join the alternative terms that have been used in the literature and to join the synonyms, while Boolean 'AND' was used to join all three parts including their alternative terms and synonyms.  [46].

3) Selection of Primary Studies:
The retrieved studies were saved at Mendeley [47], [48], and they were evaluated based on the following inclusion and exclusion criteria: Inclusion criteria (studies that met one of the following criteria were included): • Studies on any of the selection factors for Agile methods; • Studies reporting the crucial success factors that might influence the selection of Agile methods.
Exclusion criteria (studies that met one of the following criteria were excluded): • Studies that do not concentrate on Agile methods; • Studies that partially discuss Agile methods and do not include any information about the selection factors for Agile methods; • Studies on the general reasons behind the adoption of Agile methods in comparison with non-Agile methods; • Studies on approaches for evaluating the agility of Agile methods; • Studies on the implementation of Agile methods; • Studies on factors related to adopting tools when tailoring Agile methods; • Studies on the selection of security activities for Agile methods or the selection of software; • Studies focusing on feedback models to control Agile methods in general rather than factors; • Studies on critical attributes that affect the running of a project using Agile methods.
The selected studies were then thoroughly analyzed and the references cited in them were glanced over quickly to find other relevant studies that might provide an answer to the research question.

4) Quality Assessment:
A questionnaire was designed to assess the quality of the relevant selected studies and to make sure that they contributed to the SLR in terms of answering the research question. The questionnaire was given to two reviewers, who have done research in the same field. The questionnaire required the evaluators to respond to five dichotomous-scale statements (Yes or No). The first three questions were subjective, and the next two questions were objective and were based on those used in previous studies as follows: Subjective questions: • The study presents at least one factor that influences the selection of Agile methods [49]. • The study discusses the value of at least one factor to adopt specific Agile methods [50]. • The study represents well-known experts' opinions [26], [27].
Objective questions: • The study has been published in a reputable journal or conference proceedings [26], [27]. • The study has been cited [51]. (Note: Following this question, the researcher considers Google Scholar citation, 2015 studies were not included in this question [51].)

5) Data Extraction Strategy:
Full details of the selected and reviewed studies were recorded [26,27]. In this step, the researchers sought to identify more specific information about how each study contributed to answering the research question. The included studies were recorded using the following data categories: Study ID, Citation, Objective, Research Methodology, Selection Factors, Finding and Conclusion, and Number of Citations.

6) Synthesis of the Findings:
A quantitative synthesis method was applied to count the frequencies of the different factors in the primary studies, it allows researchers to retrieve adequate data and understand the subject better [52]. In addition, a qualitative synthesis was applied to code and summarize the factors appropriately. Then, content analysis, which is a scientific method that provides a summary and analysis of textual messages, was employed to investigate the factors in-depth. Using content analysis, words in a text are systematically and directly compressed and the content categories thus generated are therefore fewer in number based on the explicit rules of the coding [53]. During coding, each text segment is labelled and the text segment can range from a few words to a complete paragraph. This coding enables the rearrangement and integration of words, sentences or paragraphs that are interrelated so that a meaningful portrayal of the data can be generated [53]. For this study, the outcomes are categories of factors affecting the selection of Agile methods.

B. Performance Stage
In this stage, the output of the review protocol was retrieved, the result of which is shown in Table 3.
A total of 1073 studies were retrieved and 62 were selected based on the inclusion and exclusion criteria. In this stage, where there were studies by the same author(s) that had similar content, only the most up-to-date or latest one was selected for further analysis. The third and final stage of the SLR was the reporting stage, which involved the analysis of the results retrieved from the libraries based on the search strategy. That is, the identification of the factors that influence the selection of Agile methods. The results of the analysis are presented in Table 4. The table is followed by a detailed explanation of each identified factor and its respective sub-factors. For more details on each study cited in Table 4 readers can refer to the original works.

A. Development Team Skills
It has been stated that "a bunch of novices will deliver a useless product, the choice is yours" [106]. Therefore, development teams' skills are a crucial factor in any system implementation, especially that of a critical system [17]. The development team must be able to increase their skills when migrating to Agile methods [17]. In any project, Agile methods focus on the talents of the team. However, different organizations have different teams' skills and may follow different Agile methods [6]. For instance, XP requires highly skilled programmers and effective interaction and communication among them [7], [10], but other Agile methods may require a different set of skills. Also, the skills of teams may vary [6] but a team could still adopt any of the FDD practices based on their experience [13]. However, there is no concrete guidance on how to adopt these practices [107]. The main sub-factors of development team skills are communication skills, technical skills and experience (competency), and domain knowledge. Each of these subfactors is briefly described in the following subsections.

1) Development Teams' Communication Skills:
The personal characteristics of team members such as collaborative attitude are crucial [108] to the success of a project. Empirical results demonstrate that having extensive communication skills is the main factor that influences the success of Agile methods [56], [109]. Studies have shown that team communication is vital in implementing an Agile method [35], [68] and in improving the method's effectiveness [57], [69]. In a project implementation, effective team communication is one of the most important factors for the successful adoption of Agile methods [6], [68]. Thus team communication between developers is important when selecting appropriate practices to follow in an Agile method [57], [59].
For instance, in a multi-team environment, especially when implementing large projects, the adoption of XP is difficult because its practices focus on the needs of individual teams [7], [59]. Communication within the team is also crucial when implementing projects using Agile methods [7], [55], [60], [61]. Further, when considering the best practices for team communication, it is important to take into account the physical setting (e.g., direct or indirect communication) [62]. Therefore, taking this factor into consideration can assist in the selection of an appropriate Agile method for a given project [54], [63] and ensure effective implementation of the method [57], [69].

2) Development Teams' Competency (Technical Skills and Experience):
The skills and abilities required in a selfmanaged team following an Agile method are different to those required in traditional methods [31]. They even differ between Agile methods themselves [94]. Thus the factor of competency is an important one. Competency in this context refers to whether one has real-world experience in the technology domain, has built similar systems in the past, and has good personal and interpersonal skills [108]. Task allocation has been found to be heavily dependent on team experience, which is directly related to the competency of teams [70], [110]. In addition, individual skills are important in task assignment, especially following a new innovation such as Agile methods [70], [71]. For instance, Agile methods emphasize producing and delivering working software quickly, which relies on the team members having the necessary skill [1], [40], [85]. Hence, companies have started to adopt and implement practices to empower and increase the skills of their employees [56].
It has been found that Agile methods require each team to contain at least 25 percent of technically competent people when implementing any project [108]. Previous experience in developing similar software is also of value [68]. Team members' competencies affect the development pace and the delivery of software according to customers' requirements. Thus, the team's technical skills is a crucial factor to consider in the selection of an Agile method as team members may not be familiar with all Agile methods [6], [64], [66], [68], [70], [97], [111].
Developers' skills and experience highly affect the adoption of Agile methods [67], [83]. Thus, inexperienced developers may end up adopting inappropriate Agile methods [17], [31], [67]. Additionally, pair programming has been a common XP practice but has been found to be inefficient [61], [112], [113], especially when the programmers have incompatible and inappropriate sets of experience and skills for the tasks at hand [114]. In fact, it has been argued that it might be better if a problem were solved by only one programmer [115]. Thus, technical skills and experience are crucial factors in Agile method selection.

3) Development Teams' Domain Knowledge:
Eighteen studies show that team skill and domain knowledge are common selection criteria in Agile team formation [72]. For instance, excellent domain knowledge has been found to contribute to the success of XP use [73]. Team's domain knowledge is considered as an important factor in the selection of Agile methods [72], [74]. Also, inappropriate selection of the practices in an Agile method leads to poor implementation [72], [116].

B. Customer Involvement
The Agile Manifesto [32] highly values customer involvement. In particular, face-to-face communication is vital. However, involving valuable customers can be a challenging process [117]. The importance and the degree of customer involvement have been determined by Agile researchers based on investigating how developers who started to follow Agile methods involved their customers [117]- [119]. However, there are contradictory findings regarding customer involvement. For instance, it was found that full customer involvement is not necessary; rather, a 21 percent level of involvement is sufficient [118]. Meanwhile, other researchers state that customers do not need to be onsite at all and they can be replaced by a product management team [117], [119]. However, others indicate that many software developers constantly value on-site customers and prefer them to be available on-site [10], [120]- [123]. However, another case study indicates that sometimes onsite customers could not be consistently available and were not actively involved [120]. However, it has been pointed out that the customer is the only person who knows the business domain well and can decide on the resources, scope, and schedule, and clarify vague complex projects [124], [125].
An empirical study indicates that customer involvement is one of the most controversial topics in relation to Agile methods, and found that the customer must be involved, collaborative, knowledgeable and committed but not necessarily present all the time [118]. Therefore, to ensure timely delivery of project iterations [9], [10], [125], when project managers contemplate the adoption of practices to find a suitable Agile method they take the degree of customer involvement into consideration [126].
Based on the results of the SLR, the collaboration, knowledge, and the commitment of the customer were identified as the main sub-factors of customer involvement that need to be considered when selecting an appropriate Agile method. These sub-factors are discussed in the following subsections.

1) Customer Collaboration:
Three of the 12 principles in the Agile Manifesto mentioned above are strongly related to the collaboration factor [32]. One of the principles is prioritizing customer satisfaction through early and continuous delivery of valuable software [32], which requires that the customer demonstrates high motivation, a sense of responsibility towards the project element, active participation, and on-site availability to the software development team [1], [2]. Customer collaboration is, thus important in the selection of an Agile method [7].
On-site customer collaborative practice usually involves interaction with one person as a representative, who is normally an employee within the client organization. However, for large projects that require the involvement of more than one representative, collaboration among several customers may be necessary [77]. In such cases, the practices in Agile methods that highly support customer collaboration for each project should be followed accordingly [75]. For example, in XP, an effective relationship between the customer and developers is necessary for project success [7], [35], [77], [78], [127]. Further, different practices for different levels of customer involvement are required, especially as the adequacy of customers who work on different Agile projects may vary [79]. Moreover, project managers need to be aware that a lack of customer collaboration can lead to a breakdown in the collaborative atmosphere [128].
Close customer collaboration allows end-users to closely align the system to their actual needs and feel a greater sense of ownership [90]. However, correct practices of Agile methods in a different type of involvement (Less or High involvement) would highly impact project implementation [54]. For instance, in a comparison of different methods such as SCRUM, XP, FDD and Crystal, which each have a different approach to customer collaboration, it was demonstrated that the selection of a particular method based on this factor leads to the success of project implementation [54].
2) Customer Commitment: Commitment throughout all the stages of the development process can put customers under stress [81]. Thus, on-site customer commitment is crucial when selecting the appropriate Agile methods [80], [82]. For instance, an uncommitted on-site customer negatively affects the efficiency of the XP method [10].

3) Customer's Domain Knowledge:
In Agile method practices, incapable and unknowledgeable customers will put project implementation at risk [54]. For instance, feedback from an unknowledgeable on-site customer (XP practice) will not assist in providing correct functionality [67]. Hence, customer knowledge of the domain is one of the main software process determinants [54], [83].

C. Organizational Culture (Type of Organization)
When any organizations adopts new Agile methods, if the organization has a flexible organizational culture (which is collaborative) it could easily adopt any Agile method (if we consider this factor in isolation), whereas an organization that is inflexible (rigid or hierarchical) and has a commandand-control culture will face difficulties [6,84]. Thus, the type of organizational culture is one of the major factors to consider when deciding which Agile method to adopt [86,88].
There are four main types of organizational culture, namely hierarchical, random, collaborative and synchronous, which could be used to analyze the match between an Agile method and an organizational culture [87]. This categorization has been applied to determine the relationship between the organizational culture and XP, and it was found that XP practices can be adopted successfully by all four organizational cultures equally effectively [88]. In addition, four different types of organizational cultural dimensions have been identified, namely clan, democratic, hierarchical and disciplined [129]. Agile methods are generally appropriate for the democratic culture [130], while some XP practices fit well with the hierarchical organization [88]. On the other hand, the Schneider Culture Model divides organizational culture into four types: collaboration, cultivation, control and competence [131]. It has been found that collaboration, cultivation and competence cultures are suitable for Agile methods, while the control culture is not [132].
In an organization with a hierarchical or collaborative culture, different features and practices can be found in different Agile methods to suit the given project [89]. Thus, organizational culture is considered an important factor affecting the successful adoption of Agile methods [56], [71], [86], [133]. Ignoring the culture of the organization when selecting an Agile method can lead to problems because changing an organizational culture is very difficult [134]. In fact, a multi-case study of nine projects demonstrates that specific organizational cultures are correlated with the effective use of Agile methods [86]. Therefore, it is necessary to take organizational culture into consideration when selecting an Agile method [75], [90], [134], especially because organizational culture cannot be changed to adapt to the selected Agile method [84], [134]. Organizations are not the same [85], [135]. Thus, certain Agile methods may be successful in one organization but may cause system failure in others [85]. Therefore, organizational culture type is an important consideration in Agile method selection [84], [91].

D. Nature of Project
Software development problems can be complicated and thus can require complex and different solutions that involve the adoption of different techniques and strategies [136]. Additionally, projects come in different sizes and have different levels of criticality, so there is no single Agile method that can solve all organizational problems [40]. Therefore, the nature of the project, in terms of its size and criticality as well as its decomposability, has to be considered when selecting the appropriate Agile method. These sub-factors are described in the following subsections.
Most Agile methods can be used for small projects. However, careful selection of the Agile method is necessary when the size of the team and the project are large [40], [96], [98]. Small-sized teams could easily perform a smoke or unit test to test the functionality of their implemented system and conduct integration testing accordingly. However, for a large and complex project, other types of testing such as hardware-in-the-loop and a comprehensive test environment are required at the integration testing phase to detect most of the defects [98]. The Crystal Orange method is suitable for large projects consisting of around 40 developers [94]. Meanwhile, FDD is suitable for projects with a very large team [96]. However, methods such as Crystal Clear [17] and XP [99] are not fitting for large projects due to implementation difficulty [17], [93], [99]. In addition, the XP method requires no more than 10 developers in the project team [10], [92]. Thus it is clear that project size highly affects the selection of Agile methods [7].
2) Criticality: An understanding of the criticality of the project can help in determining differences in the results of applying different Agile methods [94], [101]. The project's criticality appears to highly influence the cost of the project [5] and can affect human lives [34]. It also therefore affects the selection of an Agile method [41], [83], [94], [96], [97]. For instance, the Crystal Clear method is not suitable when a defect in the implementation of a specific project could cause monetary loss [17]. In this case, the Crystal Orange method could be suitable [96], while FDD could be more appropriate for critical project development [92], [107]. Additionally, the activity of project inspection can be practised in some Agile methods (e.g., DSDM, ISD) and is valuable in critical and complex projects [107].

3) Decomposability:
A decomposable project also requires appropriate Agile method selection [136]. An aeroplane, radiation beam system or other critical systems could be implemented using Agile methods but would necessitate in-depth consideration of the nature of the problem [136]. For instance, if the project cannot be decomposed into different sub-projects, scaling and adopting the most appropriate Agile method practices that suit the project becomes difficult [136]. Also, SCRUM and DSDM are not suitable for non-decomposable projects such as video games [103], [104].

E. Project Constraints
Delivery date (or schedule), cost, quality, scope, and value are crucial considerations in any project implementation [1] and these factors determine the implementation success of any project [5]. When a customer insists on a specific delivery date, as well as specifies the quality, cost, scope, and value of the system, the developers need to follow the most appropriate method to satisfy the customer [5] and this could result in a change to their initially selected method. With flexible constraints, the team could adopt any familiar method that they prefer. However, with rigid constraints, the team must find the most appropriate method to suit those constraints [136]. Hence, project constraints should be considered when selecting the most appropriate Agile method. The project constraint subfactors cost, time, scope, quality are described in the following subsections.

1) Cost:
Cost is one of the key factors under project constraints [138]. When prioritizing certain requirements, the implementation cost should be considered [105], [139]. Thus, checking the cost-effectiveness and acceptableness of the adopted practices (in Agile methods) is very important [25]. For instance, FDD and ASD do not support keeping the process cost-effective, whereas the Crystal group of methods is more cost-effective compared to other Agile methods [75]. On the other hand, the XP and Kanban methods focus on cost saving [92].

2) Time:
Time is also a crucial project constraint. When prioritizing the requirement, the implementation time should be considered [105]. Some Agile methods, such as the XP method, focus on implementing the projects in a fast manner [9] while other Agile methods, such as Crystal Orange [94], are not intended for this purpose [140]. Therefore, checking the suitability of the adopted Agile method for an implementation that has a short timescale is very important, especially when the implementation schedule is specified [64], [75] because it critically influences the project cost [5]. Additionally, the time of system delivery to market must also be considered when selecting Agile methods [54]. In relation to this, the SCRUM and Crystal group methods supersede other Agile methods in terms of project delivery speed [75].

3) Scope:
The scope of a project is one of the key software process determinants [64], [83]. The scope is sometimes changed especially when the nature of business requires multiple and frequent changes. However, in SCRUM, no new functions can be added once the sprint towards project delivery is underway [109]. If changes to the scope are required, Kanban works better because it focuses on minimizing and limiting the work in process [65].

4) Quality
: quality of adopting a particular practice must be considered especially when the implementation of highquality projects is sought [25]. Therefore, practitioners should be encouraged and guided when deciding on the best practices to adopt because this could improve the quality of the processes used [83], [93].
In an investigation of the quality of implemented projects that compared the pre and post process adoption data to determine the severity of errors and defects of passed and failed test cases, it was concluded that SCM obviously improved software quality [141]. The sprint review meeting is the main practice for improving quality in the SCRUM method [96]. However, pair programming, refactoring and simple design, which are XP practices, also focus on delivering high-quality products [7].
Principle four and principle five of ISO 9001 on quality management identify the best processes (methods) that can effectively and efficiently accelerate activities. Additionally, principle five also aims at aligning complementary processes (methods) to improve efficiency [142]. Thus, selecting the appropriate Agile methods would increase the quality of any project implementation.
To conclude the result, the conceptual framework in Fig.  2 below illustrates the factors discussed above that have been found to affect the selection of an Agile method. The methods whose efficacy is affected by these factors are XP, SCRUM, TDD, FDD, LD, ASD, AM, Crystal Family, ISD, DAD, DSDM, DevOps, and Kanban (centre box in Fig. 2). Each method comprises different practices and can be used for different projects in different situations. For instance, when the project size is large (more than 10 developers), then the XP method or Crystal Clear would not be an appropriate choice, whereas other methods such as DAD and Crystal Red would be more appropriate. By considering the degree to which each of the identified factors is important to the project, project managers should be able to select the most appropriate Agile method for their needs.
As discussed in Section III above, the five factors that affect any software development project are: Nature of Project (size, criticality and decomposability), Development Team Skills (communication, domain knowledge and competency), Project Constraints (Cost, time, scope and quality), Customer Involvement (collaboration, commitment and domain knowledge) and Organizational Culture (hierarchical, collaborative, cultivation and competence).

IV. CONCLUSION
It is difficult for project managers and other decision makers to select the most suitable Agile method for a specific project. A range of selection factors needs to be considered when selecting an Agile method. To aid project managers in this important decision, a systematic literature review was undertaken to identify the crucial selection factors for the most well-known Agile methods. The review identified the nature of the project, development team skills, project constraints, organizational culture and customer involvement as the key factors that can assist project managers in selecting the best Agile method for their purposes, and thereby help them to decrease project costs and the likelihood of project failure. Further work will be undertaken by the researchers to validate the identified selection factors empirically, investigate how they can be used in selecting Agile methods and finally how the selected method can be adapted.