Greetings Marc,
"Agile" refers to a body of software development methods with similar ideals and values. See
http://agilealliance.org for lots more information. The basic premise is that agile methods prefer:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Extreme programming (XP) is one of the many agile methods. Others include Scrum, Crystal, Feature-Driven Development, and possibly the Rational Unified Process (RUP). Most of the agile methods don't prescribe a lot of detail when you get down to the nuts and bolts of what developers do daily. They are more geared toward how to manage a project in an agile fashion. XP, however, has some very specific programmer disciplines, or practices.
Test-driven development (TDD) is one such XP practice. But like most of the other XP practices, such as pair programming, you can always get benefit from TDD without doing anything else from XP. I was doing TDD, and nothing else XP, in a dot-com over five years ago with great success. The Agile
Java book really doesn't say much at all about XP, but it says a lot about TDD.
Some people have stated that TDD can itself be considered a standalone agile method.
I hope this helps!
Regards,
Jeff
[ March 09, 2005: Message edited by: Jeff Langr ]