In this paper an innovative technique is introduced for evaluating agile methodologies in order to determine which factors of software quality they improve. The technique uses a set of adapted software quality factors as defined by Bertrand Meyer and McCall.
-----
found in a number of agile methodologies literature is
the general notion that agile development is oriented
towards the development of higher quality software compared
to plan-driven development, see [12] for a detailed
comparison. However, a closer look into such claims reveals
that there is lack of a comprehensive technique to evaluate
how agile processes meet software quality requirements.
There are very few articles on agile methodologies that
specifically tackle issues of software quality in such a way as
to reveal the specific characteristics of quality that agile
processes have improved. What literature reveals however is
that agile developers implement quality issues differently from
the way traditional quality professionals do it. It is also
interesting to realise that agile methodologies were not formed
out of a deliberate desire to add another group of
methodologies that would solve a, b, c, d… problems in the
software development process, but rather they were formed
out of a discovery of the commonality of practices that
developers found themselves following as required by their
processes in their different organizations. The task of
classifying quality attributes may be quite complex and
subjective hence it is not the aim of this paper to develop an
exhaustive analysis of the numerous taxonomies of quality.
However, due to the conceptual differences between agile
methodologies and plan-driven methodologies the existing
techniques that have mainly been used for evaluating plandriven
methodologies may not be suitable for agile processes.
There is therefore a need to develop techniques that are inline
with the highly revolutionary agile development concepts.
Ambler’s article [1] starts by stating an assumption that
software quality is met through test-driven development in
agile methods. Since there is a strong emphasis on developing
test cases before writing code in agile development it appears
logical to agree with Ambler that “quality is an inherent aspect
of agile development” [1]. However, the definition of software
quality includes a few other concepts, though correctness
comes out as the most important parameter in which testing is
a technique for ensuring correctness. A radical approach
would be to redefine quality from the agile perspective since
agility has redefined a number of concepts in software
engineering.
This paper introduces a technique for evaluating agile
methodologies with regards to the way they meet software
quality characteristics as defined in Meyer [2]. Meyer derives
these quality characteristics from McCall’s quality taxonomy
model. The technique proposed here basically picks an agile
method and breaks it down into process activities. Then for
each process activity of the agile method, an evaluation of
what software quality factors are met is done. This action is
repeated until all the quality factors are covered. The rest of
the paper starts by presenting a review of previous work on
agility and quality followed a description of the proposed
evaluation technique. A walk through two of the agile
methodologies in common use today is done and a discussion
of the results follows. The paper ends by providing
conclusions and possible future work.