« Read access to the Subversion repository for the public | Main | Launch Event »

January 10, 2006

Adventures in Agile : Part 3 : The Joy of Automation

Here at Greenpeace we have a lot of systems, most of which I'd cheerfully describe as 'Legacy'. With them comes an awful lot of other legacy things, mostly their development environments.

It's best practice for development to have at least three instances of any software you're running. the live version, the development version and the staging or testing version. For some of our systems setting up a new version is a mountain of work, several weeks of work for one of our systems. Others have been left without separate instances for so long that creating a new one is almost impossible. With Melt things are a little different...

I think we have five instances of Melt running at the moment. This morning we decided to introduce another one, to use as our demonstration instance for our forthcoming launch event (see next post for details). We'll also be adding another one so we can implement a new look and feel without getting in the way of development. Adding another instance means running a single one line script.

It was, needless to say, a bit of effort to get this stuff set up in the first place. Our official 'Iteration 0' when you're supposed to do this took three days. In practice we've been tweaking the setup ever since. But in the final analysis this is much less effort than attempting to create and synchronise even a handful of instances without the automated procecess.

Having this kind of environment available is a pre-requisite for agile development. The developers need a development instance. The customer needs an instance which shows the latest work the developers have checked in so they can offer feedback and input. The testers need an instance which shows the work ready for user acceptance testing - the UAT instance. We also have our public instance, which shows the last signed off iteration to the world at large.

It's not just the automation of the instance creation that makes it such a keystone of agile practices though. The automation of testing saves days of time, and most importantly means that when changes to one part of the system introduce bugs elsewhere we catch them sooner rather than later.

I'm sure other development methodologies would benefit from similar levels of automation, and probably do. As far as I know Microsoft aren't agile, but they do do daily builds for all their software development. If there's a key to all of this it's probably this. If you have to do something once, do it yourself, if you have to do it twice, get the machine to do it.

Posted by Martin Lloyd at January 10, 2006 11:40 AM

Trackback Pings

TrackBack URL for this entry:
http://weblog.greenpeace.org/cgi-bin/mv/mt-tb.cgi/1032

Comments

Thanks for the insight into your methodology; well thought through. One note...should the "public instance" href above be http://melt.staging.greenpeace.org/

rather than

http://staging.melt.greenpeace.org/ ? As linked, the url doesn't appear to resolve.

Thanks again! I look forward to continuing to watch your progress.

Posted by: Ken Kennedy at January 11, 2006 1:29 AM

Ah, I'll fix that now...

Posted by: Martin at January 12, 2006 10:40 AM

Post a comment





Remember Me?