Monday, May 09, 2005

Extreme Programming

What the hell is Extreme Programming anyway?

I guess it's a loose collection of software programming practices, philosophies, or just a cult. It looks like a cult because there are a few big advocates and because it's so damn controversial. One reason it's controversial is that it strongly de-emphasizes up front design in favor of methods that make code much more flexible. What methods are those? Well, there's refactoring, which is a way of moving code around so that you create a different abstraction without actually changing the functionality. Another one is pair programming, which strongly encourages the programmer to write readily understandable code.

Back to the controversy, it's more than just the way of presentation that causes controversy. XP gives a lot more responsibility to the programmer, relative to his boss the software engineer, which he hates.

Perhaps the one argument against the hollistic view taken by XP advocates is that it couples the practices that lead to code flexibility with big changes in the way projects are managed. Software evolves, but teams that adopt XP are supposed, in one Great Leap Forward, to change the processes such as UML models and other documentation.

Anyway, the core technical processes of XP are probably here to stay, and they're going to have a positive impact on most teams that choose to use them.

0 Comments:

Post a Comment

<< Home