A Multiple-Criteria Approach to Support Complex Decisions in Extreme Programming

Date
2017-12
Authors
Aljuhani, Abdulmajeed Abdulrhman
Journal Title
Journal ISSN
Volume Title
Publisher
Faculty of Graduate Studies and Research, University of Regina
Abstract

The software industry has been growing rapidly in recent decades, demonstrating an increasing need for software. There are several methods that can be used to design appropriate software to ensure high satisfaction levels. One of these is the agile methodology, which allows development teams to design projects in different iterations. This incremental design allows customers to provide feedback during the design stage, thereby increasing the possibility of delivering satisfactory projects. Most customers do not know what they need at the beginning, which makes it difficult to define the system requirements. In the case of traditional software methods, it is costly to change the requirements after starting the development process. Therefore, software engineers try to find a method that allows them to start with undefined requirements, so they can more easily accept requirement changes during the development process. The agile method was introduced as an incremental method to develop software through a series of iterations. Extreme Programming (XP), the most successful agile method, allows developers to deliver valuable software to the customer. Extreme programming consists of twelve practices that structure the XP development cycle. Following these practices, all team members are able to work together. Extreme programming includes five major values, such as simplicity, feedback, etc., all of which help the development team to achieve a high level of customer satisfaction. During the development cycle, team members encounter issues that require dei cisions to be made, such as evaluating factors that affect the extreme programming life cycle and productivity. The Analytic Network Process (ANP) can be used to analyze complicated decisions and assist in achieving XP values. This research explains the application of the analytic network process to XP in order to solve conflict factors by addressing the decision making process. The ANP provides a structure to address solutions for given problems, which leads to a decision being made concerning that problem. In the ANP, dependencies among various criteria are considered, which makes it different from the Analytic Hierarchy Process (AHP). In pairwise comparisons, entered values reflect the relative effect among elements with respect to a control criterion. These entered values are based on the importance of each criterion. In this research, there are nine areas related to XP practices that could potentially be improved by applying the ANP. The quality of the selected XP practices, which include planning game, simple design, refactoring, pair programming, and testdriven development, depend on decisions made by the XP team. These are ideal for ANP. The ANP can be applied in the planning game practice in several areas, such as ranking user stories estimation techniques and ranking user stories prioritization techniques. In pair programming, the ANP is used to select the appropriate matching pairs and for deciding the rules of matching pairs. In simple design, the ANP is used to select the best design tool. In refactoring, the ANP is used to rank the refactoring techniques based on the internal and external attributes. In testing, the ANP is applied to decide the level of automated testing and to rank software release indicators.

Description
A Thesis Submitted to the Faculty of Graduate Studies and Research In Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy in Software Systems Engineering, University of Regina. xvi, 235 p.
Keywords
Citation