Pair Programming
From AgileOpenNorthwest
About a dozen people had a lovely discussion about Pair Programming. The notes are below:
Pair Programming
- Productive
- Fun
- Team context - colocated
- Cross functional pairing - can deliver great tests
- Required for production code
- Sounds indicates energized work - can be used as signal
- promiscuous
- can help move skill (not talent)
Skills for pairing
- ability to swap pairs
- talk first
- can step back
- idea gets into code via pair
- ping pong (aka popcorn)
- shared language
- writing tiny
- ability to learn
Pairing advantages
- Faster/more productive
- removes blocks fast
- group better than individuals (eg. The Beatles)
- think better together
- pair flow
- breaks down walls and stereotypes
- shared ownership
- removes fear of work
- exposes bad apples and other problems quickly
- more focused work per day
- learning is effectiveness
Challenges of pairing
- team coordination
- core hours
- early/late pair
Ideas for pairing
- face to face pairing
- 10 minute check-ins
Pair programming anti-patterns
- passive pairing
- distracted pairing
- splitting for repetitive tasks
- programming flow (brain hibernation)
- individual ownership
- pair bonds