If you begin your project with a sprint zero (or iteration zero), does that make you less agile and more like waterfall?
A zeroth sprint is generally used to perform some upfront analysis or design work that serves as a foundation for the sprints to follow. It may involve a spike whereby there is a deep dive into the system to answer a few critical questions around what can be achieved and the level of complexity involved.
This effort differs from the typical sprint in that delivering a useful feature, that is, a completed story, is not required. The team is laying groundwork for the software and/or experimenting with system capabilities.
While some will disagree, I believe that starting off with a sprint zero can make your team more agile. It eliminates some degree of risk and helps you plan better.
Along these lines, ending the project with a sprint n+1 can help you tie up loose ends and apply a few finishing touches. Such a sprint is typically focused on fixing defects that could not be addressed earlier and/or performing final cleanup on the GUI and the documentation.
It can be argued that if you do things right you won’t need these pre- and post-sprints. Yes — and in a perfect world you will meet all the project goals and objectives with ease. Life’s not perfect. It needs your help!