Successfully reported this slideshow.

Pair programming: Good, bad and ugly



Upcoming SlideShare
Research presentation
Research presentation
Loading in …3
1 of 14
1 of 14

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Pair programming: Good, bad and ugly

  1. 1. Pairing
  2. 2. Why Pair? Better code Knowledge transfer / sharing Better morale – fun! Higher productivity Improve communication, learning and cooperation
  3. 3. The Good
  4. 4. What is good pairing? Drawing out a solution to focus the mind Communicating – talk a lot Being patient and courteous Encouraging and mentoring
  5. 5. Good Driving Focus on the task Complete the code Syntax Trust the navigator
  6. 6. Good Navigating Review the code Pay total attention Talk not show Think about the bigger picture Think about alternatives Are we doing the right thing?
  7. 7. The Bad
  8. 8. What is bad pairing? Anti - patterns Navigator dictating – backseat driving! Keyboard hog and keyboard snatching Mentally checking out No collaboration You can’t do both roles It’s not fun!
  9. 9. The Ugly
  10. 10. Clever code != clean code Complex code is not always clean code It can confuse your pair Steam training Belittling your pair – “Don’t you know that” Arrogant and egotistical
  11. 11. Dreyfus Model Novice Advanced Beginner Competent Proficient Expert
  12. 12. How to be good…  Define your task and agree on a solution  Rely on each other  Sync up frequently  Celebrate your success – High 5!  Switch roles regularly  Be courteous, respectful and understanding  Talk and listen  Don’t check your email/twitter/facebook etc  Have short regular 5 minute breaks
  13. 13. Remember… Pairing is sharing 
  14. 14. Questions? Sara Email: Blog: Twitter: @developerdame Rachel Email: Blog: Twitter: @rachellaycock

Editor's Notes

  • One workstation
    Driver –
    Concentrates on just coding
    Navigator –
    Reviews code
    Checks for errors
    Considers overall design
  • simpler design, reduce bugs, more maintainable
    – code base and coding, removes knowledge silo’slogin
  • Think about:
    Possible bugs
    Larger issues
    Ways to simplify the code
    Are we doing the right thing?
    Wait until the driver has finished the piece of code to bring issues and design up
    Jot down any tasks to discuss when driver has finished typing
  • Studies have shown you can’t navigate (think about larger issues) whilst driving. Two roles exist so it isn’t about one getting a break while the other codes!
  • Pairing is hard!
  • If you are doing pairing right you will be very tired at the end of the day as you will have been very focused all day
  • ×