Agile iteration

An Agile iteration is a short period of time during which a piece of work is developed and tested. Each iteration has a set completion date by which deliverables must be completed. As the Scaled Agile Framework states, iterations are the "fundamental building block of Agile development."

Origins Agile iteration

The Agile Alliance suggests that the term "iteration" was probably first used in relation to a defined period in 1991 (a decade before the Agile Manifesto was written) when James Martin introduced the Rapid Application Development (RAD) framework. Agile iterations vary in length and can range from one week to one month. A typical iteration length is two weeks, but there is no magic number - it depends on the speed of the team and the size of the project.

Importance of Agile iterations

The iterative model is the core of Agile. The first principle of the Agile Manifesto states, "Our highest priority is to satisfy the customer through early and continuous delivery of valuable software." The key word here is continuous - unlike traditional project management frameworks that work toward a single end product, Agile teams work in iterative cycles to produce deliverables at regular intervals. This means customers can gain insight into the product before it is fully completed and add their feedback to improve the development process.

In Agile iterations, steps are repeated until an optimal end result is achieved. This helps Agile teams quickly identify and address risk factors before they escalate. Each iteration must improve on the previous one - developers may fix a bug, update an existing feature or add a new one. This process is repeated until the product is ready for release.

What happens in an Agile iteration?

There are numerous iterations in a full Agile software development life cycle. These iterations go hand in hand with incremental development, which involves breaking down an Agile project into manageable pieces. Within a single iteration, an Agile team will map requirements, develop user stories, test their software, produce a final deliverable and solicit user feedback. The planned work in an iteration is carried by the team and ensures commitment. 

For each iteration, there will likely be multiple user stories. These are short requirements that meet a specific user need and must be completed by the end of the iteration. Storypoints are measurements used to determine the effort required for each user story - the higher the point, the more effort is required. This estimation technique helps Agile teams be more predictable and, as a result, plan and estimate iterations more effectively.

Schematic representation of an Agile iteration

When does an Agile iteration happen?

In practice, during an iteration, Agile teams hold daily stand-ups, in which each team member briefly discusses what they did the day before, what they plan to do today, and whether they need help with anything. This promotes communication and collaboration within the team and allows for quick problem solving.

At the end of each iteration, a retrospective takes place, in which the team looks back at what went well and what could be improved. This allows the team to continuously improve and grow. Important aspects of an Agile iteration are:

  • Timeboxed: each iteration has a clear end date and no new features are added after the iteration has started.
  • Encapsulation: each iteration contains only the tasks and functions needed to achieve the specific goal of that iteration.
  • Testing: the software is continuously tested to make sure it meets the requirements and improvements are made continuously.

Agile iterations are thus an essential part of the Agile software development process. Applying these iterations allows teams to develop and deliver software in a structured and organized manner while adapting to changing customer and stakeholder requirements and needs.

Starting an Agile transition?

In our roadmap, read the key stages including practical tips for a successful transition to an Agile Way of Working.