Fog Creek Software
Discussion Board




Extreme Programming (again)

Just found this article on Salon.com about the origins of Extreme Programming. It's given me more insight into what XP is than any other article or website I've read.

http://www.salon.com/tech/feature/2002/05/29/extreme_programming/index.html?x

Some of what Beck says sounds like the kind of marketing fluff self help guru's espouse:

"If you think you're doing XP, but all you're really doing is a little bit of testing and weekly planning sessions, you haven't fundamentally changed the social contract yet."

It's fun to learn of where and when and in what situation XP was developed.

MarkTAW
Tuesday, June 04, 2002

Ok, who actually has a job where there is a formal methodology in place (either 'big M' or 'little m')? 

We have a process where I work, for sure, its called 'code-and-fix' and its pure, utter chaos.

I've come to believe that software engineering books are a fine form of fiction, for I have never seen a shop that wasn't like mine.

wish you were here
Tuesday, June 04, 2002

Gads,

Based on that quote alone, I'd say he just shot himself in the foot.  But...  it is taken a little bit out of context.  The paragraph preceding says:

"Beck downplays the argument that XP is an all-or-nothing approach. Still, he does note that the project leaders who report the most success with the methodology tend to be the ones who put aside the cultural obsession with rigid specs, an obsession inherited from less flexible fields such as civil and mechanical engineering, and approach XP's design-on-the-fly philosophy wholeheartedly."

Anyhow, to dredge this subject back up  :)  IMO, if you read one book on methods, I recommend "Agile Software Development" by Alistair Cockburn.  I know, I mentioned this before... 

Let the methods match the project.  Like load matching (a EE term), maximum power transfer occurs when source matches load - or if you like the complex conjugate of the 2 (pedantry).

One thing which makes itself evident is that engineers do not like being told what to do.  They must buy into it.  Beck does himself a disservice by making statements which impose what should be a lightweight method in a heavy handed way.

Back to Cockburn:  its a little bit light on prescriptions, until you get to the back of the book, about the last 1/3, when you see his Crystal Clear, Orange, methods.  Darker colors note heavier weight.  What it does: it forces you to think: what is the optimial tradeoff for my project in terms of discipline vs. velocity (to borrow an XP term).

One little note from the field.  We delivered a some new "beta" code to SuperComm this week (its running in Atlanta right now, I had to stay and do new stuff for some new contracts in Europe, so I didn't get off the reservation).  We added PVR (so called personal video recording, at TiVO (TM) like function - chose your programs, save 'em to disk, play 'em later).

The point, the point...  the point:  we were very deliberate -
1. XP like planning game.  But no CRC cards, instead Jole spreadsheets (OHNO, its not really XP! - ask me if I care...)
2. Martin Fowler "public not published" interface definitions,
3. Re-wrote test harnesses as we went (note: not before, I find that ridiculous, especially in real-time systems - testing blocks of code without a running context makes little sense).
4. No pair programming.  When we were doing integration, C layer interfaces into JNI for java to hook into and out of, we had what I considered a best-case opportunity to try PP.  I offered, my potential partner declined, and I didn't push it.  Its not something people are conducive to.  When I found a bug in his code, I mentioned it, he fixed it.  Same happened vice-versa.  I think, in this instance, we could have been more productive (in all aspects of the term: time, quality, output) doing PP here.  But it was not worth the disruption for what was working.

So now we're showing some very cool PVR stuff at Supercomm.  Our competitors are not.  This isn't why I became an engineer (amateur radio was that), but its why I continue to love it.

Nat Ersoz
Tuesday, June 04, 2002

I haven't read to far into it yet but I had to comment on this line:


"In a software program filled with dozens of dyslexia-inducing commands, pseudo-words such as "CallOutOriginal," "CallOutCopy" and "CallOutFormRequest," it lurked invisible, and dangerous, like a piece of broken glass on a linoleum floor"

wow, I wish when I coded it could be described with such drama. Maybe I'll hire a author to sit beside me and describe to me the utter boringness that is 70% of coding in a way that sounds exciting. "He typed in a rapid fashion, eloquently caressing the keys in a dance of digital magic, ever aware of the hidden danger of one missed keystroke that could lead to world catastrophe."

Ian Stallings
Tuesday, June 04, 2002

"He typed in a rapid fashion, eloquently caressing the keys in a dance of digital magic, ever aware of the hidden danger of one missed keystroke that could lead to world catastrophe."


Can I put that in my .sig file?

Matt Woodworth
Tuesday, June 04, 2002

Or more truthfully....

"He typed in a rapid fashion, eloquently caressing the keys in a dance of digital magic, ever aware of the hidden danger of one missed keystroke that could lead to a diabolical compile error."

Tony
Wednesday, June 05, 2002

"He typed in a rapid fashion, eloquently caressing the keys in a dance of digital magic, ever aware of the hidden danger of one missed keystroke that could lead to world catastrophe."


im definitely using it in my random sig.....if I was capable of being that creative myself Id have given up programming years ago....


"he sighed sadly and moved away, aware that  the world was full of people more intelligent then himself, understanding that he could never compete, and unwilling to use the years left to him to try....."

this may well be joel...but most likely its not
Wednesday, June 05, 2002

----------------------------------------------------------------------
Some of what Beck says sounds like the kind of marketing fluff self help guru's espouse:
---------------------------------------------------------------- Mark

His ability to spout marketing fluff is probably one of the things thats put XP on the map.  Unfortunatly, methodologies are pushed on developers by those that appreciate the fluff more than the technical arguments.  This is probably why methodoligies have such a bad name.

Ged Byrne
Wednesday, June 05, 2002

Tony wrote:
<<He typed in a rapid fashion, eloquently caressing the keys in a dance of digital magic, ever aware of the hidden danger of one missed keystroke that could lead to a diabolical compile error.>>

Exactly what I was thinking when reading this:

<< "Right here," Clarke said, pointing toward a line of source code on the screen. "Looks like you left out the second 'i' in 'original' on line 172.">>

Yeh right, like I need a pair programmer to tell me what hitting the Compile button would have pointed out within 0.1 seconds.

The only other option I can think of is that the two of them decided in their ultimate wisdom that declaring both "original" and "orignal" variables was a good idea.

Jan Derk
Wednesday, June 05, 2002

Well, apparently the other one was having trouble "scouring the list of error messages". Probably because he was being distracted by "solid green" status bars and "red tinges". :-)

Frederik Slijkerman
Wednesday, June 05, 2002

I found the missing 'i' strange too, but there are languages that don't raise compiletime errers when you suddenly pull a variable out of nowhere and bind it.

Anon
Wednesday, June 05, 2002

Anon wrote:
<<there are languages that don't raise compile time errors when you suddenly pull a variable out of nowhere and bind it.>>

So the conclusion would be that Pair Programming is great when you are working with crappy compilers ;) Or a good compiler/IDE is your best pair [still joking, but it does not sound that weird].

But seriously, while Extreme Programming contains several interesting features, it is just as overhyped as DotNet. Apparently programmers are easy believers when it comes to the next silver bullet which promises to speed up software development a few times.

IMHO the biggest factor in efficient software development is common sense. So I propose the next step in the evolution of software development: Common Sense Programming (CSP). [I better stop now before I type more nonsense]

Jan Derk
Wednesday, June 05, 2002

it has to be said though, that 'dumbed down' descriptions of errors like that are probably necessary to help non-programmers get the idea.
Trying to explain even a fairly simple bug in user terms really isn't that straight forward.  Every now and then I try it with my partner, she's smarter than myself by far, but has no interest in programming.
She mostly gets what im saying eventually....yet I am always struck by how much background is need to explain things...

hmmm...its 3:45 am again....I reckon I see more of this time than I do lunch times....my clocks *always* seems to say around 3am
Wednesday, June 05, 2002

"Apparently programmers are easy believers when it comes to the next silver bullet which promises to speed up software development a few times."

Programmers are?  Oh, give me a break!!

"IMHO the biggest factor in efficient software development is common sense."

Attn: team
From: MANAGEMENT
Re:  CSP

It has recently come to our attention that Common Sense is a valuable resource in our development efforts.  As with all scarce resources, we must make all efforts to use it as little as possible and only when necessary.  Should you believe you have a real need for Common Sense, please consult your supervisor for appropriate rationing in accordance with our new policy.

We appreciate your cooperation.

Joe AA.
Wednesday, June 05, 2002

I get depressed whenever I see the word "hype." Sometimes it's apt, but it's always a sure sign that people have closed their minds. How certain are you that XP has nothing to teach you?

Adam Spitz
Wednesday, June 05, 2002


I read that .NET has support for XP built right in. This will certainly increase programmer productivity.

Zwarm Monkey
Wednesday, June 05, 2002

*  Recent Topics

*  Fog Creek Home