Preface


I first heard of Extreme Programming (XP) a few years ago when I used to spend lots of time on an e-mail list forum called the Object Technology User Group (OTUG) and began to see claims that the cost-to-fix-defect curve had been flattened.

For those of you who may not be familiar with this curve, it was published in a landmark book called Software Engineering Economics by Barry Boehm some 20 years ago, and it basically states that the cost of removing a defect (fixing a bug) increases exponentially as we progress through the life cycle from requirements analysis through design, coding, testing, and release of a system. So suddenly we were all made aware of this new phenomenon that promised to embrace change and flatten this curve.

My sensitive nose immediately detected a hype smell, and I decided to do a little investigating. Sure enough, I rapidly discovered that the claims of a flat cost of change across the life cycle were the result of eliminating those life cycle phases where the cost of fixing a defect was lower ”that is, no requirements analysis, no design before coding. Just code, test, and refactor, and the cost of making a change is flat across the life cycle! Miraculous, and completely based on circular logic. But man, did the combination of hype and circular logic ever sell books!

Before long, nearly every question anyone posted to OTUG was answered with an advertisement for XP, and for a while I d get into the discussions when I wasn t too busy. But it seemed like some of the more prominent XP gurus did nothing but post messages to newsgroups, as there would routinely be 15 or more posts a day by these folks. And, of course, I always enjoyed the hate e-mail I received from zealots when I dared challenge any of the circular reasoning that was presented. When I did engage in the discussions, I spent a bunch of time surfing through some of the prominent XP Web sites, including, of course, the C2 Wiki Web. During this period, I was also involved in putting together a keynote speech for the UML World conference titled Alice in Use Case Land. I decided to capture some of the through the looking glass guidance I discovered on my journey through the C2 Wiki Web and other XP sites in that talk. (You can read the complete script for Alice at http://www.iconixsw.com/aliceinusecaseland.html.)

Eventually, I grew bored with discussing XP on the newsgroups, got too busy with other projects (including my second book, Applying Use Case Driven Object Modeling with UML ), and gave it up as a pastime. I returned to the sport briefly upon learning of the termination of the C3 project at Chrysler and reading on the C2 Wiki Web the reasons for the termination (the goal donor, happily embracing change, wanted to add new features, and the gold owner wanted to turn off the mainframes), and it irritated me that C3 was still being touted as a fabulous success on the newsgroups.

Why did this irritate me? Because, if you look on the C2 Wiki Web (read it yourself at http://c2.com/cgi/wiki?CthreeProjectTerminated), you ll find this quote (referring to Frank Gerhardt from Chrysler speaking at the XP 2000 conference):

If I remember correctly Frank said words to the effect that, at DaimlerChrysler these days the terms: ˜C3 , ˜ExtremeProgramming and especially ˜PlanningGame , and to some extent ˜SmallTalk , ˜GemStone and ˜object-oriented are now unutterable by anyone wishing management there to take them seriously. He got a rather nervous sounding chuckle from the audience with the line ˜Chrysler has done XP OnceAndOnlyOnce .

To paraphrase Churchill, Never has so much hype been achieved by so few, over such a dismal failure.

At last count, there were well over 20 XP books on the market, which, if you think about it, were all spawned by the success of C3. Incredible.

Some months later, somebody forwarded me Matt Stephens article titled The Case Against Extreme Programming ( http://www.softwarereality.com/ExtremeProgramming.jsp ), and I immediately recognized a kindred spirit. As I was reading Matt s article, I came upon a section where he was picking apart one of the XPers favorite fallacious arguments, that unless you had actually tried a particular technique (I think in this case it was pair programming), you weren t qualified to say you wouldn t like it. This argument had always reminded me of a roommate I had in college when I was 17 years old, who had been trying to convince me to try LSD. (His words still stick in my mind: But how do you know you won t like hallucinogenic drugs if you ve never tried them? )

I can remember my reaction as I read Matt s words:

Luckily us [sic] humans have pre-cognitive dissonance . . . [ What? I said to myself .] I have never tried sticking my head in a bucket of sh ”, I have never tried constant pair programming. But I know in advance that ˜NO sir I wouldn t like it. I know in advance, having seriously considered it, that constant pair programming is a totally warped idea. [1]

Well, I almost fell off my chair laughing, and I remember saying out loud (to nobody in particular), I have to write a book with this guy. A few months later (as we were bouncing this book proposal off the second possible publisher, who wanted us to write a pro-XP book instead), I found myself over in England teaching a couple of classes, and I got to spend some time with Matt, whereupon we decided that we should write the book we wanted to write and hopefully somebody would show up and publish it.

Ultimately, it was inevitable that I wound up writing this book with someone from England, because the subject matter is so well suited to the British sense of humor. The idea of a roomful of programmers, coding in pairs, working with stories scribbled on index cards, writing unit tests instead of doing architecture and design, and continually refactoring their code until it smells good just always made me envision Monty Python s Extreme Programming Circus. To that end, I offer a sketch called The Ministry of Code Smells :

John Cleese sits at a desk, in a suit. The desk has a sign on it that reads Ministry of Code Smells . In walk a pair of programmers, Eric Idle and (dressed as a woman ) Terry Jones. They are carrying a computer printout.

Cleese: Good morning. We d like to smell your code, please .

Idle: Good morning, sir. Yes, we ve got it right here.

Jones: [Whispers in a falsetto voice] Did you use deodorant on the code this morning, dear?

Idle: [Whispers] Yes, yes, of course I did.

Cleese: Well I ll be the judge of that. Let s have it.

Idle: [Hands over the code] Yes, sir.

Cleese: [Takes a whiff] No, that won t do at all. [Sniffs again] No, that will never do. That is definitely a code smell.

Idle: But I washed it twice, and then used deodorant.

Cleese: No, sorry, you ll just have to refactor that.

Jones: [Shrieks] But I worked all day on that code!

Cleese: Now look here, madam “

Jones: [Gets up and pounds purse on Cleese s desk] No, no, no, noooooooo!

As things developed, we finally found a publisher (thanks, Gary!) who told us we could write the book we wanted to write. Along the way (starting from the version of Imagine that I wrote for the Alice talk), my son, Rob, and I started rewriting lyrics to Beatles songs to parody some of the more amusing aspects of XP as I was driving him to school in the morning, and we hope you ll enjoy the Songs of the Extremos that you ll find sprinkled throughout the book.

At any rate, Matt and I share a common bent for satire that lends its tone to this book. We think there s a whole lot of material that needs parodying, and we hope you ll enjoy our efforts. But there s also a lot of serious stuff in this book, too, and we hope that doesn t get lost among the chuckles.

On a very serious note, I ve persisted with this idea (despite many people encouraging me to give it up) based on a very strong personal conviction : I don t want to be nearby when somebody decides to deploy an air traffic control system or some missile-targeting software that has been developed with no written requirements, and where the programmers made the design up as they went along. [2]

Doug Rosenberg Santa Monica, California June 25, 2002

About the Authors

Matt Stephens first discovered programming at the age of 11 and has continued ever since (he s now in his 30s). He has architected and led projects to create cinema ticket issuing systems, financial payment systems, enterprise alerting software, a graphical CASE tool for configuring an Enterprise Application Integration (EAI) server, and numerous other products. In his current role he is a technical team leader, architect, and agile process mentor for a technology start-up in Central London.

On the Web, Matt s home page is http://www.SoftwareReality.com, a satirical-Web site for software developers.

click to expand
Matt pair-programs with his 7-monthold daughter , Alanah.

Doug Rosenberg of ICONIX Software Engineering, Inc. ( http://www.iconixsw.com) spent the first 15 years of his career writing code for a living before moving on to managing programmers, developing software design tools, and teaching object-oriented analysis and design.

click to expand
Doug is listening for the sound of one man coding.

Doug has been providing system development tools and training for nearly two decades, with particular emphasis on object-oriented methods . He developed a unified Booch/Rumbaugh/Jacobson design method in 1993 that preceded Rational s UML by several years. He has produced more than a dozen multimedia tutorials on object technology, including COMPREHENSIVE COM and COMPLETE CORBA, and is the author of Use Case Driven Object Modeling with UML (Addison-Wesley, 1999) and Applying Use Case Driven Object Modeling with UML (Addison-Wesley, 2001).

Recently, Doug has been spending increasing amounts of time shooting QuickTime VR (virtual reality) photography for fun and profit. You can see his VR photography online at http://www.VResorts.com.

Matt and Doug are collaborating on another book, Agile Modeling with the ICONIX Process (with Scott Ambler and Mark Collins-Cope), due out shortly from Apress.

Acknowledgments

First off, Thank You to Gary Cornell at Apress, without whose permission to go for it there would have been no book ”at least not the book we wanted to write. After two other publishers got cold feet, it was refreshing to see that Apress is prepared to let us say the things we feel need to be said!

Also thanks to our secret third author ”Doug s son, Rob ”for his help with the Songs of the Extremos and many of the satire pieces (especially the Camp Regretestskiy sketch).

Thank you to all the Voice of eXPerience (VoXP) contributors for joining us in speaking what s on our minds. The nonanonymous ones are David Van Der Klauw, Timothy Fisher, and Robin Sharp.

Over at Apress, thanks to Tracy Brown, Nicole LeClerc, Beth Christmas, Kari Brooks, and Kurt Krames.

Thanks to all the people who read and reviewed the book leading up to its publication, and in doing so helped us immeasurably to beat the manuscript into shape, in particular, Dino Fancellu, Robin Sharp (again), Alex Chaffee, John Zukowski, Philip Nortey, Mark Collins-Cope, Jim McKinney, Gary A. Ham, Andy Carmichael, Tim Axelrod, and Steve McConnell.

Matt would especially like to thank his wife, Michelle, for her patience and encouragement to finish the book. And, of course, he d like to thank Doug for getting him involved in this book-writing thing in the first place. And in which case, Doug would like to thank Matt for having the courage of his convictions to write his The Case Against Extreme Programming article in the first place and for keeping the courage of his convictions all the way through.

Thanks to Allen Matheson for letting us use his photo of the Atlas statue at Rockefeller Center; thanks to Chris Starczak at ICONIX; and a big thanks to Arthur Marx, DeDe Merrill, and Bob Finklestein of Groucho Productions for kindly allowing us to use the Groucho icon that appears frequently throughout the book.

And for inspiration, how could we possibly forget

  • John, Paul, George, and Ringo

  • Mick and Keith

  • Randy Newman

  • Groucho, Harpo, Chico, and Zeppo Marx

  • John Cleese, Eric Idle, Terry Jones, Michael Palin, and Terry Gilliam (aka Monty Python s Flying Circus)

[1] Matt Stephens, The Case Against Extreme Programming, http://www.softwarereality.com/lifecycle/xp/key_rules.jsp, August 26, 2001.

[2] By coincidence , not long after writing the closing comment for this preface, I discovered this July 2002 article: http://www.technologyreview.com/articles/wo_sherman071902.asp. It describes a team that is faithfully applying XP to a collision-detection system for the airline industry! In that particular project, XP is being used to address the issue of code quality. The article describes XP as a coding discipline. The worrying aspect of this particular article (aside from the fact that XP is being used on this type of project) is that the team is viewing its problems at the buggy code level. Acknowledging that the team needs to lose the cowboy attitude and learn to cooperate is an important first step. However, the team should be taking a much bigger step back and viewing its organization, its culture, and itself. Coding discipline is important; however, as we discuss later, it is only a relatively minor part of the overall picture (as the C3 team discovered to its peril).




Extreme Programming Refactored
Extreme Programming Refactored: The Case Against XP
ISBN: 1590590961
EAN: 2147483647
Year: 2003
Pages: 156

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net