3. Practices and Values
• Practices are evidences of values
• Practices implemented in most effective way
possible, shows that I value “values”.
4. Pair Programming – What is it?
• Better work together more quickly than either
could alone.
• The driver types – focus on tactics - writing clean
code
• The navigator - focuses on strategy - how the code
fits into the overall design, refactoring, tests etc.
• They switch every few hours to share perspectives
and knowledge.
• Knowledge sharing within the team is good and
the team knows the total code base better.
5. How to do it?
• Pair on everything you need to maintain
• Switch partners when you need a fresh
perspective
• Pair with different people throughout the day
• Sit comfortably
• Switch driver and navigator roles frequently
• Collaborate and converse!
6. How to do it?
• Have design discussions and agree upon as a pair what’s intended
to be done.
• Agree on one tiny goal at a time
• Rely on your partner, support your partner.
• Talk a lot
• Switch roles often
• Write unit test first
• Pay attention – don’t check your email, facebook etc
• The person who knows less about the system or language should
do most of the driving, to ensure that the novice stays engaged.
You learn more through your fingers than through your eyes.
• Ping-pong pairing
7. Pairing Anti-patterns
• No breaks
• No pair-switching
• No pairing core hours
• Not communicating enough
• Not listening to other solutions
• Grabbing the keyboard away
• Silent partner
• Listening to partner, but ignoring feedback, as if they are an
annoying popup in your IDE.
• Egos and personality conflicts
14. Troubles in pairing?
• I’m faster on my own
• Can’t pair with that guy, he’s getting on my nerves
• Pair programming is too tiring
• We’ve split up the work and we’ll get it done faster if we use
two keyboards
• There’s too much background noise
• I’m just slowing her down