The iterative development model is a cyclic software development process, developed to oppose the waterfall model and its weaknesses. It is an essential part of the agile software development and often is used in web application development.
The main idea of the iterative methodology is to produce a software system incrementally, allowing the web developers to take advantage of what was being learned during the earlier software development, and produce incremental, deliverable builds of the system. Learning comes from QA, testing, programming and coding, and use of the system.
The process itself looks like that: start of the web development with a simple implementation of a subset of main and the most important requirements and iteratively enhance it with additional features until the full system is implemented. At each iteration, design modifications are or may be made and new features are added.
The development process consists of the following steps: initialization, iteration, and the project control list. The initialization step creates a prototype of the system or a base version. The main goal for this initial implementation is to create a software build to which the customer can react and if necessary give the development team new requirements or enhance the existing ones.
To manage and guide the development process, a project control list is created, which contains a set of all tasks that need to be implemented. It includes new features to be implemented and areas of redesign of the existing application. As a result of the analysis phase the control list is constantly being revised to improve the functionality on next iteration.
Each iteration involves the implementation of the needed features form a control list, redesign of the needed functionality, and the analysis of the current version of the system. The goal for the implementation and design of any iteration is to be simple and modular, supporting redesign if needed. Design detail level in such model is subject to discuss and should be chosen for the project specifically, depending on the project itself. In this case the iterative model doesn’t dictate the needed level of detail.
The analysis of iteration is based upon customer’s feedbacks. Also, it involves the analysis of the interface usability, reliability, efficiency, structure, modularity and achievement of the main goals. When the analysis is over, the IT project control list may be modified, depending on the results.