Slashdot Mirror


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

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

77 of 318 comments (clear)

  1. Suck it and see, it's not for everyone by Peter+Cooper · · Score: 5, Insightful

    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.

    1. Re:Suck it and see, it's not for everyone by O('_')O_Bush · · Score: 5, Insightful

      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.

      --
      while(1) attack(People.Sandy);
    2. Re:Suck it and see, it's not for everyone by man_of_mr_e · · Score: 5, Insightful

      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.

    3. Re:Suck it and see, it's not for everyone by mooingyak · · Score: 4, Insightful

      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.

      --
      William of Ockham had no beard. The most likely explanation is that it was chewed off by squirrels every morning.
    4. Re:Suck it and see, it's not for everyone by Jane+Q.+Public · · Score: 2, Insightful

      "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?

    5. Re:Suck it and see, it's not for everyone by fermion · · Score: 2

      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.

      --
      "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
    6. Re:Suck it and see, it's not for everyone by jellomizer · · Score: 5, Insightful

      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%
       

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    7. Re:Suck it and see, it's not for everyone by jythie · · Score: 3, Insightful

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

    8. Re:Suck it and see, it's not for everyone by slim · · Score: 4, Interesting

      Great points all. I'll add:

      5. It keeps you honest. Coding is full of temptations to cut corners. But you're less likely to cut that corner if someone else is watching -- and you won't let a colleague do the kind of lazy things you'd do yourself.

    9. Re:Suck it and see, it's not for everyone by Surt · · Score: 2

      I'd be very curious to know how you're measuring productivity. Our experience has been that pairing results in more than 200% productivity.

      (For our definition of productivity, which includes the long-term maintenance effort on the resulting code).

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    10. Re:Suck it and see, it's not for everyone by Gr8Apes · · Score: 3, Informative

      Mine's been pretty much consistently <50% productivity for the pair.

      Why, you ask? Because 2 senior people working on web services can knock out 2 web services in 'x' timeframe, or 1 when paired, in 'x' + 'y' timeframe, where 'y' is a number equal to or greater than 0. The same goes for any other component functions.

      --
      The cesspool just got a check and balance.
    11. Re:Suck it and see, it's not for everyone by Anonymous Coward · · Score: 2, Funny

      ego's, there, sited, advanced

      Just pair-programming the errors in your post. Don't mind me.

    12. Re:Suck it and see, it's not for everyone by CodeHxr · · Score: 3, Insightful

      I currently work in this scenario with myself being the more knowledgeable programmer. While there is a bit of dictation from time to time, I always take the time afterwards to make sure my pair understands what was done and, more importantly, why. As time goes on, these dictations become fewer and farther between. If a pair is working primarily and continually from dictation, then they're doing it wrong.

    13. Re:Suck it and see, it's not for everyone by Fallingcow · · Score: 3, Insightful

      Shit, I spend more time reading docs, googling, staring in to space thinking about problems, and doodling ideas and flows on paper than I do actually coding. I'd think it would be hard for two programers' true coding time to line up well enough for pair programming to work, and you'd have to allow time for them to share any breakthroughs they'd had between sessions, unless you tried to pair-think too, which sounds annoying at best. Bouncing ideas off co-workers as necessary is one thing, but beyond that it seems counterproductive.

      Maybe this works if you have a very top-down structure with an engineer/analyst up the chain handing you every single thing you need and defining in extremely precise terms how everything last detail should be implemented so there's nothing left to do but type, and maybe decide which kind of loop to use or whether to use switch/case versus if/else or whatever.

    14. Re:Suck it and see, it's not for everyone by Anonymous Coward · · Score: 3, Insightful

      Yeah, if you want the seasoned vet to commit seppuku...

    15. Re:Suck it and see, it's not for everyone by AwesomeMcgee · · Score: 5, Informative

      No, this is a magnificent technique for mentoring, but this is *not* pair programming. I can't stress how great it is for mentoring though. Turn a Junior into a mid-level engineer real fast.

    16. Re:Suck it and see, it's not for everyone by schlachter · · Score: 2

      i find co-ed naked pair programming to be the most productive; especially when looking to start a new branch.

      --
      My God can beat up your God. Just kidding...don't take offense. I know there's no God.
    17. Re:Suck it and see, it's not for everyone by Anonymous Coward · · Score: 2, Insightful

      No thanks.

      I believe as an experienced coder that I will end up spending all my time explaining my code to someone with less experience and/or justifying my code to someone who wants to do things a different way. Since I'm "old" the collected experience of my life, and all the generations before me that I studied, will be deemed "outdated" because it doesn't jive with something someone read in a book.

      A continual flame war, with continuous interruptions, with another ego maniac really sounds like a great technique for getting things done to me.

      I worked on a project with another programmer where we were told to record our time conscientiously. It was going to be billed back to a consulting firm who delivered the original unworkable code. At the end we found we had spent 55% of our time explaining what was done to the other programmer. The inescapable
      conclusion is that the project would have been done faster by one programmer.

      For gods sakes, just say no to the madness.

    18. Re:Suck it and see, it's not for everyone by slim · · Score: 2

      The problem with pair programming is that it doesn't allow you to think. Inexperienced programmers, like children, tend to ask questions before thinking about the problem.

      This may be a problem with pair programming with an inexperienced partner. It shouldn't be a problem when you're pairing with an equal.

      Pairing with a less experienced partner is a great way of teaching though -- and teaching is irritating for many people.

      Pairing itself is a skill. I think a lot of people shooting it down have tried it briefly, and given up before seeing the benefits. Like spending an hour with a guitar and a fingering chart, then saying "this instrument is incapable of making a pleasant sound".

    19. Re:Suck it and see, it's not for everyone by luis_a_espinal · · Score: 3, Interesting

      YMMV. In my experience, it makes me cut corners more, because I feel like I'm wasting the other guy's time if I sit and think hard for a couple minutes about how to, say, rewrite a loop more clearly.

      But that's part of one's job, to think about those things and when to do them and when not to. You are teaching the junior person how to thing about such concerns, and hopefully many others (instead of just let's get this shit to compile asap!!!!). Quality coding is not just banging the shit out of the keyboard, and anytime a vet helps a junior cross that mental chasm faster, it helps both the junior and the company's bottom line.)

    20. Re:Suck it and see, it's not for everyone by xtracto · · Score: 3, Interesting

      I have seen a problem in that in the time I have done pair programming.

      When I am the 'seasoned vet' I get quickly frustrated by the slowness of the person who is writing. On the other hand, when the writer is more senior than I am, oftentimes I just cannot follow what he is doing, if he goes too fast (like when doing Vi-editing).

      This maybe except with one particular very good senior who was saying out loud what he was doing *as* he was doing it.

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
    21. Re:Suck it and see, it's not for everyone by gutnor · · Score: 4, Interesting

      That is the most difficult pairing you can make unfortunately. Either you put the vet as the driver and the junior will simply not follow or get bored. Or you let the junior drive and then it becomes a dictation. In both case, the junior brain shut down and it relies on what's written/dictated and stop thinking for himself.

      You want junior dev to struggle a bit on their own so they have the opportunity to evaluate various options. That process is enhanced in pair with another junior developer. Immediate feedback from a more senior dev is in my experience slowing the learning process and killing the creativity of the junior.

    22. Re:Suck it and see, it's not for everyone by Jane_Dozey · · Score: 4, Interesting

      Yes, I've worked with people who are great at pair programming and those who are not so good. I find that when working with someone who really gets PP you end up with two programmers (or more!) working together, both of them on the same page, catching mistakes and improving how the code is written.
      When working with someone who just starts coding and expects their partner to magically understand what they've decided to do then it can be impossible to keep up or figure out what on earth they're doing. At that point you have a programmer programming and another programmer wasting their time scratching their head.

      PP works wonderfully when you pair people up correctly and train everyone involved how to effectively work like that, but if you don't then you waste resources and frustrate your coders.

      --
      Silly rabbit
    23. Re:Suck it and see, it's not for everyone by SomePgmr · · Score: 5, Interesting

      You used the word, "mentoring". It occurs to me that people have been doing this in virtually every trade for centuries in more traditional apprenticeships.

      I was in a situation similar to this as a programmer. Nobody had planned for us to work in pairs, it just worked out that way. The bit in the summary about the two of you learning to basically read each others' minds is pretty accurate.

      One guy tends to introduce the more creative, interesting ideas, while the other (probably more experienced guy) sees when you're missing the forest for the trees. The end result is, hopefully, more impressive work that's not so impressive that it fails at basic functionality.

      It worked out really well for us. Of course, YMMV.

    24. Re:Suck it and see, it's not for everyone by ElusiveJoe · · Score: 2

      I currently work like this, being less experienced programmer. You know what, it was much better when I worked in pair with same level programmer. When both programmers are equally experienced (or inexperienced), the relationship is very friendly and motivating, as both persons are learning and helping each other.

      When one of them is more experienced than the other, it immediatly turns into boss-subordinate relationship, which is not good. It turns out that not only you are at disadvantage and supposed to catch up on your own, you are constantly scolded for your work, while offering zero help for your mentor and irritating him with "naive" questions.

      TLDR: bad idea.

  2. Maybe this is a generational thing... by sticks_us · · Score: 3, Interesting

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

    --
    "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth
    1. Re:Maybe this is a generational thing... by Anonymous Coward · · Score: 2, Interesting

      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

    2. Re:Maybe this is a generational thing... by O('_')O_Bush · · Score: 5, Insightful

      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.

      --
      while(1) attack(People.Sandy);
    3. Re:Maybe this is a generational thing... by Anonymous Coward · · Score: 2, Funny

      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.

    4. Re:Maybe this is a generational thing... by mooingyak · · Score: 4, Funny

      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.

      --
      William of Ockham had no beard. The most likely explanation is that it was chewed off by squirrels every morning.
    5. Re:Maybe this is a generational thing... by vlm · · Score: 5, Insightful

      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

      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.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    6. Re:Maybe this is a generational thing... by vlm · · Score: 5, Funny

      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.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    7. Re:Maybe this is a generational thing... by mooingyak · · Score: 4, Funny

      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?

      --
      William of Ockham had no beard. The most likely explanation is that it was chewed off by squirrels every morning.
    8. Re:Maybe this is a generational thing... by jythie · · Score: 2

      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.

    9. Re:Maybe this is a generational thing... by pixelpusher220 · · Score: 5, Insightful

      Or drive the few women in tech far far away....

      --
      People in cars cause accidents....accidents in cars cause people :-D
    10. Re:Maybe this is a generational thing... by dingo_kinznerhook · · Score: 3, Funny

      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.

      --
      "God does not play Minecraft with the world." - Albert Einstein
    11. Re:Maybe this is a generational thing... by ArsenneLupin · · Score: 2
      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."

    12. Re:Maybe this is a generational thing... by tool462 · · Score: 4, Funny

      My farts implement an abstract flower class. You can use any number of decorator "Petal" classes to configure to taste. I work well with people who like roses, tulips, chrysanthemums and many more.

    13. Re:Maybe this is a generational thing... by slim · · Score: 2

      Pair programming is a subset of Extreme Programming.

      XP takes in Test-Driven development, Continuous Integration, Refactoring, and all sorts of other things.

      Most of what was called "Extreme Programming" is pretty mainstream now. Perhaps pair programming will be as mainstream as TDD and CI one of these days?

    14. Re:Maybe this is a generational thing... by Stele · · Score: 2

      I really enjoy being paired with girls. You're missing out.

    15. Re:Maybe this is a generational thing... by HornWumpus · · Score: 2

      Damn, those farts must stink!

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    16. Re:Maybe this is a generational thing... by AwesomeMcgee · · Score: 2

      He thinks agile means scrum... So many people never actually research the important parts of their industry enough to have any idea what they're talking about. It's like people get out of college and assume they now have all the knowledge they need and are permanently done looking for new information.

    17. Re:Maybe this is a generational thing... by ebh · · Score: 2

      I know Agile and Scrum are not the same things.

      And WTF makes you think we had the luxury of walking out of college thinking we had all the knowledge we'd ever need? Things changed as fast then as they do now. New technologies emerged just as often, and we had to keep up with them just like everyone has to today. You have to fight tooth and nail for your job? Oh, cry me a river. I was dodging downsizing and offshoring while you were still swimming around in your father's balls. You know how I did it? The same way you do, by keeping up with technology and being able to provide what my employers need.

      But there's more to it than chasing after this week's hot new acronym. At some point you won't be able to make it as a code monkey or even a designer. That's all going to be done by drones who work for fifty cents an hour an no bathroom breaks. If you want to stay technical throughout your career and not take the easy PHB route, you're going to have to pick something your employers will NEVER be able to live without, and be the best at it on the planet. Hint: That job title won't be "web designer" or "data modeler" or, God forbid, "Agilist".

      In my case, I design and build development labs, both hardware and software. I start with an empty room, and put together the infrastructure you use to do your job, whatever that is. I may not have to know every last detail of every new technology that comes out, but I have to be able to build you a lab that takes full advantage of whatever technology you say you need. And I have to keep that lab secure, and make sure nothing in it crashes. As long as there's software development, there's going to be a need for what I do.

      Can you say the same thing about what you're doing right now?

    18. Re:Maybe this is a generational thing... by Have+Brain+Will+Rent · · Score: 2

      "I have gathered that today's culture is slowly trying to push out the personality types that were common 20 years ago."

      I didn't realize "competent" was a personality type but sure, makes sense.

      --
      The tyrant will always find a pretext for his tyranny - Aesop
  3. Facebook Mobile Apps by Kadagan+AU · · Score: 3, Insightful

    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?

    --
    This space for rent, inquire within.
    1. Re:Facebook Mobile Apps by alphax45 · · Score: 2

      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.

      --
      K Man
  4. Pair or 1 + 0.3? by Anonymous Coward · · Score: 2, Informative

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

    1. Re:Pair or 1 + 0.3? by Anonymous Coward · · Score: 5, Funny

      PRO-TIP: the other guy was the compiler.

    2. Re:Pair or 1 + 0.3? by Anonymous Coward · · Score: 2, Funny

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

    3. Re:Pair or 1 + 0.3? by Hentes · · Score: 2

      Exactly, a good IDE can do the same job without annoying the hell out of the coder.

    4. Re:Pair or 1 + 0.3? by Shagg · · Score: 2

      vi

      --
      Unix is user friendly, it's just selective about who its friends are.
  5. yeah, I don't think so by macbeth66 · · Score: 3, Funny

    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.

    1. Re:yeah, I don't think so by clintp · · Score: 2

      Perhaps traditionally the "I"s were just absent from programming.

      I can't cite anything (other than 30 years of programming) but I believe this to be wrong. My elders in this field were all introverts.

      In any case, we're not talking about solid 12 hour hackathons as pairs. We're talking, say, 4 hours out of a day, with breaks. And ideally you'd be rotating pair partners regularly.

      I'm an introvert. This isn't a disease, something to be cured, medicated, or dealt with. It's the way I am. Even for "4 hours out of a day, with breaks" this is bad. Rotating partners regularly makes this much, much worse.

      For us true introverts 4 hours with another person can be a taxing, grueling experience by itself no matter how pleasant a person he or she is. And you'd like us to think clearly and rationally while making us endure something that we're truly averse to? I wouldn't go as far as to say it creates a hostile work environment, but it's damned close.

      Recommended reading for extroverts that just Don't Get It, or introverts that are tired of taking this kind of shit quietly: Quiet: The Power of Introverts in a World That Can't Stop Talking by Susan Cain.

      --
      Get off my lawn.
  6. Two to rectango by Impy+the+Impiuos+Imp · · Score: 2

    >and are less likely to waste time surfing the Web

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

    --
    (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
  7. Kent Beck, Facebook programmer by Barandis · · Score: 5, Insightful

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

  8. XP again by gl4ss · · Score: 2, Interesting

    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.

    --
    world was created 5 seconds before this post as it is.
    1. Re:XP again by Bill_the_Engineer · · Score: 2

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

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    2. Re:XP again by geekoid · · Score: 2

      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.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  9. less pair-programming chain gangs by Anonymous Coward · · Score: 4, Insightful
  10. do not want by YrWrstNtmr · · Score: 2

    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.

  11. Back in the old days... by YodaSensei · · Score: 3, Informative

    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.

  12. Worth trying by Divide+By+Zero · · Score: 5, Interesting
    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.

    --
    Dare to Hope. Prepare to be Disappointed.
  13. Maybe its an experience thing ... by perpenso · · Score: 4, Interesting

    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.

    1. Re:Maybe its an experience thing ... by pclminion · · Score: 4, Interesting

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

  14. We're taking pair programming to the next level by ddd0004 · · Score: 3, Funny

    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.

    1. Re:We're taking pair programming to the next level by Anonymous Coward · · Score: 2, Funny

      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.

  15. I will never understand pair programming by i_ate_god · · Score: 2

    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.

    --
    I'm god, but it's a bit of a drag really...
  16. Yep by Quiet_Desperation · · Score: 5, Funny

    I think we can all see where this is going.

    Programmer centipede.

    You know I'm right.

  17. Ok in small doses by composer777 · · Score: 4, Insightful

    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.

  18. Methodology Talent/Skill/Experience. by Shoten · · Score: 5, Insightful

    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.

    --

    For your security, this post has been encrypted with ROT-13, twice.
  19. Kent Beck, eh? by themightythor · · Score: 2

    '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

  20. 1999 by nitehawk214 · · Score: 4, Insightful

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

    --
    I'm a good cook. I'm a fantastic eater. - Steven Brust
  21. Re:Methodology Talent/Skill/Experience. by Shagg · · Score: 2

    But at the end of the day, coding is a creative process, and creativity fares poorly under standardized, one-size-fits-all models.

    What some want is for it to be more like "paint by numbers". Sometimes it's OK, but as you say, most of the time it's a poor fit.

    --
    Unix is user friendly, it's just selective about who its friends are.
  22. Facebook Programmer? by Bob9113 · · Score: 2

    Facebook programmer Kent Beck.

    That seems a little like saying, "Google employee Vint Cerf."

    And, as an aside: Damn, Kent. Facebook? I thought you were cool.

  23. Re:Not pair programming... by Spy+Handler · · Score: 4, Funny

    the driver writes code while the other, the observer (or navigator[1]), reviews each line of code as it is typed in.

    Driver sounds cool, that's what fighter pilots call themselves too. But observer sounds lame... we should call it wingman. Then we have the driver who writes codes, and the wingman who watches for errors. Plus we get to say cool stuff like,

    "You can be my wingman any time!"

  24. Another gimmick by gymell · · Score: 2

    I see paired programming as just another gimmick to get around the fact that there is no substitute for having experienced programmers and effective code reviews. As a consultant, I've worked on many agile projects, including some involving strict XP paired programming, and didn't see any better quality with that than with anything else. It's all about who you have working on the project, having decent management and a true agile philosophy ... not "agile theater."

  25. not true by luis_a_espinal · · Score: 2

    Yeah, if you want the seasoned vet to commit seppuku...

    Nonsense. One of the tasks implicit for any seasoned vet (especially one that is vested as a senior or principal) is to guide juniors or new members of the team up to speed. Obviously, you don't want your vets to be paired with juniors all the time, as this is not economical (and at some point the junior needs to hit the ground running by himself/herself).

    However, in any company (and for any job for that matter) it is a person's task to help others come up to speed if that person has the necessary know-how. It might not be the case for those who just want to fold jeans at the gap, but it is certainly true above a certain professional/salary level.