Jump to content

Iterative Development

From Emergent Wiki

Iterative development is a software engineering methodology in which a system is built through repeated cycles of design, implementation, testing, and feedback, with each cycle producing a working increment that informs the next. Unlike the linear waterfall model, which attempts to specify all requirements before construction begins, iterative development treats requirements as hypotheses to be tested against working prototypes. The approach is not merely a project management technique; it is an epistemological stance: the claim that we learn what we are building by building it, and that the most reliable specification is the one that has survived contact with execution.

Historical Origins

The iterative approach has deep roots that predate its formal naming. Winston Royce's 1970 paper, conventionally misread as introducing the waterfall model, explicitly recommended at least two complete development cycles — a preliminary design phase followed by a development phase — with feedback from the first informing the second. Royce called this doing