×

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!

The Programmers Go Coding Two-by-Two — Hurrah?

timothy posted about a year and a half ago | from the simple-chronic-pairitosis dept.

Programming 318

theodp writes "The Wall Street Journal reports that pair programming is all the rage at tech darlings Facebook and Square. Its advocates speak in glowing terms of the power of pair programming, saying paired coders can catch costly software errors and are less likely to waste time surfing the Web. 'The communication becomes so deep that you don't even use words anymore,' says Facebook programmer Kent Beck. 'You just grunt and point.' Such reverent tones prompted Atlassian to poke a little fun at the practice with Spooning, an instructional video in which a burly engineer sits on a colleague's lap, wraps his arms around his partner's waist and types along with him hand over hand."

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

318 comments

Not pair programming... (-1)

Anonymous Coward | about a year and a half ago | (#41149695)

so I can post on Slashdot, hurray!

Suck it and see, it's not for everyone (5, Insightful)

Peter Cooper (660482) | about a year and a half ago | (#41149723)

Like many workplace practices, it's something worth trying, but not something to be trumpeted as "the way" to do things. Some people get on with pairing, some don't. And it's OK either way. Likewise, there are writers who work in pairs, but many who do great work alone. There are architects who work in groups and alone. So it goes for software developers.

Where it goes sour, however, is when people who find pair programming valuable start tarring anyone who doesn't do it as being error-prone slackers.

Re:Suck it and see, it's not for everyone (5, Insightful)

O('_')O_Bush (1162487) | about a year and a half ago | (#41149873)

It also works better for inexperienced programmers than it does for seasoned vets. Partly because of egos, partly because problems don't end up being as difficult to solve.

Also, there is the problem of getting tired, where programming ends up being handed off between partners while the other partner zones out, and at each handoff, one has to come back up to speed. Surfing the web is bad for some, but for many programmers it is an opportunity for one to collect and organize their thoughts, and attack problems from new angles.

I've heard pair programming increases productivity by 150% over a single programmer, but two programmers independent are still more efficient than a pair. I believe this to be accurate, after a few months experience.

Re:Suck it and see, it's not for everyone (4, Insightful)

mooingyak (720677) | about a year and a half ago | (#41149951)

It also works better for inexperienced programmers than it does for seasoned vets.

My understanding of the process is that it's ideally a pair with one seasoned vet who is supposed to have the large view and one junior programmer who is supposed to be handling the details while learning from the seasoned vet.

Re:Suck it and see, it's not for everyone (5, Insightful)

jellomizer (103300) | about a year and a half ago | (#41150203)

I found paring inexperienced with experienced developers actually work a lot better.

1. Ego - Developers need to keep their ego's aside. There Egos is what keeps them doing the wrong thing over and over again. A fresh young mind to challenge his decision really helps him rethink what he is doing.

2. Experience - The new guy doesn't have experience, experience isn't how fast you code, but to know what gatcha will get you, unless you account for them early. New developers tend to code themselves in a box. More experienced developers keep a hook open to add changes in particular areas where they know there will be a change (even though non of the specs say it will change), Experience workers can teach them why they break the rules when they do.

3. Trading Skills - Having one code owner is dangerous, having a few developers knowing what is going on is very handy. The idea of coding yourself a job, is often short sited because you have coded yourself in a position where you cannot advanced. Plus giving young developers skills to work and advance in the project is a good thing too.

4. It restricts getting tired - Coders will pass off the boring stuff back and forth so when you are at the 80% complete mark, you have energy to fill in the 20%
 

Re:Suck it and see, it's not for everyone (5, Insightful)

man_of_mr_e (217855) | about a year and a half ago | (#41149915)

I agree. Not everyone can work in pairs. And certainly there are many people who cannot work in pairs with certain other people. It really requires a good friendship to make it work.

I actually stumbled across this myself in 1994 when I was forced due to time constraints to work with another programmer to finish a project... we sort of accidentally did pair programming and it was very effective.

But i'm not sure I could recreate that kind of synergy again.. I've tried and it didn't work.

Re:Suck it and see, it's not for everyone (3, Insightful)

jythie (914043) | about a year and a half ago | (#41150253)

Sadly there seems to often be an attitude of 'I selected programmers who are ideal for X, X worked, therefor X is the way to program!'... which if you follow the mantra too closely can really limit your pool of talent since not only do you have to find someone who is good at the job, but someone who enjoys working in that very specific environment..... it decreases workplace flexibility.

Then again, with the rise of brogammer culture, I gather a lot of place are not concerned with flexibility or diversity in the first place and actively encourage mono-cultures. And of course it is another way to push out all those pesky introverts who keep thinking they are people.....

Sorry, but you walked right into it (-1)

Anonymous Coward | about a year and a half ago | (#41150093)

Suck it and see

That's what I told your mom last night.

Re:Suck it and see, it's not for everyone (2, Insightful)

Jane Q. Public (1010737) | about a year and a half ago | (#41150115)

"Some people get on with pairing, some don't."

And if they're just getting into it now, they're only about 6 years behind the curve.

But why should I be surprised? Considering that Facebook was based on PHP?

Re:Suck it and see, it's not for everyone (2)

fermion (181285) | about a year and a half ago | (#41150127)

15 years ago I knew a few senior programmers that did this. Like the current case it was internal software that would never be distributed to external customers. It all ran in house, was updated frequently, so overall quality was not as important as rapid development. Serious bugs could be recalled instantly, less serious could be rolled out in day or two. Which is to say I think pair programming, if that is what the kids are calling it now, might be very workable for certain people and certain situations, but we will have to see if it is all the rage in a few years.

Maybe this is a generational thing... (3, Interesting)

sticks_us (150624) | about a year and a half ago | (#41149725)

But most of the elder wizards of the programming community (at least the ones I know) tend to shy away from the pair programming mentality. Younger folks (especially people in their 20s) don't seem to mind as much.

I wonder if this has something to do with the nature of the people who went into programming 20 years ago (compared to today), or what...?

Re:Maybe this is a generational thing... (0)

noh8rz8 (2716593) | about a year and a half ago | (#41149821)

I work best when throwing ideas around and talking through challenges. don't like working alone in a cubicle. so it works really well for me! doesn't hurt that my programming partner is a cutie (girl, to be specific).

Re:Maybe this is a generational thing... (2, Funny)

Anonymous Coward | about a year and a half ago | (#41149957)

Doesn't hurt that my programming partner is a cutie (girl, to be specific).

Pic or it didn't happen!

Well, okay, I'm single and I'd like a faux-girlfriend photo to print and hang on my cubicle wall.

Re:Maybe this is a generational thing... (0)

Anonymous Coward | about a year and a half ago | (#41150081)

I'm against pair programming with a guy, but I wouldn't mind pair programming with a reasonably attractive woman... Perhaps that's a way to more even the gender disparity?

Re:Maybe this is a generational thing... (0)

Anonymous Coward | about a year and a half ago | (#41149851)

well, its frustrating and terrible inefficient for both parties.

let me spend a couple of hours in the evening doing something interesting

then discuss it in the morning with my peers, and flesh it out

then have someone seriously review it

we can talk about it in complete detail when it makes sense, i don't need to smell your farts

Re:Maybe this is a generational thing... (4, Funny)

mooingyak (720677) | about a year and a half ago | (#41150005)

we can talk about it in complete detail when it makes sense, i don't need to smell your farts

You might change your mind if you were working with me. My farts smell like roses.

Re:Maybe this is a generational thing... (5, Funny)

vlm (69642) | about a year and a half ago | (#41150035)

we can talk about it in complete detail when it makes sense, i don't need to smell your farts

You might change your mind if you were working with me. My farts smell like roses.

Theoretically pair programming is supposed to pair up programmers with other programmers, not with management.

Re:Maybe this is a generational thing... (4, Funny)

mooingyak (720677) | about a year and a half ago | (#41150073)

we can talk about it in complete detail when it makes sense, i don't need to smell your farts

You might change your mind if you were working with me. My farts smell like roses.

Theoretically pair programming is supposed to pair up programmers with other programmers, not with management.

Hrmm. My farts smell like modular, well engineered roses?

Re:Maybe this is a generational thing... (3, Funny)

dingo_kinznerhook (1544443) | about a year and a half ago | (#41150377)

we can talk about it in complete detail when it makes sense, i don't need to smell your farts

You might change your mind if you were working with me. My farts smell like roses.

Theoretically pair programming is supposed to pair up programmers with other programmers, not with management.

Hrmm. My farts smell like modular, well engineered Rational roses?

There, fixed that for you.

Re:Maybe this is a generational thing... (0)

Anonymous Coward | about a year and a half ago | (#41150247)

Rose's what?

Re:Maybe this is a generational thing... (1, Informative)

ArsenneLupin (766289) | about a year and a half ago | (#41150027)

i don't need to smell your farts

Your doing it wrong. Watch the video. Pair programming is not 69. Your head should be next to his head. Not near his ass (because then he will smell your farts too, and one of you would have his hands under the keyboard...).

Re:Maybe this is a generational thing... (1)

gstoddart (321705) | about a year and a half ago | (#41150315)

Your doing it wrong. Watch the video. Pair programming is not 69. Your head should be next to his head. Not near his ass (because then he will smell your farts too, and one of you would have his hands under the keyboard...).

You seem to be laboring under the impression that teh Sphere of Stink of a fart is limited to mere inches.

Trust me, if you're within a 12-15 foot radius of me, you're gonna get it. :-P

Re:Maybe this is a generational thing... (2)

ArsenneLupin (766289) | about a year and a half ago | (#41150435)

Reminds me of a joke:

A short time after his election to the highest office, F. Hollande (new French president) went visiting her Majesty the Queen of the British Empire

Unconsciously he was rather afraid about this first opportunity for a monumental once-in-five-years gaffe.
So, there he was sitting is the horse-drawn carriage of Her Majesty the Queen.

Suddenly, one of the horses reminded the passengers of its presence more by their sense of smell than by their sense of hearing. It did this so well that their very breathing was impacted.

The queen then said to mister Hollande: "You see, my dear, even the queen of England cannot control everything!"

"I appreciate your honesty, Majesty, at first I assumed it was the horse."

Re:Maybe this is a generational thing... (0)

Anonymous Coward | about a year and a half ago | (#41150425)

Is it ever ok to code ass to mouth?

Re:Maybe this is a generational thing... (1)

ArsenneLupin (766289) | about a year and a half ago | (#41150489)

Is it ever ok to code ass to mouth?

You might be interested in this movie [imdb.com] , which illustrates the concept with more than 2 "programmers". Btw, in Unix parlance, this is known as a pipeline: the first command's output is the input for the second, and the second's output is the third's input...

Re:Maybe this is a generational thing... (2, Interesting)

Anonymous Coward | about a year and a half ago | (#41149877)

I started doing this about 15 years ago in college. I was working on a project with a partner, but we only had one computer between the two of us. He did most of the typing, while I discussed design with him, helped debug, and pointed out typos. It's like an instant code review.

Of course we didn't call it "pair programming" at the time. But I've done it at every opportunity since.

dom

Re:Maybe this is a generational thing... (0)

Anonymous Coward | about a year and a half ago | (#41150353)

Of course we didn't call it "pair programming" at the time. But I've done it at every opportunity since.

If I recall correctly this method was called "Extreme programming" about 5 years ago. Do you remember what it was called back then?

Re:Maybe this is a generational thing... (0)

Anonymous Coward | about a year and a half ago | (#41150415)

When I did my CS study, this was the standard programming method. We were always paired up. For good reasons. The ones who didn't want this could of course do the assignment separately then patch everything together, but they were never as effective as two people in tandem.

Last month I sat down with an Apex programmer and we went through the code. I knew the ins and outs of the client requirements, did the architecture, and he did the implementation. He never had to go back to the client because I could answer every question he had, and catch most issues before they had to be referred back to the client. Also, when he was finishing up something I could get clarification on any other issue from the client.

Not that pair programming works with everyone in every circumstance. However, the people that were against it where I worked, usually were against it for all the wrong reasons - and they didn't have a second of experience with it either.

Re:Maybe this is a generational thing... (5, Insightful)

O('_')O_Bush (1162487) | about a year and a half ago | (#41149913)

That is because new programmers don't have experience solving problems, and end up getting stuck spinning their wheels. For them, programming is the challenge. For more experienced people, the programming is trivial, it is the design that is a challenge.

Re:Maybe this is a generational thing... (1)

macbeth66 (204889) | about a year and a half ago | (#41149953)

Interesting. In my office, it seems the the opposite is true. I thought it was because the younger ones had the attention span of gerbils on speed.

Just don't pair me with a girl.

Maybe its an experience thing ... (4, Interesting)

perpenso (1613749) | about a year and a half ago | (#41149983)

But most of the elder wizards of the programming community (at least the ones I know) tend to shy away from the pair programming mentality. Younger folks (especially people in their 20s) don't seem to mind as much. I wonder if this has something to do with the nature of the people who went into programming 20 years ago (compared to today), or what...?

Or it has something to do with experience. The elder programmers have seen many programming fads come and go, many claims for the "one true way" to greater efficiency and reducing bugs. Like most fad/pop things, pair programming probably worked in a specific environment, with specific people doing a specific type of task ... but is probably not a universal solution. It is merely hyped as such by the "training" industry, book sellers, etc.

Elders may realize when working in pairs will help and when it will not. I've seen plenty of instances when elders call in a peer for an hour or two for a particular bit of code and then part when returning to the more mundane parts of the code. Or ask a peer to review a bit of code they just wrote.

Re:Maybe its an experience thing ... (4, Interesting)

pclminion (145572) | about a year and a half ago | (#41150349)

The elder programmers have seen many programming fads come and go, many claims for the "one true way" to greater efficiency and reducing bugs. Like most fad/pop things, pair programming probably worked in a specific environment, with specific people doing a specific type of task ... but is probably not a universal solution.

I have to disagree. At its most basic, pair programming is simply having somebody directly help you to accomplish a task, and also, observe your actions as you make them. The concept of using a helper is not a fad, trend, or technique. A better term for it would be "no brainer." The reason it sometimes fails is because of the personalities involved, and it's the same reason certain people can't work together doing ANYTHING (for instance, repairing a car).

It's true that programming often requirements moments or even extended periods of intense, solitary concentration. Your partner just has to know when to shut up. Even with compatible personalities it still takes practice.

But really, it's just two humans working together on something, which is not a "fad."

Re:Maybe this is a generational thing... (5, Insightful)

vlm (69642) | about a year and a half ago | (#41150011)

I wonder if this has something to do with the nature of the people who went into programming 20 years ago (compared to today), or what...?

After you live and work through 10 or so silver bullet fads you'll get a bit jaded at "oh god not yet another silver bullet that'll magically fix everything if we just change everything and hire some expensive consultants".

http://en.wikipedia.org/wiki/No_Silver_Bullet [wikipedia.org]

My main whine about pair programming is its a bastardization of ye olde master/apprentice. Oh so close to being correct, yet still miss the target. That's worked in about a zillion other fields for only about a zillion centuries. I learned a lot as an apprentice from some good masters and taught a few apprentices as a master, hopefully well. Pair programming claims master/apprentice inevitably leads to "watch the master" where the apprentice sits around and learns nothing. That's wrong; its not an inherent effect of master/apprentice, it's an inherent effect of shittymaster/apprentice. It does correctly show that having a con man or moron as master doesn't work, or maybe the older the programmer is the more important it is that he not be an idiot. Also its the apprentice's job not to be passive... ask why, ask how it works, ask what other options exist, etc.

I suppose you can't charge $xxx/hr as a consultant or book author merely by telling the boss to set up something like a medieval blacksmithing guild, gotta come up with some new twist on the old story.

Re:Maybe this is a generational thing... (-1, Troll)

ebh (116526) | about a year and a half ago | (#41150341)

I've always maintained that programming should be thought of more as a trade then a profession. We were all apprentices at one time or another.

(I also haven't gotten religion on Agile. Who's the genius that thought a word representing a bunch of sweaty grunting guys pushing against each other in the mud, expending tons of energy and going nowhere was supposed to make me think of increased nimbleness and productivity?)

Re:Maybe this is a generational thing... (1)

iluvcapra (782887) | about a year and a half ago | (#41150563)

Pair programming claims master/apprentice inevitably leads to "watch the master" where the apprentice sits around and learns nothing.

Sounds like the master in that case is just saying "move over kid, let me do it" all the time. Naturally software development is an attractive field for control freaks -- people who came to computers specifically because computers follow precise instructions, need to be taught nothing, and require no patience or emotional consideration. Many other crafts require intensive teamwork, an ability to judge people and products subjectively, and a LOT of patience.

Traditionally, master-apprentice relationships also had very specific timelines and goals: work for me for five years, and the guild will certify you and then you can be a journeyman, with more pay and autonomy. That's not very amenable to the modern economy, where newbies are all perma-temps with no future in an organization, people on the line are terrified of training their cheaper, younger replacement, and rockstars are at liberty to jump ship (it's the only reliable way to get a raise!) and generally will care fuck-all about training and career development.

Master-apprentice is a system based on a huge amount of institutional trust: Will I have a job tomorrow? Will I advance if I do well? Will it pay for me to keep doing this job? Is it worth it for me to get better at this job? It's fashionable in recent times to see all of these questions as strictly individual issues that no one but the employee has to think about, and people behave accordingly.

Re:Maybe this is a generational thing... (0)

Anonymous Coward | about a year and a half ago | (#41150055)

Young programmers are easily replaceable, so they can't complain.

Re:Maybe this is a generational thing... (0)

Anonymous Coward | about a year and a half ago | (#41150451)

If you have a lot of young programmers, send them our way - we have to import them.

Re:Maybe this is a generational thing... (2)

jythie (914043) | about a year and a half ago | (#41150317)

I have gathered that today's culture is slowly trying to push out the personality types that were common 20 years ago. Programming used to be a highly stigmatized 'nerd' domain filled with introverts... today there is a lot more cash and social acceptance behind it, so the field is getting filled with people who are far more sociable and extroverted. It has also been pushing out women.. CS is one of the few STEM areas that has actually gotten worse when it comes to gender ratio over the last 30 years, with a decline of something like 30%. So yeah, significant cultural shift though the 90s and 00s.

Re:Maybe this is a generational thing... (1)

jellomizer (103300) | about a year and a half ago | (#41150493)

When they started to code depends a lot...
Past-1985: (Computers were considered magical thinking machines) If you could make a computer work you were a God, if you are still working you have invited a good portion of our infrastructure. You were the Egg Heads who made the organization improve by a large percentage. Having those new kids who doesn't even know what a floppy disk is, seems insulting to you.

1985-1995: (Computers were considered closer to a Bulldozer, big bulky does the job) Chances are you were Mr. Mainframe. When there was a problem people came to you, and you could fix it. More of a Nerd (in the negative context) you were locked away and you made your living trying to be as isolated from people as possible. Getting new people in you office/server room feels like an invasion.

1995-2003: (The Crappy Desktop era) This was a tech boom. Covering Y2k fixes and Dot COM Business v. 2.0 They hired any poor slop with "Certification" however the ones that really knew what they were doing were Gold. They opened the door to the C Table and we were part of the higher up business decisions. Those of us who worked the trenches needed to rapidly patch and fix the crap decisions that were made. We see a lot of good reliable systems go away for newer shinier and more prone to problem systems. This group is starting to welcome new guys a little more. However a lot of them are real bitter because they were once strategic business makers and now they are just normal labor forces.

2003-2012: (The Dark Age/Mobile Age) Most of the innovation has gone to mobile computing, the rest of the innovation has dried up. On the plus side this dark period of innovation allowed many of these crappy systems to get fixed and become more reliable (Windows Me vs Windows 7) (Mac OS vs OS X) We are seeing less new guys and we want to see them because we need more new thinking. So they are more welcoming working with someone else.

A Deepness in the Sky (1, Offtopic)

vylasaven (829036) | about a year and a half ago | (#41149743)

...if anyone is a sf fan here, there's an effect called Focus. It's when a human being is infected with a mind virus that allows for blah blah blah. Anyway, the users inevitably retreat to jargon in pairs or groups because they are in the process of doing things which have never been done before, so they invent tons of new terms on the spot, and occasionally grunt, hoot, and fight each other. It requires handlers, often, to get any use out of the people. This reminded me of that.

Re:A Deepness in the Sky (0)

ArsenneLupin (766289) | about a year and a half ago | (#41150143)

But whatever you do, please use a condom! And don't groan too loudly if you "work" in an open office!

Re:A Deepness in the Sky (-1)

Anonymous Coward | about a year and a half ago | (#41150361)

see another clear example of why moderation should just be disabled.

thoughtful quip about a scifi topic related to article scores 0

bullshit obvious comment involving contraceptive and grunting: 2+

the key to earning good karma on slashdot is just belch the title of the article and drool on the keyboard, therefore on topic and oh lulz you get a plus wun dat made me har har, oh boss make me wurk now.

Facebook Mobile Apps (3, Insightful)

Kadagan AU (638260) | about a year and a half ago | (#41149745)

If the Facebook team is using pair programming for their mobile apps (on all platforms!), maybe they should try something more traditional because it's not working! They have so many bugs and glitches in the IOS, Android (tablet), and Blackberry apps that they definitely need to try a new approach! Maybe if they TESTED them before releasing, they'd have better results?

Re:Facebook Mobile Apps (2)

alphax45 (675119) | about a year and a half ago | (#41149811)

RIM makes the BlackBerry app; not Facebook. Same as Twitter. Might change with BB10 but right now Facebook and Twitter don't see value in making apps for Blackberry, so RIM does it themselves.

Re:Facebook Mobile Apps (1)

travisco_nabisco (817002) | about a year and a half ago | (#41150153)

Maybe they should get Microsoft to write them the mobile Apps. I haven't had any major problems with the WP7 Facebook App.

Pair or 1 + 0.3? (2, Informative)

Anonymous Coward | about a year and a half ago | (#41149753)

All the time i did pair programming it was me doing all the work and the other guy just pointing silly stuff like "missing ;"

Re:Pair or 1 + 0.3? (5, Funny)

Anonymous Coward | about a year and a half ago | (#41149853)

PRO-TIP: the other guy was the compiler.

Re:Pair or 1 + 0.3? (0)

Anonymous Coward | about a year and a half ago | (#41150155)

I once spent several hours trying to figure out why I wasn't getting the correct output from a PHP script. Asked a coworker to take a look and he immediately pointed out the semicolon at the end of a while statement. Didn't cause any errors, just incorrect output.

Re:Pair or 1 + 0.3? (0)

Anonymous Coward | about a year and a half ago | (#41149861)

All the time i did pair programming it was me doing all the work and the other guy just pointing silly stuff like "missing ;"

You're supposed to switch off. One person watches while another types, but two hours later, they switch roles.

Re:Pair or 1 + 0.3? (2, Funny)

Anonymous Coward | about a year and a half ago | (#41149891)

Then the first guy is still the one programming, and the other guy is trying to type what the first tells him.

yeah, I don't think so (3, Funny)

macbeth66 (204889) | about a year and a half ago | (#41149779)

I can't think of ANY one that I want to spend that much time around.

My wife can't code, but I would not want to spend that much time with her either.

Now, maybe my girlfriend. But I don't htink we would get much coding done. Besides, she can't code and I don't care.

Two to rectango (2)

Impy the Impiuos Imp (442658) | about a year and a half ago | (#41149791)

>and are less likely to waste time surfing the Web

You obviously haven't heard of the phenomenon of "pair surfing".

Re:Two to rectango (0)

Anonymous Coward | about a year and a half ago | (#41150029)

Or chit-chatting. What happens to people who are actually disciplined enough to work while at work?

Re:Two to rectango (1)

cellocgw (617879) | about a year and a half ago | (#41150445)

You obviously haven't heard of the phenomenon of "pair surfing".
No, but I'm rather familiar with the term "pair production" (hint: quantum mechanics).

Re:Two to rectango (0)

Anonymous Coward | about a year and a half ago | (#41150533)

Yes, I have!

When I am back in the old-age home, we sit down in pairs with one person driving the thing with buttons and a tail and the other person points where to move the cursor thingy on the screen and push the button.

Kent Beck, Facebook programmer (5, Insightful)

Barandis (2717353) | about a year and a half ago | (#41149849)

I know it's just a summary and all, but it makes me feel vaguely sad that out of all of the things you can say about him, Kent Beck is tagged as a "Facebook programmer."

XP again (2, Interesting)

gl4ss (559668) | about a year and a half ago | (#41149859)

so it's eXXXXXTreeme programming again?
couldn't they at least fucking re-use the term.

oh and it's not so bad for some small crunch period.. but for longer periods it really shits on my slashdot browsing habit.

am I now officially old? since they tried selling us this XP shit back before I dropped out of uni.

Re:XP again (2)

Bill_the_Engineer (772575) | about a year and a half ago | (#41150045)

Pair programming is a subset of extreme programming. Extreme programming deservedly fell out of favor at the end of the 1990's.

Re:XP again (2)

geekoid (135745) | about a year and a half ago | (#41150319)

And that's a shame, because it worked extremely well. I was on a team the produced a lot of code, and when delivered, there was 1(one) bug reported. 450,000 lines of code, one bug.

It's down side is it take management buy in on the customer side.

Re:XP again (0)

Anonymous Coward | about a year and a half ago | (#41150141)

Yeah, damn them for using the correct term rather than some dumb sounding XMTREMEMW!~!1!! buzzword.

Idiot.

Re:XP again (1, Troll)

squiggleslash (241428) | about a year and a half ago | (#41150523)

Reposted from years ago, my experience of Exxxxxxxxxxxxxxtreme programming! [slashdot.org]

The team was divided into pairs. One programmer programmed. The other's job was to look for mistakes, and then yell at the first for making the error. If the error was severe enough, he would announce it on the loudspeaker. What constituted an error was never clearly defined. Sometimes it was a logic error, or a typo, but other times it was allowing code to be too flexible and too open for future expansion, even when that was the best way to write something anyway. I got in trouble for writing a FOR loop with a named constant as one of the limits. "Named constants", it was explained to me, "mean you're looking at solving tomorrow's problems, not today's. Your code just needs to work for today. If the program can only support 100 simultaneous connections, write 100, not MAX_CONNECTIONS"

It's also good... (0)

Anonymous Coward | about a year and a half ago | (#41149887)

...for upgrading holodecks and stealing starships.
http://www.imdb.com/title/tt0708668/

Explains a lot (1)

Bill_the_Engineer (772575) | about a year and a half ago | (#41149929)

Can we attribute the less then stellar applications coming from these two firms to the pair programming paradigm?

I'm sure there are better examples to use besides these two.

do not want (2)

YrWrstNtmr (564987) | about a year and a half ago | (#41149969)

If my boss sees this, and pairs me up with L.....before day one is out there will be two fewer programmers. One dead, and me in jail.

Re:do not want (1)

geekoid (135745) | about a year and a half ago | (#41150335)

Yes, it is no good because you are an anti social twit.
Did you consider the at may be YOU are the problem?

Fire by 2? (0)

Anonymous Coward | about a year and a half ago | (#41149973)

So does that mean when you fire someone you will be firing two people?

Back in the old days... (3, Informative)

YodaSensei (1486541) | about a year and a half ago | (#41149975)

We used to call that eXtreme Programming: that was the rage a while ago, then went out of fashion in favour of other agile development methods. But that happened a lifetime ago (the early 2000s :p ), and computer fashion have changed more times than I can really keep track.

I guess that the people who were actually programming 10 years ago are now managers, gurus or architects and want to bring back their happy childhood memories (id est, programming with their buddy) back to reality, imposing it on the newer generations.

Worth trying (5, Interesting)

Divide By Zero (70303) | about a year and a half ago | (#41149977)

Everybody poo-poos it, I'm a better coder on my own, the other guy's wasting time, etc. But I tried it and I was never a better coder than when I was working in a pair. You'd get all the "missing semicolon" stuff that everybody talks about, which isn't exactly a waste, but you also have two brains deeply enmeshed in the code and data structures, so you can blend the best of two styles of programming. Sometimes I'd write a braindead construct and the other guy would simplify it, and sometimes he'd create this god-awful structure and I'd clean it up. But you can bounce ideas off another programmer without having to explain the function, show him the code, let him get his head wrapped around it, all that. It's not all grunting and pointing, sometimes it's, "Dude, use a switch/case" or "Just use the library function."

It's not for everybody - nothing is - but it's definitely worth trying with an honest effort.

Re:Worth trying (0)

Anonymous Coward | about a year and a half ago | (#41150495)

"Dude, use a switch/case" or "Just use the library function."

If you're still making those decisions at coding time... you're doing it incorrectly.

Re:Worth trying (0)

Anonymous Coward | about a year and a half ago | (#41150513)

This is exactly how it's supposed to work. I guess the people poo-pooing it either had really horrible colleagues or may possibly be located in a culture/environment where you are not allowed to make a mistake, or asking a question is a sign of weakness. In those environments pair programming is doomed to fail because it will turn into a contest.

I sometimes wonder whether management should bring in anthropologists before switching to pair programming or agile development methods. Some people and outfits just aren't suited for it.

Works in one out of three cases. (0)

Anonymous Coward | about a year and a half ago | (#41150033)

Case 1) One programmer is better than the other. The better programmer does all of the work, regardless of who's typing. The better programmer feels frustrated and slowed down, and the worse programmer feels worthless. Eventually, the better programmer does all of the typing, and the other is simply acting as a very inefficient code review. It's much better to have senior programmers work separately and do code reviews.

Case 2) Two junior/poor programmers. Neither of them is good enough to handle any really tricky stuff. This combo works okay for basic code, but still fails at difficult tasks. To get decent code, it still needs to be reviewed by a senior programmer.

Case 3) Two mid-level programmers who are at roughly the same level. Pair programming works okay in this scenario, but no better than having the programmers work separately and do code reviews.

Great for weak programmers (1)

EmperorOfCanada (1332175) | about a year and a half ago | (#41150057)

I love the idea of less web surfing. I have observed that paired programming is great for weak programmers. The sort who can sort of program but aren't really that good. Two of them together usually add up to one good programmer. Two good programmers often add up to a great programmer, but the great programmers often move quickly enough that there is little or no benefit to their pairing. Just sit them really near each other.

Basically it seems that paired programming eliminates weaknesses rather than emphasizing strengths. It would be interesting to sit the genius but gaff prone programmer with the squarely center of the box but obsessively bug free programmer. If they didn't kill each other the pair might be a powerhouse.

In less managed offices often a what would be an otherwise very good programmer sucks because of surfing, phoning, texting, being late, leaving early, lack of focus, or yacking. Pairing them up would shame them out of many of these behaviors.

A wonderful side benefit from paired programming is that the programmers quickly each learn tricks from the other. But this works best if the pairs are periodically rotated. Also pairs are less likely to get stuck and spin their wheels on any given problem. Depending on the complexity and R&D involved this can be a huge win. But if the programming is simple and somewhat rote then there is little benefit. Another rarely sung benefit is that those poor lost programmers are less able to hide the fact that they are, in fact, totally lost.

I don't think that pair programming is a panacea but a solution to some problems. The key is to identify if you have these problems in your work environment.

"Facebook programmer" Kent Beck? (1)

Anonymous Coward | about a year and a half ago | (#41150067)

Kent Beck is well-known as one of the creators of Extreme Programming and TDD. He's an old Smalltalk expert and a design pattern advocate. He helped popularize CRC cards. He's co-authored books with guys like Erich Gamma and Martin Fowler. I had breakfast with him once at a ski resort back when he worked for Object Technology Int'l. =)

Compared to the notable things he's done in the past, working for Facebook is barely a footnote.

We're taking pair programming to the next level (3, Funny)

ddd0004 (1984672) | about a year and a half ago | (#41150075)

We have one big cube with one computer and we put all of the programmers in there. We call it the stable and the programmers are now just referred to as the herd.

Re:We're taking pair programming to the next level (2, Funny)

Anonymous Coward | about a year and a half ago | (#41150475)

We have one big cube with one computer and we put all of the programmers in there. We call it the stable and the programmers are now just referred to as the herd.

I guess that is about as close to stable Hurd will ever be.

I will never understand pair programming (2)

i_ate_god (899684) | about a year and a half ago | (#41150083)

Just be disciplined with design and code reviews and be done with it.

This doesn't sound like a plan to improve performance, it sounds like a plan to cut costs on hardware, now you can have one computer for every two devs.

Works until the MBA types wake up (0)

Anonymous Coward | about a year and a half ago | (#41150113)

Works until the MBA types wake up ... they then ask why are we paying 2 programmers to do a single programmer's job. Let's save money by firing half of them.

Next level (1)

Anonymous Coward | about a year and a half ago | (#41150129)

Forget spooning, time to take it to the next level: daisy chains.

What's the big deal over pair? (1)

Hellmark (777625) | about a year and a half ago | (#41150185)

Classes started yesterday, and I'm in my senior year at uni, and one of my classes has now been restructured to teach better about pair programming. I really don't understand what the big deal is. If I am programming in a pair, I want both people to have keyboards, and throwing code at the project at the same time.

I hate pair programming (0)

Anonymous Coward | about a year and a half ago | (#41150297)

The other d00d always smokes all my weed and is never holding any of his own.

The New "Pair Programming" (1)

Anonymous Coward | about a year and a half ago | (#41150339)

One programmer for doing the work, one lawyer to write the patents.

Ok in small doses (4, Insightful)

composer777 (175489) | about a year and a half ago | (#41150367)

I've had experience with pair programming. In my mind here are the pro's:
1. It keeps you engaged and prevents your mind from wandering.
2. It is a great way to teach junior level programmers, many of whom suffer from a lack of training and are thrown to the wolves in the beginning of their careers. I would have LOVED pair programming (in small doses) when I was starting out. It's a great way to learn things about a complex system that are not obvious.
3. Different people tend to approach problems differently, and this difference in perspective can make it easier to catch bugs that are not obvious to a single programmer.

The Cons:
1. When abused, it can reduce productivity by distracting coders and not allowing them the space they need to think.
2. It can create a hostile environment where the employee feels that they have no privacy, room to think, and where they are constantly being watched. This is part of why I think management loves it so much, they are outsourcing micro-management to their underlings.
3. It can reduce motivation of individual developers since the buck no longer stops with them, but instead is the group's (or pair's) responsibility. While diffusing some responsibility across the team is not a horrible idea, people tend not to be as motivated. I observed motivation take a big nose dive when the shop moved to XP, since people were no longer as accountable for finishing anything, they just had to come up with a BS explanation for what they did the past day during the scrum, and really, it's a lot easier to BS one day at a time than it is to explain just what the hell you've been doing the past two months.
4. Many poorly designed XP programming environments are inherently disrespectful, and are merely an attempt to turn a programming shop into a factory floor with no privacy. As a skilled programmer, I won't go along with this, and I actually refused to move into this kind of space at my last job, and instead left, along with the majority of seasoned developers.

Overall, I can get some of the benefits of pair programming by walking down the hall, grabbing another team member and saying, "Hey, could you take a look at this?", when I'm having trouble finding a bug. It shouldn't require them to sit there all day.

and the DotMil Slashdotters all go (1)

RobertLTux (260313) | about a year and a half ago | (#41150397)

HERE WE GO AGAIN here we go again ...

anything that is supposed to be The One True Way rapidly finds out how wide the "edge cases" are.

In pair programming this is found in trying to put Orange/Green Irish programmers in a "pair" (or Jew/Muslim) and also is BAD for programmers that are best setup in a "den" and then have Food/Drink shoved into a slot in the door.

Methodology Talent/Skill/Experience. (5, Insightful)

Shoten (260439) | about a year and a half ago | (#41150407)

Let's face it...this is yet another iteration of the dance we've seen before. Extreme Programming, Agile Programming, and so on. Companies keep hoping that there's a methodology that can be applied to the process of coding and development that will homogenize their workforce, allowing them to look at coders more like cookie-cutter individuals. There are multiple drivers behind this: the difficulty of assessing a programmer's talent during the recruiting process, the desire to use cheaper resources, especially in outsourced business models, and the challenges that result from coders who turn out not to be a good fit with their role. But at the end of the day, coding is a creative process, and creativity fares poorly under standardized, one-size-fits-all models.

Kent Beck, eh? (2)

themightythor (673485) | about a year and a half ago | (#41150433)

'The communication becomes so deep that you don't even use words anymore,' says Facebook programmer , cosignatory to the Agile Manifesto, and inventor of Extreme Programming Kent Beck.

Fixed that for you

1999 (4, Insightful)

nitehawk214 (222219) | about a year and a half ago | (#41150479)

1999 called, they want their useless waste of resources techniques back. Nice try Kent trying to jam Extreme Programming on us again.

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...