« January 2006 | Main | March 2006 »

February 23, 2006

Telling Stories

With Melt now entering it's final iteration before we say 'right, lets see if this thing is any use' and start inflicting it on users I thought I'd take a few moments to look back over the projects history and get a feeling for what happened. The best means I have for doing this is the vast amount of documentation this project has produced.

That's chiefly because Ximon has kept minutes on every stand up meeting he's been in (almost all of them), but also because planning games and start-up sessions generate their own documents. There's also the bug tracker (which has doubled as a story tracker) and all kinds of other stuff.

For this though it's probably best if I stick to one document - the living story list, which has been kept in version control since the start of Iteration 3, which means I can get earlier versions and make comparisons.

So, what happened? Well at the start of Iteration 3 we had 113 stories and planned to do them all.

I seem to remember our very first story list had about 80 stories, but by this stage we'd taken those that looked too large and broken them down into a more reasonable list. Searching my hard-drive I've found the story list from iteration 2 when I broke the stories down into far too much granularity giving us about 140 stories - so rewriting them into a more coherent form left us with 113. To put it another way, the style (not the content) of the requirements document fluctuated dramatically from being initially too broad (80 stories) to too granular (140) to more or less right (113).

What's interesting is that at some point I spent time making the requirements less specific - not a regular occurance on a project of any kind.

Since then we've added stories and dropped stories. The current Master Story List has 147 stories, but 30 of them have been dropped as unnecessary, or at least not required for a first release. So despite being able to add stories at will our 'client' (Rolf) has been able to keep the project at almost exactly the same size as it was originally envisioned to be (assuming all stories to be equal - which they aren't). The big breakthrough came during iteration 11 when Rolf and I sat down to work out what would constitute finished for the project. By that stage the stories which hadn't been done had been consistently passed over in planning games to the point where dropping twenty or so was an easy decision to make. Even then we still wrote one new story, to cover up a gap we thought we'd created.

I'm not going to try and draw too many conclusions from this other than to note that the requirements moved around a lot, but that the scope didn't creep and the system didn't require a whole lot of change orders and price negotiations. Interesting isn't it?

Posted by Martin Lloyd at 1:53 PM | Comments (2) | TrackBack

February 21, 2006

Much to think about

I just got back from spending a weekend with 200 ThoughtWorkers in a hotel in Chicago. Aside from saying what a great time I had, and how impressed I was by the calibre of people I met, and the great questions they had about everything from nuclear power to whaling, to what we're doing with melt I though I'd mention it as a source of some forthcoming posts. Things I'll be writing about soon will include

* More on stories and how to write them
* Planning and scheduling with Agile projects
* Does Agile need great people? (that one, again...)

Posted by Martin Lloyd at 10:26 AM | Comments (0) | TrackBack

February 20, 2006

Iteration 11 is up

The word from the developers is that iteration 11 (finally) contains:

1. Send message to Your Messages or email
2. Invite to my group using the message sending mechanism
3. Alternative sort criterion: alpha name
4. Search for things like this, using keywords of 'this'

The staging instance has been updated to iteration 11.

Posted by xeightee at 12:12 PM | Comments (1) | TrackBack

February 6, 2006

How would you run an open source project?

Custard Melt is drawing to an end of it's initial development. From this point on the development of the software will probably be done as a combination of in house Greenpeace development, outsourced development and hopefully community input into the project. The question we're currently wrestling with is 'what's the best way to do this?'

If you've got any thoughts on what you'd be looking for, or indeed what your experiences of this have been let us know. We can think of lots of useful tools right now (Wiki's, discussion fora, mailing lists...) but we're less clear on the best way to handle things like code review and integration.

So, talk to us...

Posted by Martin Lloyd at 11:39 AM | Comments (5) | TrackBack

February 3, 2006

Adding Custard to a Mac

Carlos, one of our new team members has succeeded in getting Custard to run on his Mac for development purposes. Here's how he did it.

I've got Melt running perfectly on my iBook last night, and just wanted to jot down some notes in case it helps other developers trying to do the same. Here they are.

Mac OS X 10.4 (Tiger) comes with Python 2.3.5 built-in, but that's not enough. The best way to upgrade it (or, rather, install another version) and get everything else up and running is to install DarwinPorts [http://darwinports.com/], and do:

sudo port install python24 py-mx postgresql8 py-psycopg ImageMagick

Go out for a nice walk and a cup of coffee (my iBook G4 1.33ghz took about 4 hours to download, unpack, build and install everything)...

To install PostgreSQL, fire up NetInfo Manager -- careful, you could break your Mac messing about with this thing --, find the 'users' directory, create a new one called 'postgres', save and close. Back in the terminal, do:

sudo passwd postgres
# give it a password
sudo -u postgres bash
mkdir /opt/local/var/pgsql
mkdir /opt/local/var/pgsql/data
ln -s /opt/local/lib/pgsql8/bin /opt/local/bin
initdb -D /opt/local/var/pgsql/data
pg_ctl -D /opt/local/var/pgsql/data start -l /opt/local/var/postmaster.log
createdb melt
exit

Make sure calling 'python' points to 2.4.2 instead of 2.3.5 (adjust symlinks and/or PATH environment variable if necessary) and follow the rest of the directions in the HOWTO. I haven't tested the ImageMagick Python bindings yet, guess a few more steps are necessary to get it to work.

Posted by Martin Lloyd at 9:53 AM | Comments (0) | TrackBack