Iteration generally describes a process of repeated same or similar actions in order to approximate a solution or a specific goal. With this meaning first used in mathematics, the term is now in use in various fields with similar meaning. For example, in computer science, not only the process of repetition, but also the repetition itself is called iteration. In other areas, as in the Latin source word, the meaning is limited to repetition.
In software development, an iteration refers to a single development cycle, starting with planning, analysis or design, ending with implementation, testing or maintenance, depending on the process model. Iterations play a special role in Extreme Programming and the Rational Unified Process. Scrum uses an iterative process for product development. This is referred to as feedback loops in all phases of planning, execution, review, and adaptation. In addition to iterative problem solving in mathematics, which repeats individual computational steps, computer science also speaks of iteration when
- Data from a data structure is accessed step by step (repeated in the same way), for example by means of a FOREACH loop.
- A special pointer to the individual objects is called an iterator when it switches (usually automatically) to the next date/object of the data structure after each access.
- A block of instructions (the so-called “loop body”) – controlled by loop control instructions – is executed repeatedly; each execution is an iteration of the loop. This type of programming is called iterative programming. This is in contrast to recursive programming, in which the instruction block is inserted into a procedure and its repetitions are formulated by recursive (self-) calls.
In design theory, one speaks of an iterative approach, sometimes also of iterative searching, when a solution is found in such a way that the solution is gradually improved based on an inspiration of the designer.
---

In management, iteration is a way of dealing with the uncertainties and surprises in complex situations. In the event of change, it is not always possible to predict the course of projects or the impact of actions. In most cases, conceiving of any change management as a “grand plan” with immovable goals leads to surprises for which planners and implementers are not prepared. This does not mean abandoning plans, but always being sure of one’s own approach only for the time being. Linear-causal project thinking is replaced by an iterative approach: by feeling one’s way along purposes, interests and power constellations, ambiguity is gradually reduced, acceptance is achieved, effect is generated and routine is established. The order of the topics and content only emerges in the course of the change. “An iterative process of initial interpretation and design, implementation and improvisation, learning from change-effort, and then sharing that learning systemwide, leading to ongoing re-interpretation and redesign of the change as needed.”