User Tools

Site Tools


what_is_pair_programming

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
what_is_pair_programming [2016/09/30 12:01] – [Skeptisism] hpsamioswhat_is_pair_programming [2021/04/01 14:02] (current) – Changed pair typing to a quote hans
Line 1: Line 1:
 ====== What is Pair Programming? ====== ====== What is Pair Programming? ======
  
-Or "what are the benefits of pair programming?" +Or "what are the benefits of pair programming?" 
- +Or "how should I get started with pair programming?"
-Or "how should I get started with pair programming?" +
- +
-====== Basics ======+
  
 I've recently has a number of discussions about the benefits of pair programming. Some of the thinking was that the main use of pair programming was as a learning tool, to help break down our specializations. This is the result of the emphasis we made in answering the question of breaking down specialization on a team (see [[how_do_we_get_all_the_work_addressed_when_our_specialists_cannot_be_everywhere|How Do We Get All the Work Addressed When Our Specialists Cannot Be Everywhere?]]) In fact, pair programming was first proposed as a tool to help developers do better work – fewer defects, better designs – and it was found that the practice also helps with this cross-learning. I've recently has a number of discussions about the benefits of pair programming. Some of the thinking was that the main use of pair programming was as a learning tool, to help break down our specializations. This is the result of the emphasis we made in answering the question of breaking down specialization on a team (see [[how_do_we_get_all_the_work_addressed_when_our_specialists_cannot_be_everywhere|How Do We Get All the Work Addressed When Our Specialists Cannot Be Everywhere?]]) In fact, pair programming was first proposed as a tool to help developers do better work – fewer defects, better designs – and it was found that the practice also helps with this cross-learning.
Line 29: Line 26:
 Most developers I have worked are skeptical of the idea somehow this produces better results. The thinking is that if you have 2 people doing the work where 1 used to do, it must be less productive. The reality is that if development were just a matter of typing, then yes, having two people do the work of one does not make economic sense. But if you look at the way you develop, a lot of the time is actually spent thinking (this is knowledge work after all) and so there is expected benefit of working together to improve a result. In fact, you could take this idea to the extreme. There is a concept out there called “mob programming” one keyboard / mouse for the whole team, with one team member driving and everyone else navigating (see https://www.youtube.com/watch?v=p_pvslS4gEI if you don’t believe me – and no I am not advocating this as I haven’t actually tried it myself). Most developers I have worked are skeptical of the idea somehow this produces better results. The thinking is that if you have 2 people doing the work where 1 used to do, it must be less productive. The reality is that if development were just a matter of typing, then yes, having two people do the work of one does not make economic sense. But if you look at the way you develop, a lot of the time is actually spent thinking (this is knowledge work after all) and so there is expected benefit of working together to improve a result. In fact, you could take this idea to the extreme. There is a concept out there called “mob programming” one keyboard / mouse for the whole team, with one team member driving and everyone else navigating (see https://www.youtube.com/watch?v=p_pvslS4gEI if you don’t believe me – and no I am not advocating this as I haven’t actually tried it myself).
  
-Bottom line concept "pair programming is pair 'thinking' not pair 'typing'".+Bottom line concept
 + 
 +"Pair programming is pair 'thinking' not pair 'typing'!" 
 ====== Experiment ====== ====== Experiment ======
  
Line 49: Line 49:
  
   * http://namcookanalytics.com/high-costs-and-negative-value-of-pair-programming/ - Capers Jones doesn’t think it works at all for large scale development (10,000 people) based on lines of code cost and some analysis of function points. Assumes that the only way to deliver “big” is to deliver serial. Comparison seems to say “you can produce same results of defect reduction with code inspection (a group of people looking at the code?)” but does not include this cost in the development cost or at least not in a way I could find.   * http://namcookanalytics.com/high-costs-and-negative-value-of-pair-programming/ - Capers Jones doesn’t think it works at all for large scale development (10,000 people) based on lines of code cost and some analysis of function points. Assumes that the only way to deliver “big” is to deliver serial. Comparison seems to say “you can produce same results of defect reduction with code inspection (a group of people looking at the code?)” but does not include this cost in the development cost or at least not in a way I could find.
- 
-~~LINKBACK~~ 
-~~DISCUSSION~~ 
- 
  
 {{tag>FAQ benefits XP PairProgramming}} {{tag>FAQ benefits XP PairProgramming}}
/home/hpsamios/hanssamios.com/dokuwiki/data/attic/what_is_pair_programming.1475262099.txt.gz · Last modified: 2020/06/02 14:31 (external edit)