"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 ]
XP strikes me as a bit too "X" at the programmer level
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus