I started a new project at a client site this week. I spent the first couple days on Iteration 0 tasks. These are things you need in place before you can actually get to work. Here are a few things we needed done.
You absolutely must have some sort of source control. My client happens to be a team of 1, so he wasn’t using any source control. We set up a subversion repository and the necessary folder structure for the current projects we are working on.
I absolutely hate writing build scripts, but I love executing them. This is just one of those things you’ve got to suck up and do right at the beginning. You will be executing several times every day when you are working on stories and tasks, so take some time to get them right. For this project, the build scripts were not too complicated. They simply compile the projects and run the unit tests. Normally I would drop and recreate any database that would be used too. In this case, we’re accessing an existing database, but we are not working on that part yet, so I left it out for now.
We also set up the CI server. While I really want to try out TeamCity (I tried once with no luck), I stuck with CruiseControl.net. CCNet can be difficult to get right the first time, but again once you get it you can usually forget about it.
We also did some story writing too. I don’t consider this an Iteration 0 tasks, but is obviously important to have some stories and scenarios ready to go.
What are some of the the Iteration 0 tasks you do before starting a project?