Disciplined Agile

Cost of Change on Software Teams

Our aim is to reduce the feedback cycle between the team and our stakeholders to identify potential changes as soon as we can, thereby reducing the average cost to make those changes. In the 1970s, Dr. Barry Boehm, a computer science researcher, discovered that the average cost of fixing defects rises exponentially the longer it takes us to find the defect. Dr. Boehm continued researching this into the early 2010s and found, not surprisingly, that it holds true for agile as well as traditional teams.

Figure 1 depicts common deployment strategies mapped to Boehm’s average cost of change curve. As you can see, the more often we release, the lower the average cost to make a change and thereby the greater the likelihood that we’ll be able to evolve our solution to meet the changing needs of our stakeholders.  

Cost of Change

Figure 1. The average cost to make changes (click to enlarge).

The implication is that we want to adopt testing and quality techniques that have a short feedback cycle. In Figure 2 we map various techniques to the cost-of-change curve. Test automation is critical for this.

Cost of Defects

Figure 2. Comparing the average cost to fix potential defects based on when and how they are found (click to enlarge).

Lean software development also provides significant insight into the importance of increasing the cadence of releases. A fundamental principle of lean is to reduce work in process (WIP), and a key way to do that is to have smaller production releases and deploy more often. Reducing WIP increases quality, which in turn leads to reduced cost, both of which enable you to release faster. It is a virtuous improvement cycle. Reduced WIP also leads to a reduced need for managing the work and for any replanning due to changed stakeholders needs, resulting in less overhead and cost.

February 2022