Web This site

Saturday, June 03, 2006

Iteration zero

We recently completed iteration zero to setup our project ready for development. Here's what we completed in the iteration:
  1. Installation of RedHat Fedora Core on the Continuous Integration, DEV and UAT servers.

  2. Installation of Subversion, Maven2, and Cruisecontrol on the Continuous Integration server. We created our own Maven2 repository to contain artifacts not available in the central repository at ibiblio. Cruisecontrol was configured with a continuous integration project that builds the whole application and runs all the tests on a check-in to Subversion. We used Maven2 profiles to provide targeted deployment to the DEV and UAT servers. The DEV profile was configured as a separate Cruisecontrol project scheduled to deploy a nightly build to the DEV server to enable our customer to 'play' with functionality as it is developed in each iteration.

  3. Installed and configured the following tools, frameworks and applications on the DEV and UAT servers and the developer workstations:

  4. The developer workstations also had Eclipse installed with the following plugins:

  5. Conducted spikes for FIT, FIT Library, and Selenium.

  6. Customised Maven2's site.xml to publish the FIT tests on the Maven2 reports page on the project Web site.

  7. Completed some introductory training on collaboration and Agile teams, Extreme Programming and Scrum. More will follow on-the-job through coaching.

  8. Completed a chartering session (more about this in a later post) where the team, including our customer, created a guiding vision statement for the project, defined futurespective success criteria, noted assumptions and constraints, identified the project community and agreed working practices.

  9. Produced an initial product backlog with our customer. This product backlog comprises a goal roadmap identifying the high-level goals for the next 6 months (corresponding to 6 releases, 1 every 4 weeks). Each high-level goal was broken down into 4 sub-goals corresponding to potential iteration goals (we're using 1-week iterations).

  10. Completed a release planning game for the first release. We took the high-level goal for the first release and broke the 4 sub-goals into user stories, grouping the story cards according to the sub-goals. Our customer prioritised each grouping by business value. Using planning poker [pdf], the team provided coarse estimates in ideal pair days. Since the team had not worked together before we did not have an empirical velocity. To use only as a starting point, the team decided on a calculated velocity of half the number of pair days in the release (based on the assumption that one ideal pair day equalled one elapsed day). Using these estimates and the velocity, our customer and the team agreed on a final set of user stories for the release that would deliver the release goal.

  11. Set up our planning boards to show the goal roadmap, and the current release and iteration plans. (I'll describe our planning boards in more detail in a later post)

  12. Wrote enough code to help us set up the automated build, configure Cruisecontrol, and play around with FIT, FIT Library, and Selenium.
We still have to complete the following tasks so we'll do them as slack over the next few iterations:
We haven't got our bullpen yet but I've obtained permission to reogranise the workspace subject to cost. We're in a rented office space and something as simple as constructing a bullpen costs silly money, so we're waiting on the quote from the landlord. If we get the go-ahead we'll need rectangular desks (the office is furbished with those curvy desks) to make the layout easier and more efficient, and to make pair programming more comfortable.


Tags: ,

0 Comments:

Post a Comment

Links to this post:

Create a Link

<< Home