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

Next revision
Previous revision
what_is_pair_programming [2016/06/20 14:09] – created 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 28: Line 25:
  
 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'!"
  
 ====== Experiment ====== ====== Experiment ======
/home/hpsamios/hanssamios.com/dokuwiki/data/attic/what_is_pair_programming.1466456967.txt.gz · Last modified: 2020/06/02 14:31 (external edit)