One of the WalkerRoyce top 10 SoftwareManagementPrinciples.
"Establish an iterative life-cycle process that confronts risk early. A more dynamic planning framework supported by an iterative process results in better risk management and more predictable performance. Resolving the critical issues first results in a more predictable construction phase with no surprises, as well as minimal exposure to sources of cost and schedule unpredictability."
Care to name an IterativeDevelopment methodology? (Say, ExtremeProgramming? ;-)