The May BCS SPA
had a presentation from Sean Hanley of Exoftware
on Agile development. The presentation was called "The Story of a Story" and focused on the lifecycle of a feature within an Agile project. To be honest a lot of it was stuff I'd heard before. One of these days I'm going to work on an Agile project instead of just listening to other people talk about them.
What I did find interesting was automated acceptance testing. This provides a neat way of validating the delivered feature end-to-end. In particular, these tests exercise the intra-component dependencies. This is crucial when the units tests have been developed using mocked dependencies.
Also, Sean's teams use an Interaction Designer - an HCI expert - to come up with the screen designs. Apparently Java coders aren't too good at UI design. Obviously this breaks the idea that the entire codebase belongs to everybody. But then Sean stressed the need for pragmatism in the pursuit of delivering what the customer needs. Who knows, before long it might be acknowledged that most Java heads aren't too hot at databases either and we'll see the introduction of Persistence Designers.
Sean shared one potentially very useful project technique with us: I'm Bored
. When a meeting has gone on too long, stand up, say "I'm bored" and leave. I think I may try that one sometime soon.
The other insight he had on the matter of why we need Agile project methods was this: how many professional gamblers do you know who would bet on the success of an IT project (using whatever metric of success you like)? The answer to that question is not dependent on how many professional gamblers you know.