The Impact of Agile Software Development Process On The Quality of Software Product
The Impact of Agile Software Development Process On The Quality of Software Product
Abstract: Developing a quality software product is an essential identified by the developers as the necessary needs to be
need for the software industry. Focusing on product’s quality included while developing the product.
allows software users to adapt the product more easily and
efficiently. Quality plays a vital role for the software users. It is a Definition of quality has been perceived differently by
confirmation of all the requirements according to customer different persons, but the one that has been given by customer
satisfaction. So, it’s important to define a proper software is the definition that counts the most. Quality corresponds to
development process that leads to a quality software product.
standards, cost of the product, conformance to requirements
Agile being one of the quickest methodologies for software
development, allows the quality product to be delivered to the and value for performance. Juran [1] defines quality as meeting
customer side. The objective of this paper is to discuss the impact the customer needs by providing satisfaction on valid
of Agile Software Development Process (ASDP) on quality of requirements. Also he defines quality as freedom from defects.
software product by defining the mapping between agile software Weinberg [2] defines quality as “the value to some people”.
development process and various quality attributes. The paper This can be stated in association with cost for development,
presents an overall importance of software development process efforts done by the developers to develop the product and
for a quality product. customer needs.
Keywords: Agile Software Development Process, Software Overall quality is much more complicated term than it appears.
Quality, Software Requirement Analysis, Software Design, There are varieties of perspectives for consideration for
Software Implementation, Software Testing, Software example, customer’s perspective, developer’s perspective,
Maintainability tester’s perspective, specification based perspective,
manufacturing based perspective, and quality assurance based
I. INTRODUCTION perspective and many more. Figure 1 describes different
software quality perspectives. In each and every domain
From the past few years, many products fail to ever make it to
quality is one of the most important factor for a product to
the market, and for those that do, success is not guaranteed.
survive in the market. Many more definitions are given by
The reason behind their failure is the software engineering
different researchers from the perspective of manufacturing the
process which is used to develop these products. Initially, the
product and engineering the product respectively. Definition of
process used focuses on timely delivery of the product
quality has a contextual bias towards these two industries.
software engineering processes focus more on requirements
specification, refactorization, delivery time, cost for The definition of quality is possible for all the areas, however
development and minimization of efforts and many more when applying to IT software products the context is slightly
factors on which software development depends upon. Overall, different. The Pressman [3] states software quality as a
the focus is more on to improve software development “conformance to explicitly stated functional requirements,
practices by improving reusability, understandability of performance requirements standards and characteristics that
requirements, software delivery time and cost effectiveness are implicitly expected by all the professionally developed
and many other characteristics that leads to quality. software’s”. Meyer [4] defines quality according to different
quality factors given by McCall [6] on the basis of 3 major
Quality being the most important aspect either in discrete
representations: product revision, product transition and
production process or continuous production process, needs to
product operations. Another definition of quality from the
be focused more to deliver a product that is acceptable by
perspective of management given by Sommerville [5] stating
customers. According to International Standard Organization
software with less defects and conforming to required
ISO 9000 quality is defined as the totality of characteristics of
standards of reliability, portability and so on is quality
a product as a whole to satisfy the stated and implied needs in
software.
accordance with its capability. Here the stated needs means the
requirements that are given by the customer at the time of an In general, software quality measures how well the software is
agreement and the implied needs are the needs that are designed, how well it is working without faults and
conforming to that design. For the development of a software
813
development process is its non responsiveness towards impact software product quality [16] [17]. An agile software
requirement changes and it also takes longer time to deploy development process differentiates with traditional
working software product to the customers. development process in a way of engineering software. Both
the development process consists of five phases but executed
As agile approach is an iterative and incremental method, in much different manner. The five phases are described as
every defined phase’s gets executed within a serious of small follows:
iterative cycles of the software development process known as
sprints. While, in traditional process also known as light Phase 1. Requirement Analysis: it’s a requirement elicitation
weight development process, every phase gets executed phase in which needs and requirements of the customers gets
sequentially without defining any kind of iteration. The collected specifying functional and non-functional
incremental cycles provides a deliverable product that can be requirements [19].
deployed to the customer [20]. Besides that, other stages
included in agile are concept, inception, release, production Phase 2. Software Design: in this phase the complete
and retirement which are not included in traditional architecture of the software to be developed gets created that
approaches. Agile development is more kind of quick and specify how the software product is going to function and
sustainable development in comparison with traditional appear to the customer.
development that allows customer interaction throughout the
process with the adaptability of changes required. It is a Phase 3. Software Implementation: this phase creates an
customer centered methodology as shown in figure 3. executable version of the software product. The development
Moreover, more importance is given to customer satisfaction, of the software is based upon the programming language used
by interacting with them more frequently or almost in every for coding purpose.
phase of a sprint than in traditional one.
Phase 4. Software Testing: after the executable product gets
developed, testing phase comes into existence. Software
testing is a process to find out errors, bugs, faults in the
developed software and fix them before its get delivered to the
customer. It basically verifies and validates all the
functionalities of the software [18].
Within traditional and agile methodologies various models are All the above defined five phases affect the software quality
present for the development purpose. In traditional and can be analysed to be mapped with various agile process
methodology, different models named as waterfall model, quality attributes as shown in the below table 1:
prototype model, spiral model, iterative enhancement model,
evolutionary model and many more [12] [13]. In agile TABLE 1: Mapping Between ASDP and Software Quality
methodology, different models are kanban, scrum, extreme Attributes
programming, feature driven development and many more. A
model that is most suitable can be selected based on the Characteristics Agile Attributes Quality
requirements analysis of the software to be developed and Attributes
availability of the resources. Scrum is one of the most popular Requirement Total no. of user Functionality,
models used in the industry to carry out agile software Gathering stories, Reliability,
development for developing software systems [9]. The other Functional Maintainability,
name of Scrum is flexible as it focuses more on customer Completeness, Scalability
changing requirements. Other agile models including (FDD, Functional
XP, etc) are discussed by Pathak & Saha [7] in their review. Correctness,
Consistency
IV. MAPPING BETWEEN ASDP AND QUALITY
ATTRIBUTES Software Design Release Date, Functionality,
Total no. of Efficiency,
The software development life cycle consist of mainly five Sprints, User Reusability,
development phases: software requirement, software design, story planned, Reliability,
software implementation and software testing, and software Story points Maintainability,
maintenance which have been used in various development planned Portability,
models. Every phase individually plays an important role and Flexibility.
814
Characteristics Agile Attributes Quality [9] G. S. Matharu, A. Mishra, H. Singh and P .Upadhyay,
“Empirical Study of Agile Software Development
Attributes
Methodologies: A Comparative Analysis”, ACM SIGSOFT
Software Sprint Stretch Reliability, Software Engineering Notes, Vol. 40, pp. 1-6, 2015.
Implementation Factor, Maintainability [10] P. Jain, L. Ahuja and A. Sharma, “Current State of the Research
Productivity in Agile Quality Development”, in Proceedings of the
International Conference on Computing for Sustainable Global
Software Testing User Story Functionality, Development, pp. 1877-1879, 2016.
Accepted, Defect Reliability, [11] C. Paulk, C. Weber, B. Curtis, and M. B. Chrissis, “The
Density, Review Maintainability, Capability Maturity Model: Guidelines for Improving the
effectiveness, Portability, Software Process”, Addison Wesley, 1994.
Pre-delivery Performance [12] B. Singh and S. P. Kannojia, “A model for software product
defects quality prediction”, Journal of Software Engineering and
Software Post-delivery Efficiency, Applications, Vol. 5, pp. 395-401, 2012.
Maintenance defects, Defect Reliability, [13] B. Singh and S. Gautam, “Hybrid Spiral Model to Improve
removal Maintainability Software Quality Using Knowledge Management”, International
Journal of Performability Engineering, Vol. 12, Issue 4, pp. 341-
efficiency
352, 2016.
[14] P. Isaias and T. Issa, “High level models and methodologies for
V. CONCLUSION
information systems”, Springer, 2015.
Software quality plays an important role while doing a [15] P. Sujatha, G. V. Sankar, A. S. Rao and T. Satyanarayana, “The
Role of Software Verification and Validation in Software
software project. Various quality factors have to be satisfied
Development Process”, IETE Technical Review, Vol. 18, Issue 1,
onto some level to have a quality software product. The pp. 23-26, 2001.
development of software consist of five phases that must catch
[16] N. S. Godbole, “Software quality assurance: Principles and
up with the quality standards while development. Agile being a practice”, Alpha Science Int’l Ltd., 2004.
flexible approach for software development, allows quality
[17] B. Singh, “Quality Control and Reliability Analysis”, Khanna
product to be delivered to the customer side. Main aim of the Publishers, 2011.
paper is to analyse the impact of the Agile Software [18] F. L. Butt, S. N. Bhatti, S. Sarwar, A. M. Jadi and A. Saboor,
Development Process (ASDP) on the software quality. “Optimized Order of Software Testing Techniques in Agile
Through various studies it has been shown that every quality Process – A Systematic Approach”, International Journal of
attribute is important in the perspective to have a quality Advanced Computer Science and Applications (IJACSA), Vol. 8,
product. And to incorporate each quality factor in the Issue 1, 2017.
development of software, the quality attributes must be [19] S. N. Bhatti and A. Tabassum, “The Impact of Analytical
mapped with the agile software development process attributes Assessment of Requirements Prioritization Models: An
and vice versa. Table 1 shows the mapping of agile attributes Empirical Study”, International Journal of Advanced Computer
with the quality attributes included in each and every phase Science and Applications(IJACSA), Vol. 8, Issue 2, 2017.
while software gets developed. The paper presents an overall [20] T. Dingsøyr, C. Lassenius, “ Emerging themes in agile software
importance of software development process for a quality development: Introduction to the special section on continuous
product. value delivery” Introduction and Software Technology, Elsevier,
2016.
REFERENCES [21] L. L. Lacerda and Felipe Furtado, “Factors that help in the
implantation of agile methods: A systematic mapping of the
[1] J.M. Juran and F.M. Gryna, “Juran's Quality Control literature”, In Proceedings of 13th Iberian Conference on
Handbook”, New York, McGraw-Hill, 2010. Information Systems and Technologies (CISTI), pp. 1-6, 2018.
[2] G.M. Weinberg, “Quality Software Management Vol. 1: Systems [22] H. J. Hsu and Y. Lin, “How Agile Impacts a Software
Thinking”, New York, Dorset House Publishing, 1992. Corporation: An Empirical Study”, In Proceedings of 42nd
Annual Computer Software and Applications Conference
[3] R.S. Pressman, “Software Engineering a Practitioner’s
(COMPSAC), pp. 20-25, 2018.
Approach”, New York, McGraw-Hill, 2011.
[23] Y. Lin and Titansoft, “From chaos to control, from control to
[4] B. Meyer, “Object-Oriented Software Construction”, New
freedom - 5 lessons learned on our agile journey,
Jersey, Prentice Hall PTR, 2000.
https://www.slideshare.net/yveslin888/fromchaos-to-control-
[5] I. Sommerville, “Software Engineering”, California, Addison- from-control-to-freedom-5-lessonslearned-on-our-agile-journey,
Wesley, 2015. 2016.
[6] J. A. McCall, P. K. Richards and G. F. Walters, “Factors in [24] Titansoft, “Our history and timelime, ” http://www.titansoft.com/
Software Quality”, National Technical Information Service, Vol. en/About-Us/Our-History-Timeline, 2016.
1, 2 and 3, 1977.
[7] K. Pathak, A. Saha, “Review of Agile Software Development
Methodologies”, IJARCSSE, Vol. 3, pp. 270-276, 2013.
[8] S. Bhasin, “Quality Assurance in Agile –A study towards
achieving excellence”, pp. 64-67, IEEE, 2012.
815