Somehow it seems to me that agile software development and extreme programming are getting a hype (if not already). I am not a friend of long political and organizational disputes and I like a flexible cooperation and collaboration between developers and customers. I pay attention that all those people meet and communicate who are (or will be) directly affected by the project during development or by the final outcome.
So from that it looks like agile software development and/or extreme programming is something for me. But I have serious concerns regarding those techniques or at least how some people understand agile software development or extreme programming (which in reality are new names for old stuff).
The reason for my concerns is that for many people this is the ok for starting development without thinking much about the software design and possible future goals. Seeing the goals and purpose of a piece of software as a "moving target" is also an often adopted thought.
And this although a bad design is the biggest obstacle later on when enhancing the product!
When evaluating products the design and background technology is often not taken into consideration although that is the core that usually can't be changed during the whole life-cycle of the product, so this is similar to a vendor-lock-in - it is a technology-lock-in. All technologies have their advantages and their flaws and you have to live the appropriate drawbacks then once decided to go with a particular product.
From my understanding agile development and "extreme programming" (the longer I think about it the more I dislike the phrase "extreme programming") is not (necessarily) like "programming without thinking", but somehow people see it as an opposite to some "old-fashioned" big and documentation-heavy project management. In times of economic crisis as companies try to shorten their time-to-market and reduce their costs, projects are narrowed down to just coding because this is the action that most obviously can't be omitted...
Related post: Web vs Thick client.