AHP-Based Methodology for a Complex Decision Support in Extreme Programming
Extreme Programming (XP) is one of the most successful methods in software development. It offers a set of practices designed to work together in order to provide value to the customer. The XP process emphasizes simplicity, feedback, and encouragement among team members. During the XP lifecycle, developers and customers regularly encounter situations in which they need to make decisions or evaluate factors that will affect the development process and team productivity. The Analytic Hierarchy Process (AHP) can analyze complex decisions and help accomplish XP values and fulfill team needs. This research describes a framework for the application of AHP to XP to resolve conflict and evaluate influential factors by structuring the decision making process. AHP seems promising for use in XP for the effective resolution of conflict and the achievement of effective decisions during the software development process. In this research, more than 10 areas related to XP practices that could benefit from the AHP technique are elaborated upon. Planning game, simple design, metaphor, pair programming, refactoring, and testing are some XP practices whose quality depends on decisions, and thus are ideally suited for AHP. First, in the planning game, two areas were investigated: prioritizing the user stories and ranking the prioritization techniques. Second, AHP explored two areas in the XP simple design practice: selecting the best simple design tool for the XP team and prioritizing the CRC cards as a common simple design tool. Third, in the pair programming practice, AHP was used for two purposes: selecting the best matching pairs and deciding if the pairs should have the same characteristics or be different. Fourth, in the practice of refactoring, AHP was used to rank the refactoring techniques based on the internal and external quality attributes. Fifth, the AHP was applied to help make decisions about the level of automated testing and ranking the software release indicators. The AHP is a structure technique based on mathematical models that analyzes various tangible and intangible attributes in order to accomplish a specific goal. It has been applied in numerous fields and many engineering applications. The AHP provides a framework that structures decision problems in order to provide mathematical judgments built on knowledge and experience. AHP has been very useful in software development, where complex decisions occur routinely, and especially useful for unstructured or light processes, like agile processes. The overall results show that in the XP environment, AHP received positive feedback from all participants in terms of the quality of the decisions, team performance and communication, and user satisfaction.