Since being moved from marketing back to IT/SAP I've been working on a new, interesting and exciting project. We have a web enabled SAP process that uses the SAP Business Connector (BC) Server as it's middleware layer. While it's fair to say that we didn't use it in the best possible way, it's still a steaming pile of Java cow poo.
Basically I'm writing a simple application server in Perl, that uses the SAP::Rfc module to communicate with SAP at the backend, and some templating module (probably TT2) to generate xhtml pages at the front end. It uses configuration files to control behaviour, and has virtually no business logic in it. So far I've written about half of the core module, so I can now process input forms, deal with sessions, put things in the right SAP input structures, and call SAP. It's all nice OO stuff, with plenty of error handling and lots of tests.
It's not quite XP, but I'm doing my best to write documentation and tests as I go along. It's proving very easy to write. I start to add a new method, document it, write tests, make sure they are okay, amend other methods, add more tests, make sure that's okay, then add more code to my method, and add more tests and so on. Mostly it's been a dream, mostly tests pass first time, and even some of the hard bits pass first time.
Test driven development is one of the things I'm now a clear convert in favour of. I know it's not a panacea for all development, but it's a very powerful technique, and well worth thinking about.