You are here

Iterative development

20 January, 2016 - 15:30

Iterative development is the standard approach today. It is characterized by the following:

  • A series of short (3 to 6-month) development cycles, allowing for quick feedback from experience gained with the working system
  • Each cycle delivers some significant, useful functionality
  • The early cycles focus on “low-hanging fruit” – functionality which is cheap to develop and has a high payback. Early successes give credibility to the project and enables you to do more difficult things later.
  • The experience with the functionality in one cycle allows you to adjust the system in the next cycle
  • The project management style is called “time-boxing”: each iteration has a deadline for implementation which cannot be exceeded. If some planned functionality takes too long to develop, you postpone it to the next cycle instead of delaying the cycle itself.
  • Maintenance follows initial development in a smooth transition (see the section on Maintenance later in this chapter). In fact it is difficult to tell when development ends and maintenance starts.
media/image3.png
Figure 3.3 Iterative development 
 

The first version of iterative development was called Rapid Application Development, created by James Martin in the 1980s in response to the emergence of CASE (Computer-Aided Software Engineering) tools 1, and the approach has remained tool-intensive. Iterative Development also goes under the name Incremental Development, emphasizing that functionality is added gradually.