The Dangers of Extreme Programming

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?
– TDD
– 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.

One thought on “The Dangers of Extreme Programming”

  1. I am surprised at how many people miss what the Metaphor is in XP – it is the common language between developers in customers so both sides can talk about the software on an equal footing. The metaphor gets rid of the techno mumbo jumbo that prevents the customer from contributing in a meaningful way.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s