Breaking Iron Triangle Thinking: A New Approach to Agile vs. Continuous Testing
An old adage in software development is: “Speed, quality, cost. Pick two.” In other words: if you want a higher quality product, you have to sacrifice speed, cost, or both. In this “iron triangle” decision-making philosophy, true improvement is not possible. But the fallacy of Iron Triangle thinking is believing that the parameters of these choices are fixed, limiting our potential for innovation. Engineering teams can break this thinking by structuring their improvement cycle not around trade-offs, but on continuous improvement. Typically, in the agile development approach, quality is optimized at the price of cost and speed. In CI/CD, continuous development is supported by continuous testing: every deployment is tested individually before it is staged or shipped to production. However, fewer tests means fewer opportunities to catch bugs, meaning you sacrifice quality for speed. It’s time to fuse the best of Agile and Continuous. In this structure, software development teams preserve the benefits of continuous development by contributing small chunks of code and run tests continuously for rapid feedback. Teams can run a larger test suite in a staging environment against builds to catch bugs that the continuous test suite missed, meaning bugs are caught sooner and fixed faster.