So what’s in a name … ? Does it matter what you call your chunks of work ?
In many ways it doesn’t – different people use the terms inter-changeably. Sprint is specifically a Scrum term, XP tends to use Iteration, each different Agile approach has different ways of defining and using the terms. However the common ground is that they are regular, repeated timeboxes used to manage the work to be done so that there are regular checkpoints and feedback as part of the project process.
However there are some important differences between the processes of iterating versus incrementing.
Jeff Paton has posted a nice summary of the difference, along with some pictures that help to make it clear:
Iterating: Starting with an idea of what is wanted and refining that idea to get the desired result
Incrementing: Starting with a much more definite understanding and building piece by piece
Both still have the benefit of regular feedback and both can still deliver usable software at the end of the timebox. Incrementing is probably more useful when requirements are more stable or better understood, whilst iterating allows a more agile response to changing or unclear requirements. There’s no reason why a project can’t use both, at different times and for different features – in fact most projects probably should.
So – whatever you call your timebox periods, make sure you understand whether you want to iterate or increment.