Does Agile Development Fit in the Actual Context of Software Quality? Célio Santana Cristine Gusmão Hélio Bentzem Alexandre Vasconcelos Universidade Federal Rural Universidade Federal de Universidade Federal de Universidade Federal de de Pernambuco, Unidade Pernambuco, Núcleo de Pernambuco, Centro de Pernambuco, Centro de Acadêmica de Garanhuns. Telesaúde (NUTES). Informática (Cin). Recife,, Informática (Cin). Recife, Garanhuns. Brazil. Recife, Brazil. Brazil. Brazil. Celio.santana@gmail.com cristine.gusmao@nutes.ufpe.br hfbpf@cin.ufpe.br amlv@cin.ufpe.br Abstract — Since 1968 the computer science tried to adopt elements of the traditional engineering in order to address the problems of quality and failures in the development of information systems. Many software quality references such as CMMI or six sigma are based in traditional engineering. Agile development reveals that it is hard to meeting the changing requirements right up to the level of product deployment. This paper presents how agile development needs could compromise its relationship with traditional quality software approaches. Keywords – Software Process Improvement; Agile Processes; Software Quality. I. INTRODUCTION In 1996 Barbara Kitchenham e Shari Pfleeger stated that software quality presents five views [1]. • Transcendental View; • User View; • Manufacturing View; • Product View; • Value-Base View. The existence of these views is one indicator of the complexity involving quality in software environment. The authors suggested these five visions based in concepts proposed by David A. Garvin [2] respected practitioners of quality in the industry. In fact this was not the first attempt of the software industry to use the concepts of the manufacturing industry when referring to quality. Long before this paper, in fact since 1968, when software engineering was born in NATO conference [3], software engineers have tried to emulate traditional engineering in order to address quality problems and Information Systems failures with varying degrees of success [4,5]. In 1975 was finished Goodenough [6] published that some the programs verified by the scientific community and formally stated as correct, presented errors in some outputs given inputs! It was established that there was not possible to verify the correctness of a program only through formal demonstration of the theorem. From this point there was the first turn in the concept of software quality since that formal demonstration of theorems was winding down while the quality control enthusiasts had create the culture of quality software product driven by the use of tests. The work presented by Kitchenham & Pfleeger [1] was written in an important time for the software quality that was the mid-1990 when another turn happened. Ate the end of ’80s and beginning of ’90s the emphasis was put on software process improvement (SPI) [7]. In this period of time emerged most of the quality models and approaches such as Quality Improvement Paradigm (QIP) [8], IDEAL SM [9], ISO/IEC 15504 Part 7 [10], Capability Maturity Model (CMM) [11], ISO/IEC 12207 [12], ISO 9001- 3 [13], ISO 9126 [14], Six Sigma for software development [15]. A new approach emerged at the end of 1990, being formalized in 2001 as Agile Methodologies. On a practical perspective, agile methodologies came out from a common discovery among practitioners who had slowly drifted away from the traditional software engineering[16]. This new perspective was soon evaluated in light of current concepts of software quality and of improvement and low control of the changes performed lead software development to more complex and not well-documented systems and to a fragmented software development process [16,17]. Shortly after, the initial concepts of quality have been formalized for agile methodologies. McBreen [18] defines agile quality assurance as the development of software that can respond to change, as the customer requires it to change. This implies that the frequent delivery of tested, working, and customer-approved software at the end of each iteration is an important aspect of agile quality assurance. Huo et al. [19] developed a comparison technique whose aim was to provide a comparative analysis between quality in the waterfall development model (as a representative of the traditional camp) and quality in the agile group of methodologies. The results of the analysis showed that there is indeed quality assurance in agile development, but it is achieved in a different way from the traditional processes. The limitations of Huo et al.’s tool however, are that the analysis: