Stock: Bugs: measured by the number of errors or defects in the code)
Balancing Loop 1: Internal quality
When the number of errors in the code increases, the effort dedicated to software maintenance is increased.
This leads to the identification and correction of underlying issues in the software's architecture and design that might be causing recurring errors.
As these underlying issues are addressed, the internal quality of the software improves and the number of errors in the code decreases.
Balancing Loop 2: External quality
When the number of errors in the code increases, the effort dedicated to quality control is increased.
This leads to the identification and correction of errors.
As errors are corrected, the external quality of the software improves and the number of errors in the code decreases.
In this system, both balancing feedback loops compete to improve software quality, but they focus on different aspects of the process (external quality versus internal quality). As errors and underlying issues in the code are addressed and resolved, the internal quality of the software improves, which in turn reduces the amount of effort required for quality control and maintenance. This is similar to the thermostat example, where the two balancing feedback loops work together to maintain a desired temperature.