How Do Agile Rapid Iterations Improve Software Quality?


process improvements (through introspections), and testing.

Some of the tools in the agile design toolbox include:

    • Code Review —Instantaneous in some agile practices, retroactive in others; always a good idea (inherent in some practices like XP)
    • Refactoring—Set of techniques designed to ensure the code base evolves in a way that promotes simplicity, reusability, readability, and more
    • Modeling—Not used by all agile practitioners but can help communicate design using simple diagrams

It is not necessary for a developer to know every part of a million-line code base if there is a common pattern and framework that every developer uses and new classes, methods, objects, etc. are all created in the same vein. Ensuring that the patterns are continuously followed by everyone is a benefit of code reviews.

Good development and design practices reduces complexity. Again, I refer you to Fowler on the details. In a rapid, iterative cycle, these practices become even more important, since rapid change can lead to increased complexity and reduced quality without good coding and testing practices. But, as I will soon demonstrate, using a rapid iteration development cycle provides an opportunity to increase quality and reduce cost significantly.

Defect-cost Analysis

There is a well-known 2002 study from NIST that claims a $60 billion cost annually for software defects in the US alone. The conclusion of the study is “The path to higher software quality is significantly improved software testing.”

The cost of a software error or defect is different depending on where in the development cycle it appears. A defect discovered by a programmer coding at his desk is far cheaper to correct then a defect that has shipped out the door and is in production. Studies show the relative cost of a defect based on when in the development cycle it is discovered (e.g., it is ten times more expensive to fix a bug in production then during development). It is vital to reduce the overall number of bugs through better testing and to discover any bugs as early as possible in the software development process.

Rapid iteration solves this problem nicely. Using rapid iterations—where testing is an integral part of the iteration itself, a repeated step in each cycle—can lead to discovering defects earlier in the process. Agile testing will then lead to less defects overall as shown in the next two tables.

This table is from How Agile Projects Measure Up and What This Means to You by Michael Mah. The project shows a team using Collocated XP methodology with rapid iterations compared to the industry standard for comparable project sizes.

Follett Software Collocated XP vs. Industry Average



Current Performance











During QA








*Using an average project size of 500,000 lines of new and modified code

The next table is from the same study only using Scrum.

BMC Software Distributed Scrum vs. Industry Average



Current  Performance











During  QA








*Using average project size of 700,000 lines of new and modified code

Both tables show a clear and rather significant reduction in defects, and there is a direct correlation between cost (“efficiency” in the first table) and defects. Agile practices that rely on rapid iteration, such as Scrum (first study) and XP (second study), can lead to measurable cost savings. It’s important that these two studies both include agile design and testing practices as part of the iteration.

But, remember that rapid iteration doesn’t leave much time

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.