You are on page 1of 9

Implement Software Quality Standards

along with Agile Methodology


Hafiz Muhammad Awais Ijaz
L217443@lhr.nu.edu.pk
MS(SPM)
Department of computer science, National university of computer and
Emerging Sciences Lahore, Pakistan
1. Abstract
Today’s world is a world of technology. We are surrounded by machines and gadgets.
These machines and gadgets run by software. There are a lot of critical software’s that
required absolute accuracy.so software quality is a major problem for software industry.
Software quality problem cause huge economic loss to the companies. My research is
focused on quality of software that are developed by small and medium software
companies which are using agile methodologies. In my study first I identify major
challenges of software quality through literature review. After finding out challenges,
outline basic standards and methods to ensure the quality of the software at the
different stages of software life cycle. At the last stage I will map these quality standards
with agile software development process. The study suggests how can we deal with
quality problems of a software by defining mapping between quality standards and agile
methodology development activities to deliver a quality product to the customers.

2. Introduction
Software is a part of our daily routine life. Software Quality problems can lead us to
serious life and financial problems. For example, in banking app and software’s a minor
defect can lead us to loss of millions of rupees or in health care sector a small software
glitch can cause the death of the patient. Software quality can be ensured by software
testing and it is an expensive activity to perform for software companies. Software
companies spend a lot of money and resources to ensure the quality of their product.
Companies face a lot of challenges (I.e., procedural challenges, development challenges
and managerial challenges). Defects start generating from the very start of the project
and keep occurring till the maintenance of the software. Companies mostly neglect
testing activities at the initial stages of project like requirement engineering and
designing process of the software. They start testing the product after the development.
Due to this cost of the bug detection and fixing goes very high. This cost could be low by
enforcing software testing techniques in the early stage of project so defects can be
detected at requirement gathering process or in designing activity as at this stage cost
of resolving a bug is very low. Documentation of requirements is also a major challenge
as it leads developers to deviate from required specification that cause some major
quality problem. Another issue is shortage of resources and time that puts developer
under pressure and they skip basic unit testing to complete task on time. Another
reason of software quality challenges is lack of interest by management in testing
activity as they are in hustle of meeting the deadlines. All these challenges cause to
suffer software quality.
Software quality standards include the testing techniques, Testing process and tools that
are used to achieve good quality during the different phases of software development
process. Software companies need to include all basic SQA activities that ensure quality
of product. Following are the major activities
 Implement proper QA structure and define roles for QA team.
 Define SQA activities and made them essential part of development process.
 Document each and every thing in standard way.
 Use defined standards for design, coding and testing.
 Introduce review and audit related activities in development life cycle.
 Introduce walkthroughs and inspections activity as well
By following all these standards companies can achieve required quality.
Agile methodologies are widely used in companies as compared to other methodologies as
agile make it very easy to complete a project with minimal time and maximum output. Agile
method also helps to ensure the quality of project. Agile methodology is based on incremental
or iterative model. Agile offers different methodologies like scrum and Kanban. Scrum is an
agile methodology for software development. This method implements incremental approach
so team works in iterations on divide and conquer policy. Agile method includes artifacts like
Scrum, Sprint, product backlog, sprint backlog and agile meetings (sprint plan and retrospective
meeting). Agile techniques like System metaphor, customer feedback, Refactoring, pair
programming, stand up meeting, continuous integration, and continuous deployment helps a
company to achieve software qualities like maintainability, verifiability, efficiency, integrity,
reliability, flexibility and many others.

3. Literature review
It is important to focus on quality of a project as quality issue cause a lot of pain in term of
finance, business and in many more other ways. Quality issues arise due to many challenges
that are faced during the development of a product.
From above image we can see there are three major types of challenges.
I. Software Requirement Challenge
Software Client is very conscious of the quality of a project. But the quality issue starts
when a requirement engineer gathers requirements from the client because of
improper methods adopted by requirement engineer and poor description by client.
Due to bad requirements gathering and elaboration it reflects in all stages of
development life cycle and cause a lot of bugs.
II. Stake holder perspective Challenge
Some times developer deviates from actual specifications of a project due his personal
biasness or due to shortage of time developer ignores unit testing that leads to defects.
Higher management some time focus on timeline and ignore testing activity. Client also
wants to keep cost of the project low. For both of these reason software testing got low
priority and leads to quality problem.
III. General Challenges
Economic impact is very high for software quality as cost of resolving a bug is way more
less then cost of resolving it at the last stage. Limitation of resources is also major
problem for software quality. Environmental challenges, project size and complexities
and deadline also play an important role in the compromising of software quality.
From above mentioned challenges one can see software quality is directly related to functional
and nonfunctional requirements, document structures, coding standards and planning of
project. All these factors make SQA an integral part of the software development life cycle.
For better software quality companies need to develop a comprehensive software quality plan
which covers all the quality attributes (Maintainability, flexibility, testability, portability,
reusability, correctness, reliability, efficiency, integrity and usability). To achieve all these
quality attributes companies, needs to follow these guidelines before starting the development
 specify project scope and goals
 deliverable timeline
 identify tools and procedures
 identify required trainings
companies also need to define these standards at different stages of the SDLC.
 Testing tools and techniques
 Document design and methods
 Designing standards
 Coding standards
 Software quality standards
 Software quality matrices
Companies also need to introduce some of new SQA activities like inspections, walkthroughs,
audit and reviews. All of these activities help to identify defects at very early stage of the
development where cost of fixing these defects is very minimal so project can have better
quality along with cost efficiency.
Agile methodology had a lot of techniques that can easily incorporate all these SQA standards
to help development team achieve better quality of a project.
following table map QA qualities with agile techniques.

Above table depicts that by using agile methodology we can cover all major aspects of quality
assurance. By using agile methodology, a company can deliver software with best quality in
required time and cost. in the end a survey is conducted by the authors in which they ask
questions from industry resources and records some amazing results which shows a clear
impact of agile methodology effect on software quality.

From above results we can see how much agile methodologies can help in achieving required
software quality.
A quality model is purposed to ensure quality along with agile methodology. According to this
model first identify quality factors and map them over agile activities and generates a self-
interaction matrix. From this matrix derive a FRM (reachability matrix). In this way different
quality factors identified and structured in multiple levels that enables organization to focus on
key factors to produce a quality product.
To ensure quality of product dynamic quality control model introduced in which team is
focused on defect analysis along with daily scrum to set the direction for teams specifically
testing team for future testing approach. An experiment is carried out in which three teams
works on a same project with three different models one with waterfall, second team use agile
and the third team use newly purposed agile dynamic quality control and then a comparison
draw to see the results.
Below are the results

Comparison Table
Paper j/c Year Focus
CHALLENGES OF j 2018 Author List down basic challenges faced by industry
SOFTWARE QUALITY regarding software quality
ASSURANCE AND
TESTING
Quality Assurance j 2021 Author outlined basic standards that need to be
Factors: Key Aspects followed to achieve better quality
for Software Quality
Control and Testing

Comparison of j 2019 Author draw’s a brief comparison between agile


Agile Method and techniques and quality factors of a software
Scrum Method with
Software Quality
Affecting Factors
How software j 2019 Author Discuss impact of testing on software quality
testing impacts the
quality of software
systems
The Impact of Agile C 2018 Author described detail overview of impact of using
Software agile process over quality of a software product
Development
Process on the
Quality of Software
Product
A Customized J 2019 Author proposed a model to improve quality of product
Quality Model for with agile methodology
Software Quality
Assurance in Agile
Environment
Aspects of software J 2019 Author describes the aspects of quality that are applied
quality applied to by development teams in agile software development
the process of agile process
software
development: a
systematic
literature review
Dynamic Quality C 2015 Author proposed a model to improve quality of product
Control in Agile with agile methodology
Methodology for
Improving the
Quality
A preliminary C 2016 Author present detail overview of testing techniques
analysis of various that are being used in agile development
testing techniques
in Agile
development - a
systematic
literature review
Agile Testing: Past, C 2012 Author presents the quality research work over quality
Present, and enhancements along with agile methodology
Future

4 Research Methodology
Purposed solution
In this study, a new method is purposed with more focus on testing while using agile software
development process that intends to cover all aspects of testing and quality factors to improve
the quality of the product.
This method consists of two phases
Pre-work
Step1: Identify the major quality challenges faced by an organization
Step2: Set some quality standards that suits with the project
Step3: Identify quality attributes according to the requirements of the project
After Kickoff
Step4: Map identified quality attributes over agile activities
Step5: introduce activities like reviews, inspections and validation from start of the project
Step6: Held a daily defect review meeting.

Research Questions
I will try to find out answers for these questions:
 Is newly purposed extended Agile methodology helps to achieve better quality?
 How much newly purposed extended agile methodology helps to achieve correctness?
 How much newly purposed extended agile methodology helps to achieve reliability?
 How much newly purposed extended agile methodology helps to achieve useability?
 How much newly purposed extended agile methodology helps to achieve efficiency?
Data Collection
To collect data I will conduct an experiment where two teams will work on same project
with two different models, one with legacy agile and the other with newly purposed
model after 2 sprints.

5 Conclusion
Software organizations faces difficulty in delivering the quality product. While doing literature
review, first I try to identify software quality problems. To solve this problem, studied some
standards and then try to learn how agile methodology can helps to implement these standards
in a software organization. For this there are a lot of methodologies purposed like dynamic
quality control and quality model with agile.
By studying these papers, I found major research gaps as in these papers they are focused on
some specific issue and try to resolve them. in my opinion to improve quality of a product we
need to revamp the whole process of agile software development by including some quality
control and testing related activities and process. For this I purposed quality extended agile
model that will helps organizations to improve the quality of software projects.
In future I will implement this model with the help of a software development team and
compares the different quality factors with a team that is implementing same project with
legacy agile methodology.

You might also like