To iterate is to do something repeatedly; to increment is to build something in chunks. In agile, we take both an iterative and incremental approach to developing products.
To understand how this approach works, let’s take a closer look at the way it’s applied in Scrum, the most popular agile framework.
A team that uses the Scrum frameworks works in sprints. A “sprint” is an event with a duration of one month or less that repeats itself—like the days in the calendar and the months in the year—to create rhythm and consistency.
The iterative nature of sprints is that they repeat themselves. Essentially, every sprint is a standalone timebox in which the team members get together, create a plan, and then act on and adapt that plan as they build the product and learn lessons along the way.
In iterating, the team develops the product in usable chunks called “increments.”
To understand the concept of increments, it helps to look at the dictionary definition for the verb to increment: “The process of increasing in number, size, quality, or extent.” All increments, the Scrum Guide says, must work together to create a whole that’s greater than the sum of its parts.
Here, it’s important to understand that the team works in iterations to build increments, but the relationship between iterations and increments does not get any more strict than that:
- Just like you can do more than one thing in a day, the team can create multiple increments throughout the sprint.
- And just like you don’t need to wait until 11:59 pm—that is, until the end of that day—to consider those things created, the team can ship those increments before the Sprint Review meeting and the end of the sprint.
The incremental way of work comes from the fact that each increment is usable on its own, and that all increments work together to create the product being built.