Iterative development can take many forms, depending on the project's goals: iterative prototyping can help evolve a user interface. Agile development is a way to closely involve a prototypical customer in a process that might repeat daily. Incremental build lets developers produce weekly builds of an evolving product. A spiral model can help the team confront and mitigate risk in an evolving product. Each iteration involves a certain amount of rework to enhance and fix existing capabilities (the good). However, excessive rework could indicate problems in the requirements, the developers' skills and motivation, the development processes or technology used, or all of the above (the bad). Exorbitant levels of rework result in truly untenable situations (the ugly). On the other hand, too little rework could indicate insufficient review and testing or too little anticipation of the product features needed to support the next version (bad that can turn ugly). Understanding and correcting the root causes of problems that result from too much or too little rework can significantly increase productivity, quality, developer morale, and customer satisfaction.
[1]
Y Erturk,et al.
Message from the director
,
2006,
Medical electronics and biological engineering.
[2]
R. Stephenson.
A and V
,
1962,
The British journal of ophthalmology.
[3]
Diane L. Gibson,et al.
Demonstrating the Impact and Benefits of CMMI ® : An Update and Preliminary Results
,
2003
.
[4]
Raymond Dion,et al.
Process improvement and the corporate balance sheet
,
1993,
IEEE Software.
[5]
Victor R. Basili,et al.
Software process evolution at the SEL
,
1994,
IEEE Software.
[6]
W. A. Shewhart,et al.
Statistical method from the viewpoint of quality control
,
1939
.
[7]
Barry Boehm,et al.
Top 10 list [software development]
,
2001
.
[8]
Barry W. Boehm,et al.
Software Defect Reduction Top 10 List
,
2001,
Computer.
[9]
R. F.,et al.
Statistical Method from the Viewpoint of Quality Control
,
1940,
Nature.