12.2. Provoking Early Change
It is natural and healthy to discover and change some requirements during the design and implementation work, especially in the early iterations. Iterative and evolutionary methods "embrace change"although we try to provoke that inevitable change in early iterations, so that we have a more stable goal (and estimate and schedule) for the later iterations. Early programming, tests, and demos help provoke the inevitable changes early on. Take note! This simple idea lies at the heart of why iterative development works.The discovery of changing specifications will both clarify the purpose of the design work of this iteration and refine the requirements understanding for future iterations. Over the course of these early elaboration iterations, the requirements discovery should stabilize, so that by the end of elaboration, perhaps 80% of the requirements are reliably defineddefined and refined as a result of feedback, early programming and testing, rather than speculation, as occurs in a waterfall method.