Article Preview
Top1. Introduction
While software is essential in all areas of the modern world, software development itself has yet to become a perfect process. Despite efforts to employ software engineering methodologies, software development has not been consistently successful, as evidenced by the high rates of delayed, abandoned, or rejected software projects. Several investigations indicate that the success factors of a project can be linked to the cost, delivery time, scope, and quality (Agarwal & Rathod, 2006; Chow & Cao, 2008; de Wit, 1988). Therefore, lack of quality directly contributes to the failure of a project.
Agile methodologies were disseminated in order to improve software quality and respond more easily to changes. Unfortunately, the results verify that this goal has not yet been achieved and that the lack of quality in software continues to be worrisome. Quality is undoubtedly the most important element of a software project (Xu, 2009). Agile software processes, such as eXtreme Programming (XP) and Scrum, rely on best practices that are expected to improve software development quality. It can be said that best practices aim to introduce software quality assurance (SQA) into a project (Sagheer, Zafar, & Sirshar, 2015).
There are various studies that have contributed to identifying the agile practices and quality characteristics that influence agile development (Bermejo et al., 2014; Gorla & Lin, 2010; Opelt & Beeson, 2008; Subramanyam & Prasad, 2013; Versionone, 2017; Xu, 2009). In addition, research has been carried out to analyze the relationship between agile practices and quality (Bougroun, Zeaaraoui, & Bouchentouf, 2014; Curcio, Malucelli, Reinehr, & Paludo, 2016; Gorla & Lin, 2010; Santos, 2011). In such research, the concept of quality has been analyzed as a whole. However, individual quality characteristics and how agile practices affect each of them have not been considered. That information is vital for project managers to be able to prioritize the practices that contribute to software quality.
In this paper, a conceptual model is introduced to identify the practices that influence the quality characteristics of the software development process by applying agile methodologies. The proposed model consists of four categories of agile practices, eight quality characteristics based on the ISO/IEC 25010 standard (ISO/IEC, 2005), and 13 relationships between agile practices and quality characteristics. The four categories of agile practices that were included are teamwork, project management, engineering, and test. The model was validated through surveys administered to 146 people who implement agile methodologies in the software development process.
The remainder of this paper is organized into 4 sections. Section 2 includes a theoretical framework of agile methodologies, agile practices, and software quality, and it climaxes with the motivation for this work. Section 3 details the proposed model, as well as the strategy employed for the collection of information. Section 4 presents the results of the study. In Section 5, we realize a discussion of the results, and finally, the conclusions of the work are presented.