How Do Agile Rapid Iterations Improve Software Quality?

[article]

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

 

IndustryAverage

Current Performance

Delta

ProjectCost

$3.5million

$2.2million

-$1.3million

Schedule

12.6months

7.8months

-4.8months

Defects

During QA

242

121

-50%

Staffing

35

35

N/A

*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

 

IndustryAverage

Current  Performance

Delta

ProjectCost

$5.5million

$5.2million

-$.3million

Schedule

15months

6.3months

-8.7months

Defects

During  QA

713

635

-11%

Staffing

40

92

+52

*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

About the author

TechWell Contributor's picture TechWell Contributor

The opinions and positions expressed within these guest posts are those of the author alone and do not represent those of the TechWell Community Sites. Guest authors represent that they have the right to distribute this content and that such content is not violating the legal rights of others. If you would like to contribute content to a TechWell Community Site, email editors@techwell.com.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!