|I l @ ve RuBoard|
In the first iteration strategy session, the customer is just a bystander; the technical lead presents the stories to set up the development environment. We used to call this iteration 0, but it ruined the numbering system. Now we call it iteration 1, although it is spiritually a zero iteration. Here we do no programming and only explore the beginnings of the design process. Iteration 1 is about the development server setup, revision control, the build manager, and other stories focused on preparing for development.
We have worked on projects where this was not done up front, causing needless risk. Don't wait until code is scattered across ten computers to get it into a repository. Don't wait until iteration 5 to install the database. In the first iteration all the software needed for the project should be integrated. Find out now that the application server you have selected will not accept your database driver. After iteration 1 any member of the team should be able to do her work, check it in, build it, run it, and move it to QA when it is ready for release.
Write tests to prove that everything is working. Most projects will have a developer IDE, a revision control system, a build manager system, an HTTP server, an application server, and a database. Script a checkin of simple code that puts the words "Hello World" into the database and a unit test to display it in a Web browser.  This test will prove that the stories from the iteration were done and will help to determine that your system is functioning correctly. It is quite common in Web projects to hunt for a bug in code for days, only to find that the registry has eaten a DLL that makes your database work. In many Web projects a majority of the functionality is centered on writing to and reading from a database, so the tests you create in iteration 1 are the foundation for most of the tests you are going to write in the future.
Iteration 1 has set the stage to get some work done, but at the same time you have taken the customer though a complete iteration with stories, acceptance tests, standup meetings, and paired development. Up to now the customer has had little to contribute but has been able to watch. Trust us, in the first iteration most customers are too overwhelmed by watching and asking questions to contribute much. What is most important is that this first iteration stands a good chance of success. Succeeding at this point is your most important goal because you have given your team confidence and earned needed customer trust. On more than one occasion, we have heard the customer say, "Hey, you guys really do know what you're doing!"
Here are some obligatory stories from a typical first iteration:
|I l @ ve RuBoard|