What is an Iteration, which interpretations exist and which duration and frequency make sense?
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 the term iteration is used differently:
- An iteration describes the repeated running of whole 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.
- An iteration 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.
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, the best known representative of agile software development, iterations are referred to as sprints. A sprint has a defined duration of one week to a maximum of 30 days.
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.
Here you will find additional information from our Smartpedia section: