Is there a difference between a sprint and an iteration?
is the Agile term for a single development cycle. It is a common term used in the iterative and incremental development (IID) processes. Therefore, all sprints are iterations, but not all forms of iterations are sprints. Scrum is one specialized flavor of IID, so it makes sense to specialize the terminology as well. A Scrum-specialized incremental development process uses the term sprint
for its iterations; that is, one development cycle in Scrum is called a sprint.
Origins of the sprint
To clarify the difference between the two terms, we need to understand where the term sprint
originated. The term sprint originated from the game of rugby, which is a free-flowing game that features a combination of strength, speed, and strategy to move a ball into an opponent’s territory. Scrum derives a lot of its terminology from rugby, including the word scrum
. A sprint in a rugby game is the distance in which a player travels from one end of the field to another. Before any player or team sprints, they get together and plan how to go about it (sprint planning). During the sprint, a player is expected to encounter resistance and challenges from the opposing team (while building the product) and go ahead with the plan, if that was the best course of action — or change the plan and adapt to meet the challenge (welcoming changes to improve). You can anticipate but not predict with any degree of certainty the resistance and encounters.
Sprints in the context of Scrum
A sprint tests whether the team is a team (inspecting), whether they are good, and their ability to respond to change. It is easy to understand why a sprint is an applicable term for Scrum. A sprint in Scrum is a time period in which the team does whatever it can to develop software according to the features/requirements it has committed to. During a sprint, the team not only iterates toward a final product solution, always improving (adapting) on what they already have, but also take on some additional increments. Therefore, the product is developed iteratively and incrementally during a sprint.
is a timebox of one to four weeks during which a "Done" and potentially releasable product increment is created. Scrum is an iterative and incremental Agile software development framework for managing the development of a product. Each sprint starts with two interconnected planning sessions to outline and specify the content of the sprint: the What meeting and the How meeting. The blend of these two meetings is furthermore well defined as the sprint planning meeting. In the What meeting, the Scrum Team commits to the user stories from the Scrum product backlog, and it uses the How meeting to break the committed user stories into smaller, actual solid tasks. Then implementation begins.
During the sprint, no changes are made that would risk the sprint goal, quality goals do not decrease, and the scope may be clarified and renegotiated between the product owner and the development team as more is learned.
At the end of the sprint, a sprint review meeting is conducted to allow the product owner to check to see whether all of the committed items are complete and correctly implemented. Additionally, a sprint retrospective meeting gives the team a chance to check and improve their project execution processes.
The Scrum community has traditionally used the term sprint
, but nowadays it is used interchangeably with iteration
without any precise meaning given to one versus the other. The Agile norm of the term iteration
as basically identical with timebox
derives from the everyday meaning of the act of repeating when used in an intangible sense; it is that more usual meaning that is conveyed by the sense of iterative development
Agile Alliance, definition of Iteration