About 9 months ago I tried to explain to one of my developers the idea of an iteration zero. Sort of a quick organization of setting up for the project for a few weeks. I tried to find some references to it to point him too, but I didn’t manage to find any even though I was convinced I read about it somewhere.
If Scott Ambler is right it’s an assumed idea for Agilists, but “little has been written about this subject.” His definition is:
Agilists refer to the initial iteration of a project as “Cycle 0,” during which you determine whether the project is feasible, setup the technical environment, start building the team, and do sufficient modeling to support these activities. Sounds like what you do on a traditional project? Absolutely. The difference, however, is agilists achieve the same goals with a lot less effort—Cycle 0 is typically a week or two at most.
Small anecdotal evidence, but out of our three official Agile pilots the one that went the smoothest had a good 3-4 weeks in Cycle 0. The other two leaped off on Sprint #1 with minimal planning. The biggest pain seemed to be that very little initial work had gone into requirements, use cases in our world. For Sprint #1 it was hard for the developers and QA folks to do estimates and it’s taken a while to catch up.
Our agile projects explicitly run an Iteration Zero. It’s the time for setting up the development and test environment, and other preparatory work. It’s exactly the same length as any other iteration (we usually use two-week iterations).
But it’s not the time when the feasibility of the project is determined, as Scott’s comment suggests. At our company, that actually happens before the team is assembled, as part of project initiation (which is an administrative/planning task).
I recently blogged about the iteration 0 (1-week) we completed on a new project: http://www.think-box.co.uk/blog/2006/06/iteration-zero.html
Thanks for the link to the article. Impressive amount of stuff to complete in one week.