Experienced quality assurance professionals know that there are numerous tradeoffs in delivering high-quality software on time and on budget. The simplest way to describe these tradeoffs is via the decades-old Iron Triangle project management graphic that says three interrelated factors — scope, cost, and time — determine the quality of a project, and when a project runs into difficulties, at least one must vary otherwise the quality of the work suffers.
- Agile manages customer expectations when developing software, by involving the customer in the process, letting the customer decide which issue, cost, speed, or result is the most important.
- By pulling in a team of experts, with different areas of strength, Agile can address bugs in a proactive way that keeps everyone moving in the same direction.
- Releasing fresh versions of a product to a limited test population is a key way that Agile helps companies manage software bugs, eliminating problems before they become broad-based.
“When confronted by difficulties like software defects or bugs, traditional software project managers often will give their customer the options of fast, good, or cheap, and tell them to pick any two.”