Pair Programming
Pair Programming
By Hanchao Wu
Outline
Page � 2
What is Pair Programming
Page � 3
Outline
Page � 4
History 1
Page � 5
History 2
Page � 6
Outline
Page � 7
Why Pair Programming (1)
Page � 8
Why Pair Programming(2)
Page � 9
Why Pair Programming (3)
� Knowledge Trasfer
� It is an good option to use pair programming to reduce learning
curve for new people.
� With some different skill set and experience, people could learn
from each other.
� Everyone could become expert with shuffling pairs.
Page � 10
Why Pair Programming (4)
Page � 11
Outline
Page � 12
Techniques: Ping-Pong Pair Programming
Page � 13
Techniques: Cross-Functional Pairing
Page � 14
Techniques: Distributed Pairing
Page � 15
Techniques: Others
� Selective Pairing
� Keyboard n Mice Pairing
� ...
Page � 16
Outline
Page � 17
Why Pair Programming Works
Page � 18
Continuous Code Review
Page � 19
Fewer Blockages
Page � 20
Masking distractions
Page � 21
Guaranteed focus
Page � 22
Multiple points of view
Page � 23
Reduced training cost and time
Page � 24
Outline
Page � 25
Problems
Page � 26
Problems
� Disagreements
� Scheduling Conflicts between partners
� Absence of partners
� Rushing
� Over-confidence
� ...
Page � 27
Outline
Page � 28
Challenges (1)
Page � 29
Challenges (2)
Page � 30
Outline
Page � 31
When Pairing is NOT Working (1)
� Research work
� Pairing should not start until coding.
� If still in research part, it is prefered to be seperated.
� Both have no idea how to impelement project
� Two inexperienced people, working together, may reduce the
productive
� An inexperienced people need to pair with an exprienced people.
Page � 32
When Pairing is NOT Working (2)
� Trival work
� We use pairing to increase productivity. If the work itself is trival,
pairing is a waste of resource.
� People hate each other
� If partners hate each other, pairing will become a disaster.
� We want paring to build relationship, not to hate each other more.
� One person is not around
� When one person is sick, or have to deal with some person
affairs, the other guy may need to work alone.
� We do not need a temporary pairing.
Page � 33
Conclusions
Page � 34
References
Page � 35
Resources
� http://collaboration.csc.ncsu.edu/laurie/publications.html
� http://en.wikipedia.org/wiki/Pair_programming
� http://c2.com/cgi/wiki?PairProgramming
� http://www.youtube.com/watch?v=rG_U12uqRhE
Page � 36