However, there are a few common pitfalls that occur
during iterative development that undermine its effectiveness.
First, effective versioning is not always used. Creating multiple versions of an application allows
certain features to be ???frozen??? while others are changed. It also allows different sections of the
application to be in development while others are in test. Too often, one version of the application
is used for every iteration of every feature, resulting in an end product that is not adequately
flexible to handle changing needs (which was the alleged purpose of the iterative development).
Second, the prototypes are not always thrown away. Prototypes are developed to give the
customer an idea of what the final product will look like; they should not be intended as the
foundation of a finished product. Using them as a foundation will not yield the most stable and
flexible system possible. When performing iterative development, treat the prototypes as temporary
legacy systems.
Third, the divisions between development, test, and production environments are clouded.
The methodology for iterative development must very clearly define the conditions that have to
be met before an application version can be moved to the next stage. It may be best to keep the
prototype development completely separate from the development of the full application.
Finally, unrealistic timelines are often set. The same deliverables that applied to the structured
methodology apply to the iterative methodology.
Pages:
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292