×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Extreme Programming Refactored

timothy posted more than 10 years ago | from the can-you-remind-me-of-my-mantra dept.

444

fancellu writes "Extreme programming (XP) first hit the mainstream programmer consciousness a few years ago, with the publication of Kent Beck's Extreme Programming Explained. XP was controversial back then (and still is), because it argued in favour of hitting the 'reset' button on accepted software development practices." fancellu reviews below Extreme Programming Refactored: The Case Against XP, and offers this disclaimer: "I should point out that I get a couple of small mentions in this book (the authors quote an email from me), and I also happen to agree with a lot of what the authors say. But I'll try to be as impartial as I can with this review."

The Previous Extreme - What XP Set out to Fix

It had previously been accepted practice to spend months (years, even, on large-scale projects) gathering requirements, then another year or two on design, before a single line of production code had been written. The infamous "big bang delivery" occurred when this gigantic monolith of a software system was finally delivered to the customer, only for the customer to retort that this was nothing like what he wanted.

It was also accepted practice to divide the system into separate subsystems, and attempt to integrate them after several months. By this time, each subsystem would have taken on a life of its own, and integrating these disparate monoliths together gave a whole new meaning to "plug and pray."

How XP "Fixes" It

XP takes the development process to the other extreme, by shortening the "waterfall" lifecycle to weeks, days, even minutes. In fact, Kent Beck describes XP as a "waterfall run through a blender." Iterations typically last for a week or two; there is a high emphasis on code quality via unit testing; and code is integrated "constantly" so that it never becomes out of synch with the rest of the project. Beck is often quoted for saying that the XP practices "turn the dial all the way up to 10" -- that is, if something is good (testing, integrating, pair programming etc), well then, let's do it all the time.

There's a lot to be gained from learning about XP, and agile practices in general. However, many feel that XP has taken things too far. By taking things to the opposite extreme, we're just introducing a fresh set of problems. The optimum solution, then, must lie somewhere between these two extremes. That is fundamentally what Extreme Programming Refactored (XPR) is about.

Optimizing the Process

There's been a lot of controversy surrounding this book. It grew out of an equally controversial article that appeared on the author's website. XP advocates were arguing on Yahoo! Groups over XPR's good and bad points, miraculously, months before the book was even available. XP zealots were even posting messages telling others not to buy the book, before they'd even had a chance to read it for themselves and find out what it's all about.

It's important to note that XPR isn't the anti-XP slam piece that some people had been expecting. It does rip into the XP practices in plenty of detail, but importantly it also describes alternatives, and talks about the good aspects of XP.

The authors make the argument that "turning the dial up to 10" mostly isn't such a good thing, and that to achieve our "holy grail" development process, we just need to turn the dial down a little bit -- let the milk simmer rather than boil over. We can do this by adding in some additional practices that take the burden off the overloaded, heavily interdependent XP practices.

For example, not everyone likes to pair program (with two people sitting at one computer). It just isn't for everyone. However, XP relies on everybody in the team pairing all the time. So if you don't like to "pair up," what choice do you have but to leave the project? XPR adjusts the other practices, placing a bigger emphasis on up-front design and documentation, so that pairing up doesn't have to be mandatory.

XPR also argues that it is possible to achieve a decent design before writing the code. The authors don't want a return to "BDUF" (Big Design Up Front), but instead to achieve an ideal middle-ground. The result is more akin to the monthly Sprints found in Scrum (www.controlchaos.com).

Similarly, XPR argues that the customer (and users) usually do have a pretty good idea what they want from a new system, and that they don't have to see a live system first before realizing that they wanted something entirely different. The authors argue in favour of interaction design as a way of achieving this goal.

XPR achieves all of this with more than a mild dose of satire. It's important to realize this -- the book is essentially "taking the piss" out of the more extreme XP practices, and the quasi-religious Extremo culture that has quickly grown up around XP. It has lots of serious things to say, but has a slight danger of that being lost "in the chuckles." There again, the danger is less to do with the book, and more to do with the reader.

XP sealots will never be swayed by such a book, naturally, but they are not the audience. It is for those undecided, or the cowed XP skeptics who know something is very wrong at the heart of the beast, but haven't have the words to say it. Even for zealots, I'd hope they'd put the hatred for long enough to at least temper their XP actions, to turn the dial down a little, to read the contents with the possibility in their minds that XP isn't the final perfect expression of all programming methodologies. Just for a while...

If you are scared of the contents, a favorite XP accusation, then of course you'll point out the 'needless humour,' blah blah, anything rther than address what the book says. Form will be far more addressable than content. It's the old "ignore this man, he wears a colourful tie" excuse, pick on some small detail that you feel is a weakness and totally ignore all the embarrassing questions you'd rather not address. If you like the contents, then the humour will be seen as a playful, court-jester like addition to what is a seriously analytical book

In conclusion, this book is well written, thought provoking, and above all entertaining (an aspect which seems to be proving almost heretical among some XP advocates). I found this to be a fun read, unlike some books, it was never a chore. It's extremely conversational, like having a cynical, wise-cracking guide. It's a pity more computer books aren't this fun. A spoonful of sugar and all that...

In fact this book is pretty damn wonderful. I know, it may sound a bit gushing, but before you review my review, give the book a read yourself. It's a thing of beauty, a rare mix of positive and negative, sweet and sour, opinion, and XP's favorite emotion, courage, courage enough to say "the emperor has no clothes." I can't see how you could read this book from beginning to end and not see XP in a different light.

In fact, XP programmers would do well to read this book, as it presents the negative path, something other than sunny-day scenarios. Using these warnings and guidelines, they'd have much more successful projects, as this book points out the dangers of lack of XP discipline, fragility and so on.

The truth is that I couldn't do justice to this book in such a short review. There is just so much evidence, so many contradictions pointed out, endless damning words from XPer's own mouths. It was supposed to be a small book to start of with, 150 pages or so, but due to the sheer body of evidence and submitted real life stories from those in the trenches, it bloomed to 400+ pages.

As Doug Rosenberg says "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." At least don't say you weren't warned!


You can purchase Extreme Programming Refactored: The Case Against XP from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

444 comments

Amazon Link (-1, Offtopic)

Sir Haxalot (693401) | more than 10 years ago | (#7154688)

here

Re:Amazon Link (-1, Troll)

Anonymous Coward | more than 10 years ago | (#7154710)

If you weren't in such a fucking hurry to get FP, maybe your link would have worked, cuntmouth. Someone should mod your bitch ass down.

Re:Amazon Link (-1, Troll)

Anonymous Coward | more than 10 years ago | (#7154787)

I hope you realize you wasted 137 bytes by just typing that reply in. This is without the cost of the ip packets, and the cost of the server processing your request, or me reading the above post.

I hope you realize electricity doesn't come for free, and you ruined the environment a little bit more by just posting that totally stupid comment.

I hope this encourages you to stop posting nonsense and save the environment! For the children!

ditto... (0)

Anonymous Coward | more than 10 years ago | (#7154862)

Re:ditto... (0)

Anonymous Coward | more than 10 years ago | (#7154914)

me, too

Re:ditto... (0, Funny)

Anonymous Coward | more than 10 years ago | (#7154948)

You guys are all wrong.

Re:Amazon Link (1)

Sir Haxalot (693401) | more than 10 years ago | (#7154712)

here [amazon.com] even.. sorry about that

OT: Sir Haxalot (was RE: Amazon Link) (0, Offtopic)

TheFlyingGoat (161967) | more than 10 years ago | (#7154866)

Get over your damn karma whoring. Every single post of yours is an alternate link. Having excellent karma is fine and all, but try posting some useful content in trying to gain it. You're not much better than the trolls and crap flooders. Think about it, and at least try posting some additional info with your links. Perhaps a 'this link is better because...' or 'the book is only $x over here and they ship faster'. NOT posted anonymously because I know this will get modded down and I want to make a point with it.

Re:OT: Sir Haxalot (was RE: Amazon Link) (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#7154908)

The pathetic thing about Sir Haxalot is that he has posted 208 comments and not yet received the +1 bonus. It shouldn't take more than 50 post to get +26 karma. You can do it in a lot fewer posts [slashdot.org] even if you have nothing original to say.

Re:OT: Sir Haxalot (was RE: Amazon Link) (0)

Anonymous Coward | more than 10 years ago | (#7154930)

The pathetic thing about Sir Haxalot is that he has posted 208 comments and not yet received the +1 bonus. It shouldn't take more than 50 post to get +26 karma. You can do it in a lot fewer posts even if you have nothing original to say.
Yes, but half my comments are troll comments, so there you go.

Re:OT: Sir Haxalot (was RE: Amazon Link) (0)

Anonymous Coward | more than 10 years ago | (#7155048)

Jesus, I just metamodded the parent and I am the one who posted it. Come on /. coders, you can't moderate a post made from the same ip, why can you metamod one?

Cheaper at Amazon (-1, Troll)

Anonymous Coward | more than 10 years ago | (#7154689)

$3.88 cheaper at Amazon [amazon.com] and qualifies for free shipping. Don't miss, opp. of a lifetime to buy this book on Amazon.

GOATSE LINK - DO NOT CLICK (-1, Troll)

Anonymous Coward | more than 10 years ago | (#7154728)

the link above is a goatse link

STOP COPYING ME! (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#7154802)

I am the original Amazon link troll!!! Stopy copying me and get your own ID, different from mine!

Are you? (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#7154847)

Anthony Martin, (310) 532-8393, 17450 Van Ness Ave, Torrance, CA 90504

Send me a scan of your driver's license, and I will stop.

Re:STOP COPYING ME! (-1, Troll)

Anonymous Coward | more than 10 years ago | (#7154924)

You should complain to
abdullah@abdullah.net

He's the one copy-catting you, not me.

Re:STOP COPYING ME! (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#7155066)

no it's this guy: Anthony Martin, (310) 532-8393, 17450 Van Ness Ave, Torrance, CA 90504

yeah (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#7154693)

she's into something

$4 less and free shipping (-1, Redundant)

Anonymous Coward | more than 10 years ago | (#7154696)

Re:$4 less and free shipping (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#7154715)

Mr. Anthony Martin, you failed.
I'll just call you Tony from now on.

Re:$4 less and free shipping (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#7154996)

42252 BARCHESTER RD
Canton MI 48187
USA

Re:$4 less and free shipping (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#7155031)

That's not his address, it's: Anthony Martin, (310) 532-8393, 17450 Van Ness Ave, Torrance, CA 90504

OMG m$ is t3H SUX0R! (-1, Troll)

Anonymous Coward | more than 10 years ago | (#7154720)

XP 1S 4 f4g$1!!!!1 lun1x 0WN$ J00!!!! !lLOLOLOLOLOL

what a fag (-1, Troll)

Anonymous Coward | more than 10 years ago | (#7154722)

"I should point out that I get a couple of small mentions in this book (the authors quote an email from me)..."

No you shouldn't. There is no point to saying that, other than to try to make yourself feel cool. Don't worry, we know what an assfaggot you really are, assfaggot.

NOW GRUB IS MAD THAT NO ONE MENTIONED HIS NAME (-1, Troll)

Anonymous Coward | more than 10 years ago | (#7154800)

BOO HOO WHAT A SORRY ASS FAGGOT

I just cant imagine what a pigfucking sad little loser you are, assfaggot. When was the last time you fucked your pig, assfaggot?

XP Programming (-1, Interesting)

Anonymous Coward | more than 10 years ago | (#7154741)

We need Extreme programming because, come on guys, lets face it, normal programming is cutting it anymore.

Extreme programming lets us code quickly as well as making the code look neat and formatted. However, one feature lacking is the security checking, which really should be left up to the actually coder.

Everyone out there should buy this book and give extreme programming a try. Once you try it, you wont ever go back to normal programming again, i guarantee it!

Re:XP Programming (1, Informative)

Anonymous Coward | more than 10 years ago | (#7154876)

I have been using XP where I work for over a year now and I must say it is the worst enviroment I have ever worked in. It seems XP is for people who just want to write code and not think about serious design issues or future planning. In the future when looking for a job I will make sure that they DONT use XP. More and more it appears to me that XP is for the hacks out there that never bothered to learn how to do real design work.

Re:XP Programming (2, Insightful)

inertia@yahoo.com (156602) | more than 10 years ago | (#7155034)

But "real design" doesn't work, at least, not very well.

"Real design," as you call it, requires that you keep to yourself, code code code in secret and hope what was defined in the beginning is still what the customer wants.

XP requires everyone to stretch beyond the "standard" development method. But for some reason, developers don't think they need to stretch.

The lack of future planning in XP is not a flaw, it's like that on purpose. I believe that hacking is the best most ideal way to code. XP facilitates hacking on a company wide scale, so even non-developers understand the progress being made.

Extreme Programming Refactored? (-1, Redundant)

Anonymous Coward | more than 10 years ago | (#7154743)

Does it come with a PowerSauce Bar coupon?

Max the envelope, and so on.

Some refinement is always welcome (2, Interesting)

192939495969798999 (58312) | more than 10 years ago | (#7154745)

I am delighted to see that XP has now been revisited and is being shown to not be the end-all of development styles. Perhaps with the slightly less "extreme" version, more managers will be willing to accept the changes. I have never had a boss accept XP, simply because they were scared of it (IMHO).

Absolutely Hopeless and Clueless (2, Insightful)

mihalis (28146) | more than 10 years ago | (#7154747)

The Previous Extreme is pure fantasy. It has been well known for a long time that big bang or waterfall models don't work well. For example see the Ian Sommerville Software Engineering book - it's mentioned the 'spiral' model (iterating out from the core of a small well understood system) for at least ten years. I couldn't read any more of this "book review" after such a bunch of nonsense.

Re:Absolutely Hopeless and Clueless (0)

Anonymous Coward | more than 10 years ago | (#7155007)

How many systems has written and/or designed Ian Sommerville?. Sure, he may have written books and articles, but, is he anything more than a theorist?.

The practical development is very different than the theoretical. Linux kernel is developed in a special flavour of XP, and it works fine, is very modular, scalable,... though it has it flaws. The fact is XP works in a lot of cases.

Re:Absolutely Hopeless and Clueless (5, Insightful)

AJWM (19027) | more than 10 years ago | (#7155027)

Q: What do you get when you combine the waterfall model with the spiral approach?

A: The flush model.

On a more serious note, the waterfall model does work for certain problem domains, notably those where the requirements are well understood in advance and unlikely to change significantly over the course of development, and where reliability of the final product is critical. This assumes you have the resources (time and people) to do it properly -- and this is why the waterfall method has gotten a bad reputation -- it's been applied where there is insufficient time/resources or the requirements aren't well understood.

Most business applications, for example. The waterfull method is wonderfully suited to something like spacecraft control software, where the spiral approach (we called it "stepwise refinement" twenty-five years ago when I was in college -- there's nothing new) just wouldn't work. But businesses are both constantly changing and adaptable -- a business app that only implements half the requested features is probably still more useful than not, where as software to control complex hardware that's only half done is nearly useless (except that some testing can be done, perhaps).

As always, it's a matter of picking the right tool for the job, rather than picking up your hammer and treating everything as a nail.

Ask Slashdot: Have you used Extreme programming (2, Interesting)

kilroy_hau (187226) | more than 10 years ago | (#7154766)

Well, have you?

I'm about to start a project using pair programming (not exactly Extreme, but something like that) and I don't like it one bit

Pair programming is uncomfortable on our reduced space. And it's noisy.

Are the inconveniences worth it?

Re:Ask Slashdot: Have you used Extreme programming (4, Insightful)

bokelley (563370) | more than 10 years ago | (#7154844)

I would have to say that pair programming isn't really worth it. I personally can't stand the lack of productivity that is inherent to having two programmers sit around and watch each other type.

My version of pair programming is to have one developer write a test harness while the other one develops the actual code to be tested. This forces each of them to communicate with each other, generally via a very informal spec or direct communication with the client.

This ties two people closely together with the immediate need, but it doesn't require complete overlap. I'm not convinced that two brains are better than one - typing is an inherently blocking process, and whiteboarding happens either way.

Anway, what good hacker wants to watch someone else type? Or play a game? Or do anything? Coding isn't a spectator sport.

Re:Ask Slashdot: Have you used Extreme programming (2, Interesting)

pong (18266) | more than 10 years ago | (#7155000)

I think that is an incredibly simple and extremely powerful idea!! Sometimes when you have been programming for a while you just need the mental rest you get from working on your own. I think that the next time I feel like a break while pair programming, I will try to suggest to my pair-programming partner that we split up and one of us focus on the tests while the other is doing the production code.

I think it could be especially useful when you are working on a problem that you are not really sure how to solve. The one person can write a test suite, which is a really good way to work out the most flexible and useful interface, while the developer does some prototyping/sandboxing.

Thanks for the great idea!

Re:Ask Slashdot: Have you used Extreme programming (3, Insightful)

bokelley (563370) | more than 10 years ago | (#7155080)

Right. Also, I forgot to mention how incredibly important it is to switch between being the tester and being the coder. If you don't do this then it's too easy for both parties to be lazy, and there's no way to check or enforce the quality of code.

At my current job, I've actually outsourced the implementation of the tests (because we're a very small shop) but I'm making the product manager the only interface with the test developers. This keeps me honest, and has the "nice" side effect of making me document all of my interfaces and APIs since the other developer isn't even in the office.

One benefit of doing this with two programmers on-staff, as I prefer, is that when somebody leaves a project, there shouldn't be a huge drop in knowledge. I left a project a few months ago that was done this way and the remaining programmer, who was quite junior, was able to keep on going without much trouble since she had been exposed to both the testing and development aspects of the project.

Re:Ask Slashdot: Have you used Extreme programming (4, Insightful)

bunratty (545641) | more than 10 years ago | (#7155075)

The point of pair programming is not to force programmers to communicate with each other. Pair programming is "the knob turned to 10" on code reviews... if code reviews are good, then do them all the time, as a programmer is first writing the code.

If you don't do pair programming, you need to replace it with a less extreme version of code reviews, such as simply reviewing each patch before it is checked in. The type of pair programming you describe involves no code reviews, and therefore is no substitute for pair programming.

Re:Ask Slashdot: Have you used Extreme programming (1)

chromatic (9471) | more than 10 years ago | (#7155103)

I would have to say that pair programming isn't really worth it. I personally can't stand the lack of productivity that is inherent to having two programmers sit around and watch each other type.

Non sequitur. Your first sentence talks about pair programming. Your second sentence talks about something that is almost entirely unlike pair programming.

Pair programming is "Hey, let's talk about this problem and write some code as we're going along!", not "Hey, sit behind me and shut up unless I make a typo!" If someone's made you do the latter and called it "pair programming", he was quite wrong.

Re:Ask Slashdot: Have you used Extreme programming (3, Insightful)

sbrown123 (229895) | more than 10 years ago | (#7154856)

Yes, its worth it. Take two programmers: one more skilled then the other. Give the less skilled one the keyboard. Force the skilled guy/girl to have to communicate all typing through the less skilled guy/girl. Less skilled guy/girl not only gets a good understanding of what went into the code (they typed it) but also learns new things from the smarty. Eventually you have two smarties. Repeat.

Who hates the idea of pair programming? Smarties ofcourse. They dont want to lose what they feel makes them special. They are bad for business anyways.

Re:Ask Slashdot: Have you used Extreme programming (0)

Anonymous Coward | more than 10 years ago | (#7154897)

Who hates the idea of pair programming?

I'll tell you - people. no-one wants someone looking over their shoulder, you even want your guru to just sod off for a bit and let you try stuff out yourself. and no-one wants to spend a day that could have been productive teaching, unless they want to be a teacher. there are a lot of them, you can find them in schools.

programming is just not so hard it needs two, here's my requirements, sit down, headphones on, later here's my code. Test and review are all the checks I want, not some bad-breathed bearded anal guy who always has his way of doing something and will accept no other harping on behind me.

Re:Ask Slashdot: Have you used Extreme programming (0)

Anonymous Coward | more than 10 years ago | (#7154977)

I agree 100% with you except instead of headphones on, I require a cone of silence and often a faraday.

In a less than ideal world, a room of white noise (coffee house) becomes the cone of silence and very expensive and bad wi-fi (t moble) becomes the faraday shield.

Re:Ask Slashdot: Have you used Extreme programming (1)

Horny Smurf (590916) | more than 10 years ago | (#7154909)

smarties aren't smarties because they write good code. They write good code because they're smarties.


I think Brookes (Mythical Man Month) claimed a 50 x difference between the best programmers and mediocre programmers. Do you really think having joe superprogrammer dictate code to joe retard is going to help joe retard's skills?


I think you should take a refresher course in economics. Focus on the "division of labor" part.

Re:Ask Slashdot: Have you used Extreme programming (3, Insightful)

Don Calamari (144891) | more than 10 years ago | (#7155006)

How true. Everybody knows the most profitable companies are run by drooling troglodytes. I'm just kidding, I'm sure you mean the prima donnas who nobody can stand...

Anyway, I've found you simply cannot get 2 good coders by shackling one good and one poor coder together. The bad one generally doesn't learn anything and the good one just gets frustrated and angry.

Pair programming might work if the poor coder had a desire to learn, but it's been my experience that this usually isn't true. Learning to be a good coder does not happen by proximity and osmosis.

Re:Ask Slashdot: Have you used Extreme programming (0)

Anonymous Coward | more than 10 years ago | (#7155020)

Why not just fire the "less skilled" (see incompetent .Com web developer) and leave the one that can produce alone. Better yet fire the "less skilled" one and get a real programmer to replace him/her and get 10x as much done. Pair programming bah! If I wanted to teach I would've become a teacher.

Re:Ask Slashdot: Have you used Extreme programming (0)

Anonymous Coward | more than 10 years ago | (#7155046)

>>Eventually you have two smarties.

Think of the risks, man! What if instead of two smarties you wind up with two dullards who can't code diddley-squat?

>>repeat

Ye Gods! If those two dullards corrupt two more dullards, and those dullards all corrupt two MORE and so on, then within weeks you have the TOTAL BREAKDOWN OF SOCIETY! Just a bunch of dullards running around shouting at each other about TQM and ISO9000 and who ate the last cream-cheese danish! ANARCHY!!!

Re:Ask Slashdot: Have you used Extreme programming (0)

Anonymous Coward | more than 10 years ago | (#7155074)

No kiddin homes first it was tha CIA witha crack now a brotha gotta worry bout tha man makin mad money off of da backs of da smarties?

Re:Ask Slashdot: Have you used Extreme programming (1)

geoffspear (692508) | more than 10 years ago | (#7155073)

Wouldn't it be better for a project to get rid of the bad programmers and let them go off and learn how to code for themselves, instead of having a good programmer dictate code to them?

Most people, I think, can type their own code a lot more efficiently then they can dictate code to someone else. Unless they learned to code using some sort of voice recognition system instead of a keyboard.

Re:Ask Slashdot: Have you used Extreme programming (-1, Troll)

Anonymous Coward | more than 10 years ago | (#7154863)

pair programming is hell.

some things might be worth that, but not many.

Re:Ask Slashdot: Have you used Extreme programming (1)

tcopeland (32225) | more than 10 years ago | (#7154886)

> Pair programming is uncomfortable on our
> reduced space.

Sounds like someone needs to provide your team with pair programming-friendly space. A wide desk is a start.

> And it's noisy.

What's noisy? The space you're in? The other people? The person you're pairing with?

> Are the inconveniences worth it?

Those inconveniences aren't intrinsic to pair programming. Don't give up yet...

Re:Ask Slashdot: Have you used Extreme programming (5, Funny)

pmz (462998) | more than 10 years ago | (#7154887)

Pair programming is uncomfortable on our reduced space. And it's noisy.

Are the inconveniences worth it?


If your partner is really hot, then yes.

Re:Ask Slashdot: Have you used Extreme programming (1)

Don Calamari (144891) | more than 10 years ago | (#7155054)

These are programmers. Remember? There are no hot ones, except me, yeah only me...

Re:Ask Slashdot: Have you used Extreme programming (2, Insightful)

e40 (448424) | more than 10 years ago | (#7154894)

You said "about to" but then say you don't "like it one bit". Hmmmm, sounds like you made up your mind *before* trying it. Tsk, tsk.

The truth about pair programming is that only the right mix of personalities and skills will work. I've done it with people where it worked great. With others, really badly.

Re:Ask Slashdot: Have you used Extreme programming (3, Insightful)

javatips (66293) | more than 10 years ago | (#7154999)

The concept of pair programming already exist in a good team. No need to force people to work all their time in pair.


When you have a good and balanced team, pair programming will occur naturally. At some point someone is having stuck on some problem (design, bug, ...). In genral, the person will ask one of his fellow team member help to solve the problem. Natural Pair Programming! This is much more effective than having 2 persons work on the same problem (which is trivial 80% of the time).


I believe that Natural Pair Programming with mentoring and code review are a lot better than full-time pair programming. This will help junior developer get up to speed more quickly without having to have two brains waisting their time on trivial problems.


I also like the idea of the other poster saying that you can have one developer write the Unit Test while the other write the business code (you should inverse roles often though). This also benefit having two brain work on different thing while maintaining synergy and increasing the odd of catching bugs.

Pairing works...sometimes (3, Insightful)

AFirmGraspOfReality (689182) | more than 10 years ago | (#7155037)

I've been though a lot of XP. I feel pairing is one of the more crucial aspects of XP. In other words, if you don't pair, you're not doing XP. Make no mistake, pairing is not for everyone. Do you have a cranky,maverick,social misfit who writes brilliant code? Let 'em...don't try to force 'em to pair. Pairing works when a) the people want to pair, b) the people are socially compatible. Pairing forces you to code...no surfing or other dicking around. One coder grabs the keyboard/mouse and does some work, say throwdown a new class or method. Or, more likely, code the test class first. Keep going until you feel "empty" or tired, then pass the torch. The other coder watches and contemplates the code, and offers advise. They are an instantiation of YOUR coding conscience. Coding alone, you may say to yourself "fsck it..i'll clean it up later", but while pairing, the other coder's duty is to say "why are you doing it that way? How about this?" and so on. It has to be COLLABORITIVE, not COMBATIVE..although that happens. If you pair, make sure pairs are always rotating...don't let the same folks always pair. Keep the pairing times short...half day is plenty. Pairing helps to eliminate "hot spots" in the skill set...i.e. experts in one area. It will not eliminate it...people will naturally gravitate to the things they like. Pairing will tire you out, as you tend to "go hard" (==productive) for the day. I think some of the best code I've written was while pairing...if I factor in time spent/unit coded. I've written some brilliant stuff alone, but it took longer. REMEMBER: the other half of the pair who does not have the keyboard must stay involved...question the codier, try to find flaws. They are not just sitting there watching the other half. If you see a pair talking to each other and looking at the screen and pointing, and passing the keyboard back and forth, and just cranking...you've got a good pair. Pairing works, if the pairs work. read this too: http://www.objectmentor.com/resources/articles/xpe pisode.htm

Re:Ask Slashdot: Have you used Extreme programming (0)

Anonymous Coward | more than 10 years ago | (#7155093)

You don't really have to sit at the same computer. But you do need to constantly review each others' code. So much so, that you almost forget who wrote what. You know your partner's code so thoroughly it's as if you wrote it yourself.

Both people in the pair take full responsibility for all code written by the pair. You can never say "oh, John wrote that bit..." in response to a bug or a question.

Sometimes it is good re-inventing the wheel (0)

Anonymous Coward | more than 10 years ago | (#7154771)

I've read many books of this type but this one stands out. Its not just another "lets think of it in another fashion" book. Instead of just saying that "hey lets reinvent the wheel" it points out what is wrong with the "wheel". Its tells you the shortcomings of today's practices and most importantly, it describes how one can make programming a bit less tedious.

All in all, a great book.

You put your chocolate in my peanut butter (5, Funny)

Anonymous Coward | more than 10 years ago | (#7154773)

XP and refactoring. Two over-blown buzzwords that go great together.

the customer (and users) usually do have a pretty good idea what they want from a new system

This a most telling quote as most developers have never talked to an actual customer in their entire career.

I think the next programming movement should be called XTTFC for Extreme Talking To a Fucking Customer.

I HEAR THERE'S THIS NEW FANGLED MACHINE CALLED... (-1, Troll)

Anonymous Coward | more than 10 years ago | (#7154784)

...a computer! It's much more flexible than machines made before it because it isn't fixed in what it does. With the appropriate instructions this consarned machine might even make coffee for you one day folks! I hear tell that this machine can do millions of things a second. Hehehehe... well I'll tell ya, what good is a machine that can do a million things a seconds or more when I've only got two hands! But, these here innovators at some new place that just set up a shingle in town are trying to get folks interested in something called Winders. I guess in some way, it kind of gives you millions of hands to control all the levers and pulleys in this here computer but you only have to use one or two hands. Them smart alecks might just have something there. But then again what do I know? I'm just a simple farmboy from Columbus Ohio. (That's A-hya to you furiners!) There's also some commie idiots who's got designs on the machine as well. Some guys named Linus Torvalds and Richard Stallman. I'm tellin' ya, I just don't like the sound a them two boy's names. What kinda names are Torvald's and Stallman anyways? I don't think they're good christian Americans. Something's rotten in Denmark if'n ya ask me. So we have to be careful and make sure no dirty commie or devil worshipper gets their hands on one of these here computers. After all if the devil will find work for idle hands, imagine what he'd do with millions of idle hands in a computer!

Definition of a review (4, Insightful)

sphealey (2855) | more than 10 years ago | (#7154786)

Perhaps I have been reading the New York Review of Books too long, but when I read a "review" I like to see some quotes from the actual book, some arguments for and against, some footnoted references to counter-arguments (it is fine if the reviewer considers the counter-arguments weak, as long as they are noted). In other words, something more than a prose advertisment.

sPh

Re:Definition of a review (1, Offtopic)

Rick the Red (307103) | more than 10 years ago | (#7154823)

Then write a book review yourself. Slashdot doesn't hide the link [slashdot.org] .

Definition of a review Review (3, Funny)

thrillbert (146343) | more than 10 years ago | (#7155036)

I don't think he want's to review his own book, that would mean too much reading. He's opting for the easier way out, which is to review the review.

So to continue the trend, I will review the review of the review:

I feel the author was self serving while complaining about the original review. Although this review may not have been a "New York Times" quality review, the substance of the book was aptly reviewed, making the review of the review quite useless.

---
Tomorrow we review the review of the SCO code by SGI.

Factual errors (3, Informative)

linuxislandsucks (461335) | more than 10 years ago | (#7154793)

there are numerous factual erros on what xp is in this book..

One example..if using xp must pari program..

wrong! XP like any software process allows you take and use only those features that work with your project something this book author forgets to point out...

Re:Factual errors (4, Insightful)

tcopeland (32225) | more than 10 years ago | (#7154842)

> XP like any software process allows you take
> and use only those features that work with
> your project

Sure, you can do whatever you want. But XP without pair programming isn't XP, it's.... something else. "Pretty Adventuresome Programming", maybe.

Some folks don't like XP because it's hard - it's hard to write unit tests, and it's hard to pair program and share knowledge and so forth. That's fine... but if you're rejecting XP because you don't like doing those things, don't blame XP.

Re:Factual errors (1)

MacGabhain (198888) | more than 10 years ago | (#7154903)

If memory serves, Beck disagrees.
Unit testing frameworks can be put in independently of the rest of the XP system. Pair programming maybe. Everything else is only postulated to work on an all or nothing basis.

Then how come every shop doing XP *INSISTS* on it? (1)

Svartalf (2997) | more than 10 years ago | (#7154919)

It's such that pair programming is SYNONYMOUS with Extreme Programming.

Every shop I've talked to, up to this date, about a job that did XP as their development methodology were strongly into the pair-programming along with everything else. I'm not sure WHY they seem to think that pair-programming is an absolute must with XP, but all the shops using it seem to think so.

Middle ground? MIDDLE GROUND?!? (4, Funny)

burgburgburg (574866) | more than 10 years ago | (#7154806)

Have you not been paying attention? This is the land of EXTREEEEEMMMMEEEE!!!!.

Reasonable, well thought out, non-extreme methods mean the terrorists have won. Oh, wait. That's a different article.

Anyway, how do you scream at the top of your lungs "MIDDLE GROOOOOUUUND"?

the /. icon (offtopic) (0)

Anonymous Coward | more than 10 years ago | (#7154820)

hey, the /. favicon's got a transparent background! W00t! (?)

Maybe a result of eXtreme Programming in the /. code monkey dept?

Balance (3, Interesting)

randall_burns (108052) | more than 10 years ago | (#7154824)

The XP guys _have_ made a mark in the world. Now, how that is going to work out longer term, remains to be seen. XP _is_ influecing stuff like IBM's Rational Unified Process.

I tend to like XP. I haven't worked in an XP shop, but I have used it in class projects and some project of my own.

Right now, lots shops have processes that are non-existant or chaotic--that is what XP really needs to be compared against. XP isn't "the emperor" more like an upstart prince edging in on the territory of being eyed(but not governed) by Emperor RUP.

My gut is that was is motivating books like this:
is the fact that XP is being adopted in places where stuff like RUP just would never get a toe in the door in its present state.

The major stages of the opponents of an invention:
a) it won't work
b) its evil
c) its not really new
d) we invented it

This stuff strikes me as somewhere between stage a-b.

Sheesh. (3, Insightful)

Earle Martin (647758) | more than 10 years ago | (#7154845)

"I should point out that I get a couple of small mentions in this book (the authors quote an email from me), and I also happen to agree with a lot of what the authors say. But I'll try to be as impartial as I can with this review."

If there was a book called "Why Linux Sucks", and I contributed to it, and I agreed with it, would that make me a fair reviewer for it? You can find links to some possibly less biased reviews [softwarereality.com] at softwarereality.com. It's also worth reading the comments [softwarereality.com] on the Case Against XP [softwarereality.com] article on the same site, by one of the authors of the book.

Nothing beats... (5, Insightful)

boomgopher (627124) | more than 10 years ago | (#7154855)

having a team of programmers who:

Like to program,
are properly trained and schooled,
who are paid enough,
and are given enough time to do the job right.

Everything else is fluff or a fad.

Re:Nothing beats... (0)

ViolentGreen (704134) | more than 10 years ago | (#7154978)

Well of course that's the optimal situation. In reality, companies do not have infinite resoures and time to complete each project. I know very little about XP but it seems that one of it's benifits is it's light on time.

Re:Nothing beats... (0)

Anonymous Coward | more than 10 years ago | (#7155065)

Couldn't agree more. No management gimmick is going to make a team work better than having a bunch of smart, qualified, clever, and motivated workers on your team.

However, someone might reply, "Of course, but the question is 'What system will make the best use of the workers I have?'"

It's like asking "What's the best form of government?" and receiving the reply that the best thing to do is fill your country with good, honest, law-abiding citizens. Great, but what do I do with the imperfect citizens I have?

If you don't have a bunch of smart, qualified, clever, and motivated workers on your team, there is no silver-bullet- no managment gimmick that will score you an automatic win. The trick is to have a smart, qualified, clever, and motivated manager who can pick and choose pieces of various management gimmicks and tailor them to the team he/she is working with.

If you have a crappy team and a crappy manager, I don't care what method you use, you're screwed.

Is this a review or a rebuttal? (3, Interesting)

Maclir (33773) | more than 10 years ago | (#7154870)

I would have like to have seen less of the pre-emptive rebuttal and more reviews on some of the findings and recommendations.

Drop the dogma and theology, and give us the hard core, nitty-gritty, down and dirty facts.

Maybe he shouldn't have reviewed it... (3, Insightful)

matchlight (609707) | more than 10 years ago | (#7154874)

After reading the disclaimer "I should point out that I get a couple of small mentions in this book (the authors quote an email from me), and I also happen to agree with a lot of what the authors say. But I'll try to be as impartial as I can with this review." I was a little skeptical. It's pretty easy to enjoy a book that uses your ideas for content. I know it's not an entire book written around one e-mail but it's always a nice stroke to the ego to be found printable. That aside I think that although he did point out that the the writer is fair in his addressing the good and bad of XP and that the review is likely close to the truth, I feel as though the reviewer has taken more than great lengths to defend the book against the nay-sayers and "zealots". I'd like another review before running out to pick it up.

Bollocks to "software development practices" (2, Informative)

Boss, Pointy Haired (537010) | more than 10 years ago | (#7154879)

Look,

Nobody should shun any alternative aproach to software development in favor of established "software development practices" when a huge percentage of projects, very very close to 100%, come in late and massively over budget .

Re:Bollocks to "software development practices" (1)

MosesJones (55544) | more than 10 years ago | (#7154949)


Not at my place, 97% on time, 94% satisfied customers.

And that is using RUP.

XP v the Engineer (2, Interesting)

MosesJones (55544) | more than 10 years ago | (#7154881)


I'm one of those people who have seen XP tried and failed, and to be honest I never found it a suprise. I was educated to be a software engineer, and that the best way to deliver software effectively is to understand the problem domain. Iterative models like RUP or DSDM are great ways of delivering functionality quickly... XP is not... however there are some ideas in XP that are completely un-original that can work

1) Pair programming - first seen in the "Surgical Team" idea from the mythical man month

2) Unit Tests upfront - first seen in the 60s with the moon landing and space programmes.

3) Iterations - First seen during the 80s with the rise of object oriented systems

The ONE original idea in XP is simple...

You don't need requirements before you start coding. For godsake that is a friggin DILBERT cartoon.

XP assumes the John Wayne school of hacking, just hack hack and your talent will get you through. The reality is that if you are brilliant ANY process would be okay, and if you aren't you need more process to make sure you don't FUBAR things.

I loathe XP, its a strong word but to me it represents the Microsoft view of software in its documented form. Quality doesn't matter, it isn't engineering...

Its just lobbing together some-stuff.

I'm an engineer... what are you ?

Re:XP v the Engineer (4, Insightful)

tcopeland (32225) | more than 10 years ago | (#7154980)

> the best way to deliver software effectively
> is to understand the problem domain

That's part of the process, yup. And there's a lot of other stuff, too.

> You don't need requirements before you
> start coding

What about the planning game? What about user stories? Read this [xprogramming.com] for better information on XP requirements gathering.

XP has the concept of figuring out what customer want... but XP doesn't demand that you and the customer pretend that every detail of the system is in a bunch of white binders filled with stuff like "the system shall...". Instead, you and the customer work together to develop a system that meets the customer's ever-changing requirements.

> if you aren't you need more process to
> make sure you don't FUBAR things

That's the beauty of XP - it assumes that we aren't geniuses and thus we use unit tests, refactoring, pair programming to keep the code under control.

Re:XP v the Engineer (1)

Quill_28 (553921) | more than 10 years ago | (#7155002)

I understand you are not fonding of XP in general

How do you feel about:

1) Pair programming

2) Unit Tests upfront

3) Iterations

Do you feel these are good things?

Not gonna happen... (1)

C Joe V (582438) | more than 10 years ago | (#7154905)

In fact this book is pretty damn wonderful. I know, it may sound a bit gushing, but before you review my review, give the book a read yourself.

I seriously doubt anyone will do that. In fact it's pretty likely people will opine on the book without having read either the book or the review! Are we going to see "RTFB" in book review discussions now?

Not only did the reviewer gush about the book, there was a little bit of gushing about the book's message (and bashing of its predicted detractors) that wasn't really informative about the book itself at all. It would have been better to devote more space to discussing what the authors actually said, so I'd have some incentive to read the book other than the satisfaction of seeing my point of view supported.

JCV

Oh well (1)

coolmacdude (640605) | more than 10 years ago | (#7154951)

What XP Set out to Fix
XP set out to fix a lot of things.

How XP Fixes it
Unfortunately it fixed few of them.

Somewhere in between (1)

heroine (1220) | more than 10 years ago | (#7154983)

The real answer is somewhere in between XP and formal architecture. You need practical experimentation and you need design together to finish anything. A purely extreme programming environment would go around in circles without heading to a goal. A purely architectural environment would never get a practical solution.

read my lips: there is no cabal (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#7154990)

conflicts of interests?

Bush cabinet comprised of pro-israel members vertitably baying for war in the middle east?

Bush cabinet PERSONALLY gaining financially by effects of war?

if this was made up, you wouldn't beleive it. Unfortunately, its real. very real.

If i criticise Sharon and Israel, why does that make me an "anti-semite".

If i criticise Mugabe and Zimbabwe, why does that not make me a racist with a hatred of black people?

The difference, is in who does the accusing...

open your eyes. we're all in serious trouble. Bush and his government have gone mad.

www.whatreallyhappened.com

Am I the only one who gets funny images from XP? (1)

CosmeticLobotamy (155360) | more than 10 years ago | (#7154994)

When I hear XP, I always imagine big, swooping camera movements at weird angles with a big, flashy logo and an over-excited announcer for a guy debugging a double-freed pointer.

My experience (5, Interesting)

OYAHHH (322809) | more than 10 years ago | (#7155032)

I cannot attest to actually having been involved in any project which used XP as defined but I can say the following about what I consider similar:

I used to work at a company that strangely enough fostered both getting things done quickly for some projects while fostering a long drawn out method for other projects.

The company was a consulting firm which always needed an answer yesterday for this or that problem.

They also wrote fairly large simulation packages for the FAA. Some of these projects would go up to three years. Lots of planning etc. was usually done.

Regardless of which type project I worked on I always tended to be the type who would get something working quick and then iterate over it several times if necessary.

Others tended to be going at what I considered to be a snails pace mode. They would plan for days, weeks, months on something that I never considered worth that much planning.

I could usually have a pretty good prototype working with a couple of major revisions made before the "planning types" could even get out a initial prototype.

But, over the years I noticed that I (and those like me) tended to get "officially finished" in about the same amount of time that the annoying guys who planned everything out to the Nth degree got finished.

Was my product any better than their's? No not really.

Which methodology was better? It's hard to say, I know I certainly always liked to utilize new methodologies that worked well while they liked to stick with the tried and true.

About the only thing that I can say is that my internal company clients usually appreciated that they had something to work with earlier rather than later.

They knew it was a rough version, but hey, if you need it now, you need it now. And two years from now may not pay the bills.

So, lots of times I came out looking like a hero.

But, looking back on it now I'd have to say that my own personal version of XP wasn't any better than my counterpart's long drawn out process, at least in terms of a final product.

My $0.02 worth.

Sorry if I was too far off-topic...

Loverly Staw Man you have there. (3, Insightful)

MacGabhain (198888) | more than 10 years ago | (#7155035)

As Doug Rosenberg says "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." At least don't say you weren't warned!

XP, like any other process, fits some places and doesn't fit others. While some XP nut-cases may claim otherwise (just like people who market Rational products may claim that RUP should be used for everything), I've never seen the claim made in the pro-XP literature that XP was good for everything.

XP is appropriate for projects where:

Requirements are likely to change or are not well understood.

The customer is readily available

The team is reasonably experienced in the tools being used

etc

Air traffic control and missile guidence, while hopefully satisfying the third item up there, don't satisfy the first two. The customer is generally unavailable (I'm guessing here), and the requirements are understood remarkably well. Further, since these would be critical government projects, you wouldn't even have the choice to use XP. Heavy up front documentation is the only way to go on them.

Perhaps a better statement would be "I'd hate to be around when a major company decides to deploy an accounting system that has been developed with written requirements that aren't in the form I'm used to (user stories) and where the programmers modified the design to suit shifting requirements as they went along." Except, of course, that that is exactly how XP got started and it worked just fine (on a project that had previously been failing).

Paired Programming (1, Insightful)

Anonymous Coward | more than 10 years ago | (#7155072)

> For example, not everyone likes to pair program
> (with two people sitting at one computer). It just
> isn't for everyone.

You know, there are places where pair programming is very helpful. It's part of the job. This whole touchy/feely "it's not for everyone" stuff is BS...it's for people who want others to work around their quirks. We're not freakin' artists, we're software engineers.

extreme evile, ?pr? bullshipping scam, refractured (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#7155084)

that's right. the same old whore'sp00pIE won't do it for US anymore. the daze of the phonIE payper liesense hostage ransom corepirate nazi stock markup FraUD execrable are #ed.

lookout bullow.

consult with/trust in yOUR creator....

need some 'stuff that matters', to read, again?:

"It takes a long time to teach the judges, legislators, and public to understand technology. Right now, they're getting a strong dose of "education" on the Internet's threats and harms, and not hearing so much about its potential. Shouts of "piracy" often outweigh consideration of how we might communicate with more open media formats, but judges like Stephen Wilson in the Grokster case are starting to listen through the shouting. We're encouraging more people to think about how the law shapes technological innovation, how the technology itself can foster creativity, and then to do something about it to advance the public interest."--

"The stability of the large world house which is ours will involve a revolution of values to accompany the scientific and freedom revolutions engulfing the earth. We must rapidly begin the shift from a "thing"-oriented society to a "person"-oriented society. When machines and computers, profit motives and property rights are considered more important than people, the giant triplets of racism, materialism and militarism are incapable of being conquered. A civilization can flounder as readily in the face of moral and spiritual bankruptcy as it can through financial bankruptcy."

STILL, the ONLY 'controversy' about the gpl, gnu/linux, etc..., is coming from the phonIE payper liesense softwar gangster stock markup FraUD execrable/walking dead contingent.

Major problems with this book (4, Informative)

HenryFlower (27286) | more than 10 years ago | (#7155091)

The XP advocates are not as far out or as hard line as one would think reading this review, or the book to which it refers (disclaimer: I've not read the book, but have read much of the source text which appeared on the authors web site). There are debates on the extremeprogramming Yahoo group constantly about how far to push emergent design versus design up front (one of the major advocates of XP, Martin Fowler, takes a dissenting view on this matter), about pair programming and how to manage people who don't pair well, etc. There is also a fair bit of self-directed humor by the major advocates for XP. XP needs thoughtful critique, and books (such as Pete McBreen's) that do this are well received.

The web-posted material on which this book is based is not a thoughful critique. It is parody, yes, but not a critique. One of the central points made is that XP requires, e.g., strong unit testing and refactoring to work. Yep. If you don't do that, XP doesn't work well. Yep. These are points no XP advocate denys. The material ends up making the claim that if you don't do XP you can't do XP. This is quasi-interesting, if utterly obvious, but not the basis for a book-length attack on XP.

Skip this book and buy McBreen's if you want to read a critique. Join the Yahoo group and state your critique thoughfully, and read how some of the major thinkers in XP respond. Then make up your mind.

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...