What is Iterative Model in SDLC?

Iterative development is a way of splitting the development of a large application into smaller blocks. In iterative life cycle model the development does not start with a full specification of requirements, instead the development begins by featured requirements.

The developed model can be reviewed to identify future requirements. This process is repeated producing new builds of the software for each cycle of the model.In iterative model we cycle through a number of smaller self-contained life cycle phases for same project or software. Each iteration adds some new functionality to existing build.

The increment has the infrastructure required to support the initial build functionality. The build which is produced by an iteration may be tested at several levels as part of its development.Subsequent increments will undergo testing for the added functionality, regression testing of existing functionality and integration testing of both added and existing functionality.

Regression testing is of most importance on all subsequent builds after the first one. In iterative development process more testing effort is required at each subsequent delivery phase which is considered in project plan. As the build is produced in iteration pattern, software or product can come in market early with critical functionality and validation testing is carried out at each increment, thereby giving early feedback on fitness-for-use of product and its business value.

It is simpler to manage because the complete workload is divided into small small pieces. In development using iteration model initial investment cost is less although it may cost more in long term.

Iterative and incremental development advantages and disadvantages

In the above diagram painter has worked iteratively on his painting of monalisa. In the same way in iteratively we create rough product or product piece in one iteration, then review it and improve it in next build.

Step 1: Developer start the project but quickly realize, it wasn’t a good idea and give up completely.They lost the money it took to develop it but avoided paying the full cost of the project. Time to stop.

Step 2: Developers built the top priority functionality (Mona Lisa’s head) and they launch with that. At this point they are not sure do they need to build the rest as the return on investment will be too low. Time to stop.

Step 3: In this iteration developers build out the second tier of priorities (Mona Lisa’s hands and body). This build is not fully featured but filled in a few gaps that significant customers complained about but they realized the rest of the scope isn’t really needed. Time to stop.

Step 4: In this iteration developers have built all the must have and should have items from the original high level requirements list (Mona Lisa’s head, hands and body). There are other things they could have given but the timeline is over or the business is starting up a new product line and needs to divert development effort to that. Time to stop.

Step 5: They got all the major features and, in fact, we’ve touched on all the features from the product backlog. There is more they could do but really that would be more like gold plating than delivering essential functionality. Time to stop.

Step 6: Wow superb and impossible to improve further. Time to stop.

Advantages of Iterative Model:-

1. More time is given to designing the model and less effort is spent on documentation.

2. As builds are released in iteration we can reliable user feedback.

3. Defects are tracked in early stages are builds are released in iteration.

Disadvantage of Iterative Model:-

1. As development of built starts without gathering complete requirement design issue may arise in future.

2. Costly system architecture

When to use Iterative model:-

When the project is big.

Share This:

Leave a Reply

Your email address will not be published. Required fields are marked *