We recently completed iteration zero to setup our project ready
for development. Here's what we completed in the iteration:
- Installation of RedHat Fedora Core on the Continuous Integration , DEV and UAT servers.
- 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.
- Installed and configured the following tools, frameworks and
applications on the DEV and UAT servers and the developer
workstations:
- The developer workstations also had Eclipse installed with the following plugins:
- Conducted spikes for FIT , FIT Library , and Selenium .
- Customised Maven2 's site.xml to publish the FIT tests on the Maven2 reports page on the project Web site.
- Completed some introductory training on collaboration and Agile teams , Extreme Programming and Scrum . More will follow on-the-job through coaching.
- 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.
- 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 ).
- 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.
- 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)
- Wrote enough code to help us set up the automated build,
configure
Cruisecontrol , and play around with
FIT
,
FIT Library , and
Selenium .
- Get the
Selenium tests running as part of the
automated build with their results published on the
Maven2 reports page on the project Web site.
- Add lava lamps to the Continuous Integration configuration.
- Possibly set up a
Maven2 proxy.