Talk:Pair programming
From Wikipedia, the free encyclopedia
| This article is rated C-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||||||
| |||||||||||||||||||||
Complaint about intro
"Pair programming is an agile software development technique in which two programmers work together at one workstation." This is not correct as the two programmers can be collaborating from different locations. Even if they are co-located using separate workstations and communicating by voice or phone may be more efficient.Danwoodard (talk) 18:42, 19 January 2020 (UTC)
The sentence in the intro describing the activity seems a bit weird ... "Each member performs the action the other is not currently doing: While one types in unit tests the other thinks about the class that will satisfy the test, for example." In my experience usually both programmers are working on the one task ... one is typing the code, and the other is helping to spot errors, for example. Maybe we should cite a source or two. Stumps 12:08, 22 May 2006 (UTC)
- Which sources do you have that says the they should do the same thing? People commenting on you drivings is not a help but people reading the map and tell you which way to go is a great help. --Equanimous2 17:45, 19 September 2006 (UTC)
- I agree. "One types in unit tests while the other thinks about the class..." is just wrong. The whole point of pair programming is continuous code review. I'll fix it right now. I don't have books handy, but I think finding citations will be easy. (A quick Google search turns up plenty.) --Ben Kovitz 21:45, 5 November 2007 (UTC)
Utah study attribution
The Utah study quoted in the article gives attribution to Laurie Williams, but the coauthor of the study was Alistair Cockburn, one of the signatories to the Agile Manifesto -- hardly a disinterested party!
— Preceding unsigned comment added by 66.194.74.34 (talk) 17:59, 2 June 2006 (UTC)
This definitely needs more attention 89.17.137.199 (talk) 21:06, 12 September 2018 (UTC)
n programming
Is triple programming, quad programming, etc. also in common? --Abdull 17:06, 27 July 2006 (UTC)
- "Three programmers in front of one computer" is certainly less common than "two programmers in front of one computer".
- According to WikiWikiWeb:TriProgramming and WikiWikiWeb:PairProgrammingPlusPlus,
triple programming (subjectively) seems to have both advantages and disadvantages compared to pair programming.
- As far as I can tell, no one has ever objectively compared triple programming to pair programming or single programming.
- Triple programming might turn out to be the best -- or the worst -- of those alternatives.
--68.0.120.35 22:09, 10 April 2007 (UTC)
When working at Microsoft, I was handed a very hard to reproduce bug. I worked on it for 3 days, but although the problem did show up, the code seemed to be fine. I put several hundred breakpoints and watched almost every variable and still everything seemed to be right, the function was called only at the right times, but still the behavior of the whole program was incorrect.
The bug had something to do with UTF-8. At some place, ASCII was being used and the buffer would get garbage. The problem reduced to "who was using the wrong API?" in which the wrong AP woudl be strcpy and the right API would be utf8_strcpy, but the main problem was that strcpy was used literally millions of times in appropiate places, so finding the explicit line with problem was going to take too much time.
One morning I saw my boss with his boss and the test leader all looking at one screen in my boss's office. They all were debugging the code and looking for places where this could have happened, and then they realized the problem was in a little DLL we were using and which we didn't have the source code. It took a lot of time!!!
So, the 3-programming went on but they weren't programming, but were debugging at one screen. I think even though they weren't programming this is a valid example, because debugging at Microsoft usually takes too much time. The main reason is that they still don't discover UnitTesting
So much human power was needed because of the lack of abstraction. if all tyou do is to call strcpy, then you will have strcpy all over the place and eventually your program will be hard to change.
— Preceding unsigned comment added by 201.241.19.29 (talk) 11:22, 8 July 2007 (UTC)
- Cool story bro'. What the fuck does it have to do with anything? — Preceding unsigned comment added by 216.243.14.23 (talk) 02:31, 17 April 2013 (UTC)
bad link
Pair Programming Productivity: Novice-novice vs. Expert-expert International Journal of Human Computer
... this link gives you a 404.
— Preceding unsigned comment added by LukeCrawford (talk • contribs) 07:59, 6 May 2007 (UTC)
the drawbacks list
* Experienced developers may find it tedious to tutor a less experienced developer in a paired environment.
but isn't it more tedious to let that developer loose on her own and deal with the mess later? with pp-style tutoring, that developer may well become an experienced and talented developer in time
* A less experienced developer may feel intimidated pairing with a more experienced developer which may result in less participation. * Many engineers prefer to work alone, and may find the paired environment cumbersome.
isn't this sort of a circular argument, with "prefer" depending on some actual or percieved drawbacks?
* Productivity gains or losses are hard to compare between paired and non-paired environments, as metrics of programmer productivity are controversial at best.
weird phrasing, and is this really a drawback of pp?
* Experienced engineers quite likely produce code that is quite accurate, and the additional theoretical gain from pairing might not be worth the cost of an additional engineer. This is especially true when producing more trivial parts of the system.
dict "quite likely"
* Differences in coding style may result in conflict.
again, better to deal with this upfront than later.
* In the case where the team has slightly different work schedules, which is common in an environment that values work-life balance, the pair is only available during the overlap of their schedules. Therefore, not only does it require more man-hours to complete a task, a typical day has fewer pair-hours available, which further increases the overall task completion time. * Where a company values telecommuting (working from home) or when an employee must work from outside the office for whatever reasons, pair programming can be difficult and even impossible. However with broadband internet access and common screen sharing programs and VOIP technologies such as Skype, telecommuting can in fact better lend itself to pair programming. (see Remote pair programming) * Personality conflicts can result in one or both developers feeling awkward or uncomfortable. * Some developers can sit in front of a computer for many hours straight, others like to get up and walk around often.
that's fine; either take breaks often or just stand up and walk while the other person drives —Preceding unsigned comment added by 193.11.12.233 (talk) 12:15, 26 October 2007 (UTC)
- Chat sessions: Sometimes employees might talk together too much, straying excessively into off-topic subjects, such as major news events, personal problems, etc.
- Annoying personal habits: Sometimes people can find each other much more annoying when working up close than at separate workstations.
- The current version has a couple inconsistencies. The first few are solid, cost-effect-possible-issues discussion, and the last two, posted above, are not well structured. I think it'll be good to drop the last one and change the chat sessions one to the following:
- Added Distractions: Employees might be more inclined to stray off-topic and discuss issues not pertaining to the project or workplace for extensive periods, wasting valuable time. 64.236.128.12 (talk) 15:28, 17 July 2008 (UTC)
- How about insanity caused by working in close proximity with the same person all day long and having to hear that person's voice droning in your ear until you can't stop hearing it even when you're away from them and then at night you go to sleep and have irritating dreams about the person, so there's no escape from the torture until one of you snaps and kills the other? --Rosekelleher (talk) 02:41, 19 March 2015 (UTC) — Preceding comment signed as by Rosekelleher (talk · contribs) actually added by MopTop (talk · contribs)
?? Where is the drawbacks list? there seems to be no counterpoint in this article. 20:59, 1 December 2014 (UTC)jflahiff — Preceding unsigned comment added by 69.25.143.32 (talk) 20:58, 1 December 2014 (UTC)
Laurie Williams?
Did Laurie Williams write most of this article or sanction it? Most of the cites are quotes from her books and studies. And much of that is suspicious, such as "In our recent Web survey, we asked, 'What have you found beneficial about pair programming?' The single most common response was, 'It's a lot more fun!'" This is scientific? Sounds like it was probably a web survey of a pro-Pair Programming group.76.168.64.243 (talk) 19:33, 4 May 2008 (UTC)
- Nope, I put most of those references in. I believe Laurie Williams has been the leading researcher on pair programming. If you have more good sources, please add 'em! Ben Kovitz (talk) 08:36, 10 May 2008 (UTC)
How about extracting the quotes into a Notes section, using shortened footnotes (Citing Sources style guide)? The Williams quotes are well researched, but currently, the other references are somewhat drowned out. — Preceding unsigned comment added by 85.166.140.106 (talk) 20:11, 21 July 2008 (UTC)
- I just changed the references to a 2-column format. Does that help? I couldn't figure out how to do shortened footnotes and still keep all the quotations intact. I'd like to keep the quotations so it's easy for readers to quickly check the substance of the reference and make objections like the one above. --Ben Kovitz (talk) 04:07, 18 February 2009 (UTC)
All of the actual scientific, peer-reviewed studies I've read on pair programming have found no benefit to experienced programmers, only to students. This article is very heavily biased based on programmers self-reported _impressions_ and _feelings_ regarding the benefits, instead of the actual lines of code and quality of the code produced. Of course pair programming makes most programmers feel better about coding- coding is, like writing in general, a lonely, cognitively-rich task, and pairing makes it much less lonely- but that doesn't mean that it makes the output better. 173.228.123.235 (talk) 11:09, 6 November 2011 (UTC)
Extract Remote pair programming into separate article?
How about extracting Remote pair programming into a separate article? The External links and References are somewhat cluttered now, particularly the list of tools for remote pair programming. —Preceding unsigned comment added by 85.166.140.106 (talk) 20:11, 21 July 2008 (UTC)
External links in See Also section
Additional drawback
* Programmers can engage in over-analysis
I can't back this up with a research link, but I'm sure you'll agree that this is a common problem with pairing, especially with verbose types who need to make their opinion heard. I've had whole pair programming sessions wasted with stupid conversations. You can say it can be avoided, but introducing a social aspect to programming does have this inherent drawback of unnecessary conversation. Erichero (talk) 08:28, 22 December 2009 (UTC)
- Sounds like original research. There have been a lot more studies of pair programing in the last few years. If you can find one that describes this, by all means, put it in. If you can find studies that measure the effect on time to completion, that would be especially good, since that's the bottom line of interest. —Ben Kovitz (talk) 03:16, 14 June 2010 (UTC)
- The entire drawbacks section appears to be missing... — Preceding unsigned comment added by 205.221.255.62 (talk) 16:28, 14 January 2014 (UTC)
Phasing out "Scientific studies" section
I'm now phasing out the section listing scientific studies, and moving the quantitative results and references to the "Costs and benefits" section. There are still some duplicate studies, because I don't want to lose the quantitative information and references, and I haven't gotten access to all the references. In particular, I'm hoping to see the "Costs and benefits" section summarize the findings regarding defect rates, time to completion, and total effort. That will make the article very useful to readers interested in what is known about pair programming. If anyone else would like to help gather up this info and put it into "Costs and benefits", please don't be bashful! —Ben Kovitz (talk) 03:25, 14 June 2010 (UTC)
What does effort mean in all this?
Not being a researcher in this field, or a programmer, I have no idea what effort means when it comes to programming? Pay? Physical effort? Mental effort? — Preceding unsigned comment added by TheThomas (talk • contribs) 11:55, 11 December 2010 (UTC)
- Excellent question. As defined in the paper by Arisholm, et al., effort is total programmer-hours. I'll add that to the article right now. —Ben Kovitz (talk) 19:23, 16 March 2011 (UTC)
