I had the occasion last friday to practise an eXtremeProgramming session, and found it really interesting.
We knew what the problem was.
We did a simple analysis by slicing the problem into 5 tasks aimed at the main classes we had to evolve
We started by coding the tests, thereby finding very interesting test cases
We implemented the code, doing pair programming, forced by the situation because we only had one computer !
We refactored the code were we could see some commonalities
The result was that we ended with very few compile errors (thanks to pair programming)
We had very few tests errors, the bar was almost always green.
One time we launched the whole application. It had an exception showing us that a limit test case was missing (initialization)
All in all, we coded in less than one day most of a feature that would have taken at least 2 days otherwise (that was the foreseeing).
I think this was easier because there was no significant architectural issue in the way.
The morale is : dont be trendy, over-enthusiast or negative but just give it a try !