There many articles and posts claim that XP does not work and is all about crap and hacking. It is funny in fact that many arguments are just wrong. Recently I found The Danger of Extremism article. It is very, very bad. On my opinion the author don’t understand XP, don’t understand agile software development and did one or two failed XP projects for sure.
Cite: XP is synergistic because the practices all support each other. But the reverse is also true: if one practice fails, the other ones are quick to follow. I’ve seen it happen, particularly with test-driven development. If someone stops writing the tests before the code, it becomes very difficult to refactor the code. So code ends up being hacked.
Yes, XP is synergistic, but if one practice fails the other may survive and play they role. The example is just bad, if you do TDD, you write tests and refactor code. If you stop doing any of these 2 practices, you stop doing TDD. This is the same as you say “programming consists of thinking and typing code”. What happen if you stop thinking? You’ll write a crap. What happen if you stop typing? You’ll not create anything. Unit Tests + Refactoring is one practice in fact – TDD. What about the other practices? Let’s check
– Pair programming. Ok, it is definitely possible to write code alone with good results.
– Iterative development. On of the key of XP and just a common sense. Could not be skipped on my opinion.
– Small releases. It depends. For large project releases could be made once each 3 months. It’s ok.
– System Metaphor. Does anybody know a good one? I never used it. Skip.
– Simple Design. A common sense as well.
– Collective Code Ownership. Good, but may be skipped.
– Continuous integration. Good, but may be skipped.
– 40 Hour Work Week. Common sense. Proved in many sources.
– On Site Customer. Very nice to have, but workaround could be applied.
– Coding Standards. Common sense and should be in each development process.
So, what is the must-have set of XP-specific practices?
– Iterative development
By doing just these two you will imrove your old waterfall process and will produce better software for sure. Is XP synergistic? Yes. Is it work and help with just several practices? Yes. This is not a monolithic synergy, but very flexible in fact. Learn how it should be adapted for your specific situation and it shows its strength. All criticism is all about fear and adaptability. People read the book, try to install almost all practice at once, fail and claim that XP does not work for them.