In the recent past Agile software development methods has proven to be most suitable for most of the software development areas. Specially mobile and web applications development where technologies and trends are changing/advancing so rapidly that ability to adopt to this change/advancement has become the key to success.
When you’ll have a deep-dive into agile methods theory and try to map the documented processes, principles and terminologies with the agile project process being following in your project/organization, you’ll realize that what you thought of as an agile project development process is actually a tailored version of one of agile methods say Scrum (in most cases), Extreme Programming, test driven development, lean programming etc
This is because the agile process which you have being following is the result of the Agile Process tailoring or Agile methods tailoring done to meet the specific needs of the type of projects executed by your organization. This involves some tradeoffs however because projects differ in their scale, scope and technical challenge, the same process will not suit all circumstances. Hence Agile Process tailoring is an essential task to take best possible advantages of the agile software development methods in your project.
Agile process tailoring sometimes gives rise to confusion in the understanding to some agile terminologies, which has similar meaning like Sprint and Iteration.
We often end up with questions like,
- Is there a difference between Sprint and Iteration? Or is Sprint just another term for Iteration?
- Can we have Sprints within Iterations or Iterations within Sprints?
- In case I am sending an interim release to a client before the planned Sprint release data, shall I call it an Iteration?
Answer to these questions is in the following shot description:
- Iteration is the generic agile term for a single development cycle. It is a common term used in the Iterative and Incremental Development (IID) processes.
- Scrum which is a specialized agile method, or we can say specialized Incremental Development process uses the term Sprint for its iterations, that is one development cycle in Scrum is called a Sprint.
- Sprint is Scrum specific, hence Sprint is an iteration but not all forms of Iterations are Sprints.
- Other agile methods may not use the same term (Sprint) to define Iteration work, but Sprint and Iteration are the two most commonly used terms.