What is an Agile iteration?
An Agile iteration is a short period of time during which a section of work is developed and tested. Each iteration has a set completion date by which all its deliverables must be achieved. As the Scaled Agile Framework puts it, iterations are the “basic building block of Agile development.”
The Agile Alliance suggests that the term ‘iteration’ was likely first used in relation to a timeboxed 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, taking anywhere between one week and one month. A typical iteration length would be two weeks, but there is no magic number — it depends on the team’s velocity and the project’s size.
Importance of Agile iterations
The iterative model is the core of Agile. The Agile Manifesto’s first principle states: “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.” The primary word here is continuous — unlike traditional project management frameworks that work towards one final product, Agile teams work in iterative cycles to produce deliverables at regular intervals. This means customers can get an insight into the product before it is fully finished and add their feedback to improve the development process.
In Agile iterations, steps are repeated on a loop until an optimal end result is achieved. This helps Agile teams to spot risk factors quickly and address them before they escalate. Each iteration should improve upon the previous one — developers might tweak 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 an Agile project down into manageable chunks.
Within a single iteration, an Agile team will map out the requirements, develop the user stories, test their software, produce an end deliverable, and request user feedback.
For each iteration, there will likely be multiple user stories. These are short-form requirements that fulfill a specific user need and must be completed by the end of the iteration. Story points are metrics used to determine the effort required for each user story — the higher the point, the more effort required. This estimation technique helps Agile teams to plan their iterations more effectively.
Agile iteration vs. sprint
An iteration can be used to describe a variety of timeboxed periods, but a sprint is only used in relation to Scrum. For example, Extreme Programming, another Agile framework, refers to timeboxed periods as weekly cycles. You could refer to this weekly cycle as an iteration but not a sprint.