Iteration (Agile)
Introduction
Iterative and incremental development (or incremental) is a software development process created in response to the weaknesses of the traditional waterfall model.
Basically this development model, which is nothing more than a set of tasks grouped into small repetitive stages (iterations),[1] is one of the most used in recent times since, as it is related to new software development strategies and extreme programming, it is used in various methodologies.
The model consists of various development stages in each increment, which begin with the analysis and end with the establishment and approval of the system.[2].
Concept of iterative and incremental development
A project is planned in different time blocks that are called iteration.
In an iteration, a certain work process is repeated that provides a more complete result for a final product, so that whoever uses it receives benefits from this project in an increasing manner.
To achieve this, each requirement must have a complete development in a single iteration that must include testing and documentation so that the team can meet all the necessary objectives and be ready to be given to the client. This avoids having risky activities in the completed project.
What is sought is that in each iteration the components manage to evolve the product depending on the completions of the preceding iterations, adding more requirements options and thus achieving a much more complete improvement.
A very essential way to direct the incremental iterative process is to prioritize the objectives and requirements based on the value offered to the client.[3].
To support the development of projects through this model, frameworks (work environments) have been created, of which the two most famous are the Rational Unified Process and the Dynamic Systems Development Method. Incremental and iterative development is also an essential part of a type of programming known as Extreme Programming and other rapid software development frameworks.