Iteration – a process with repetitive actions
The term “iteration” comes from Latin and means “to repeat”. It describes a process of similar or even identical actions with the goal of realising a defined solution. Iteration is used as a term in mathematics, linguistics, computer science, product development and software development. In computer science, an iteration is either the repeated execution of instructions as a loop or the repeated access to data structures.
Iterations in software development
In software development, iteration is used in different ways:
- It describes the repeated running through of entire development cycles. A classic development cycle is often divided into individual project phases such as preparation, implementation, testing, operation and maintenance with corresponding milestones at the end of the phase. Thus, the implementation as a whole could be repeated until an internal release for testing by a separate test department takes place.
- It describes the repeated passing through of individual development steps within a phase. Individual phases within the realisation, such as the analysis or the design, usually do not have to be repeated. Implementation, on the other hand, is often divided into sections – iterations – in practice. An iteration therefore describes a period in which actions such as the programming of new functions are repeated. In such a procedure, the results of several iterations are combined to releases. What is important is that the repetition does not refer to a concrete function that is developed again and again, but to the action, i.e. the programming as such. This means that similar actions are performed in iterations, but the requirements, features, epics, etc. to be realised differ.
- The repeated interaction of several phases – e.g. between realisation and testing – can be understood as a special form. A product is realised and then tested, followed by further development and testing. This process is repeated until the product has reached the desired quality and can be put into operation.
In product and software development, we often speak of an iterative-incremental approach. Iterative refers to a temporally and technically self-contained period of time in which additional functionality is developed step by step (incrementally).
Duration and frequency of iterations
Due to these different interpretations of an iteration, it is not generally possible to determine how long an iteration lasts or how often it repeats itself. Corresponding specifications must be made project-specifically.
In Scrum as the most well-known representative of agile software development iterations are called Sprints. These are events of a fixed length of one month or less, where a new Sprint starts immediately after the completion of the previous Sprint.
The V-Modell XT does not know such a specification as a process model of federal German authorities; there iterations are defined statically at the beginning of the project or dynamically in the course of the project with time intervals to be determined in the course of tailoring. The time intervals depend on the content – a major difference to Scrum, where the content is defined in such a way that it can be implemented in the fixed time intervals.
Regardless of the software development method, it makes sense to plan iterations in a project with the same scope and duration in order to compare results.
In software development, there is also the term iterator. In simple terms, it is a pointer – e.g. a cursor – with which elements of a set can be traversed.
Here you will find additional information from our Smartpedia section: