 |
Back in 2000 (seems like ancient history now, when you think of anything
pre "9/11") some of the developer crew at the banking software
company I was working at then started buzzing about "XP" or "Extreme
Programming". So I went through the litany - looking up stuff
on websites, reading wikis and newsgroups, and the rest. Fortunately
(I guess) at the time it just didn't seem like it would be productive
to do pair programming or constant unit testing and refactoring of
code, and the idea of writing down user stories on index cards and
all the other "XP" stuff was obviously not going to fit in
our organization. Nor was the idea of "the code is the documentation" -
I was trying to get our people to do more documentation and design
up front, not less... My initial impression of the whole thing was
that it was a lot like Scientology - some sort of weirdo "religion" that
didn't really make much sense! |
So "XP" went its merry way, and I went mine, and it left me and the
people I work with pretty much unscathed. And of course it has come
up over and over again since then, including at the company I currently
work at. One of the things I've found out about anything "XP" like is
that weak - minded people who are looking for excuses or who don't do
too much independent thinking and analysis on their own are much more
likely to become attracted to this type of thing. But I never had any
in-depth analysis or proof of what XP was really all about, until the
review copy of "Extreme Programming Refactored" by Matt Stephens and
Doug Rosenberg arrived from aPress.
This is a book that is at once humorous, with many witticisms, funny
stories and even "XP-ified" popular song lyrics, and at the same time,
deadly serious and analytical, with real life horror stories from people
who have been involved in XP projects that went awry.
Stephens and Rosenberg begin their tome with the story about the "Emporer's
new Code" and it just keeps getting better from there on. Readers will
learn unique and useful acronyms such as CRAP (Constant Refactoring After
Coding) and YAGNI (You Ain't Gonna Need It), among other gems. This book
should prove to be incredibly useful to any programmer possessing an
above-room temperature IQ, whose better judgment has been telling them
all along that there is something "not completely right" with Extreme
Programming.
The authors carefully and scientifically dissect and debunk every aspect
of XP in their five - part book, which is broken down as follows:
- Part I Another Fine Mess You've Gotten Me Into (Laurel and Hardy
Take Up Programming)
Chapter 1: XP in a Nuthouse (Oops, We Mean Nutshell)
Chapter 2: Where Did XP Come From? (Chrysler Knows
It Ain't Easy . . .)
Chapter 3: The Case Against XP
- Part II Social Aspects of XP (Mama Don't Let Your Coders Grow Up
to Be Cowboys)
Chapter 4: Extremo Culture
Chapter 5: The On-site Customer
Chapter 6: Pair Programming (Dear Uncle Joe, My Pair Programmer Has Halitosis)
Chapter 7: Oral Documentation (Oxymoronic, or Just Plain Moronic?)
- Part III We Don't Write Permanent Specs and Barely Do Any Upfront
Design, So
Chapter 8: Design After First Testing
Chapter 9: Constant Refactoring After Programming (If It Ain't Broke, Fix
It Anyway)
Chapter 10: User Stories and Acceptance Tests
- Part IV The Perpetual Coding Machine
Chapter 11: Software Is Never Done (The Schedule Does Not Exist Per Se)
Chapter 12: Emergent Architecture and Design
Chapter 13: Embracing Change (Embrace People, Manage Change)
- Part V The Big Picture
Chapter 14: Scalability
Chapter 15: Refactoring XP
Chapter 16: Conclusion: Neutralizing the Reality Distortion Field
What's most important about Extreme Programming Refactored: The
Case Against XP is that in sum, it's an insightful look
at a programming and problem solving methodology that indeed does have
some very valuable facets, once they can be separated out from the
quasi-evangelical hype and mixed with a little common sense, which
Stephens and Rosenberg nimbly apply. Recommended.
|