Benefits
Awareness Test
Basic: How to pair
Exercise: 15 minutes drawing
• Pair draw
• Pen switches hand every 3 minutes
• Theme: “Movement in the wild”
Challenges, pitfalls
Improving the experience
Sources
https://twitter.com/15mindrawings
https://www.youtube.com/watch?v=vJG698U2Mvo
http://cs.brown.edu/courses/csci0170/content/docs/pair-programming.pdf
http://www.extremeprogramming.org/rules/pair.html
http://guide.agilealliance.org/guide/pairing.html
http://www.scribd.com/doc/25304465/null

Editor's Notes

  • #4 1 driver 1 navigator Simply put, pair programming is “two people working together at a single computer”. The practice has been popularized by a software development methodology called Extreme Programming (XP), and a number of researchers have studied the effects of incorporating pair programming into introductory and higher-level computer courses.
  • #5 better code => pair pressure (don’t let the other down) => code and fix natural tendency (slot machine example)      learning      sharing knowledge      better thinking: two brains are better than one, bouncing ideas      Rubber duck debugging or the expert theory (deep questions)      there is ALWAYS something to learn, to teach.      become better at articulating your thoughts      reduction in coordination efforts managing N/2 divs => managerial argument      Improved resiliency to interruptions (although potential internal interruptions)      But we have code reviews… => choices have already been made that could have been better with another brain, chances to influence these choices are gone.
  • #6 1 Driver, 1 Navigator      Every fifteen minutes or so (or a full pomodoro), the pair switches roles by sliding the keyboard over      Ping pong with TDD : write test, other implements and write another test
  • #8 passivity: active engagement at all times      running commentary going silent => programming out loud      fear (of judgement, fixed mindset)      trust      confidence      imposter syndrome      intrusion on personal space => use pomodoro, timeout       pairing is NOT mentoring, both should be considered equal      remote pairing      culture
  • #9 Abstract:      build trust      make each other look good : Agile Australia the Spark team           No blocking           No wimping           No hogging      adopt a growth mindset : Agile Australia Peter Heslin - leveraging mindsets for effective leadership           example with kids exercise : you are smart vs you worked hard      embrace ambiguity      give space      be humble and accessible      forget pride, it will only get in the way => equals      don’t judge      use empathy, be compassionate      don’t fear/induce fear -> avoid bashing         Concrete:      personal hygiene      alternate to find the speed of the pair, ideally a bit faster than the slower      use pomodoro/timeout to ensure you have breaks, enjoy short break together, long break separately.      discuss all the things : announce what you intend to do, and why, ask for feedback early, code out loud      use the pair programming ping pong pattern       visualize => sequence diagrams       give feedback regularly slice thinly, it will boost confidence (plan well) EXERCISE: Pair slice a story, must have 8 to 18 steps : Alistair Cockburn Elephant Carpaccio
  • #10 Profiling can help you know how to be a better pair if you can’t read people   Lots of profiling tools out there, those aimed at interaction are obviously a better choice, ex: DIsC   Remote pairing => tools sharing screen (screen hero)      Better code => better environment for all of us (Devs Cultivating empathy Memorable : Best/Worst experiences: ask the crowd, discuss