A common problem with design iteration (evolution) is the absence of a defined endpoint – i.e. each iteration refines the design, but it also reveals additional opportunities for refinement, resulting in a design process that never ends. To avoid this, establish clear criteria defining the degree to which design requirements must be satisfied for the design to be considered complete.
-100 Principles of Design.