Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Remote Pair Programming: A Guide for Distribut...

Joe Moore
August 15, 2012

Remote Pair Programming: A Guide for Distributed Agile Teams

Remote pair programming is surprisingly simple and inexpensive to implement, but it’s not just about bleeding-edge technology — a good attitude is just as important as good technology. Joe will walk you through how your distributed team can successfully implement remote pair programming, allowing you to realize the same benefits as in-person pairing and address some of the challenges of distributed development. Joe will discuss the important personal and interpersonal skills needed for remote pairing as well as the technology.

Distributed agile teams need not forgo the valuable discipline of pair programming. Thanks to ubiquitous high speed internet service, major advances in online collaboration technologies, and the need to source talent wherever they might be, remote pair programming is becoming more common.

Joe Moore

August 15, 2012
Tweet

More Decks by Joe Moore

Other Decks in Technology

Transcript

  1. Remote Pair Programming A Guide for Distributed Agile Teams …

    and other thoughts about remote collaboration Wednesday, August 15, 12
  2. Pair Programming? • Higher quality • Fewer defects • Focus

    • Intensity • Faster problem solving • Knowledge transfer • Code review • Wednesday, August 15, 12
  3. Why? RPP can have the same benefits as in-person pair

    programming Wednesday, August 15, 12
  4. Why? • Higher quality • Fewer defects • Focus •

    Intensity • Faster problem solving • Knowledge transfer • Code review • Wednesday, August 15, 12
  5. Why? • Higher quality • Fewer defects • Focus •

    Intensity • Faster problem solving • Knowledge transfer • Code review • Wednesday, August 15, 12
  6. Why? Some people like it better than in-person pairing? It’s

    true! I’ve heard it multiple times! Wednesday, August 15, 12
  7. How? “Do you mind if I drive?” “I’m going to

    grab the mouse.” “Can I look at something?” “Go ahead and drive.” Wednesday, August 15, 12
  8. Do… • Be patient • Be assertive about being included

    • Make an effort to include remote dev • Take breaks, play ping pong • Use video (especially at first) How? Wednesday, August 15, 12
  9. x Exclude remotes from local conversations x Exclude remotes from

    meetings x Be the strong, silent type x Just walk away x Lay your headphones on keyboard Don’t… How? Wednesday, August 15, 12
  10. Challenges Lack of shared facilities • Whiteboards • Notecards •

    Big visible charts • Information radiators • Lunch area • Hallway conversations • Wednesday, August 15, 12
  11. Challenges Technology gremlins • flaky internet • firewalls • Skype

    • crappy software • broken hardware • Skype • VPNs • SKYPE Wednesday, August 15, 12
  12. Skype • Skype • Skype • Skype • Sk ype

    • Skype • Skyyyyyyyype • Skyp Skype • Skype • Skype • Skype • Sk SKYYYYYYYYYYYYYYYYYYYYYY YYYYYYYYYYYYYYYPE!!!!!!! • Sky • Skype • Skype • Skype • Skype Skype • Skyyyye!!! Skype • Skype • Skype • Skype • Skyyyyyyyyyyyyype!!! • Skype • Sky Wednesday, August 15, 12
  13. 1. Find a headset 2. Exchange Skype info and invites

    3. Call, preferably with video 4. Talk about RPP experiences 5. Agree on OS, editor, dev setup 6. Choose and try a screen sharing tech “You’re remote pairing today” Wednesday, August 15, 12
  14. See previous list, and also: • Send interviewee a setup

    email 24 hours before the interview • Consider browser-based screen sharing for simplicity (more later) “You’re remote pairing today” Remote pairing interviews Wednesday, August 15, 12
  15. “You’re remote pairing today” Hello Sally -- I'm Joe Moore,

    software engineer at Pivotal Labs. You and I will be remote pairing today! Do you mind answering a couple of questions and performing a little setup? • What is your Skype ID? • What operating system are you using? Are you on a Mac, PC, or Linux machine? • What is your screen resolution? If you could, please download and install TeamViewer, which we will likely use Remote pairing interviews Wednesday, August 15, 12
  16. The Tech: Screen Sharing Many options depending on networks speed,

    firewalls, ease of use Wednesday, August 15, 12
  17. The Tech: Screen Sharing Full Desktop Sharing Considerations Cross Platform?

    Works across Windows, Mac, Linux No VPN Some (usually) punch through firewalls, some don’t In Web Browser Quickest way to get a session going, but sometimes limiting 2-Way Control Presentation software only allows the host to control Wednesday, August 15, 12
  18. Joe’s Recommendations The Tech: Screen Sharing Full Desktop Sharing Cross

    Platform No VPN In Web Browser 2-Way Control ✓(VNC) X X ✓ ✓ X X ✓ X ✓ X ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ X X ✓ ✓ ✓ X Wednesday, August 15, 12
  19. The Tech: Screen Sharing Full Desktop Sharing 2-Way Control ✓

    ✓ ✓ ✓ ✓ ✓ X X Pause for Rant Wednesday, August 15, 12
  20. The Tech: “Screen” Sharing tmux – shared ssh sessions •

    Fast! • Good for Vim, Emacs editors • Popular in Ruby, Scala communities • Best for low bandwidth connections • Addictive usage model Wednesday, August 15, 12
  21. The Tech: “Screen” Sharing tmux cont… • Requires ssh access,

    possibly VPN • Learning curve using tmux commands • Desktop screen sharing for some activities • Not for IDEs - iOS, Java, .NET Wednesday, August 15, 12
  22. The Tech Love it or hate it, Skype is ubiquitous

    and has great echo cancelation Video Conferencing Wednesday, August 15, 12
  23. Works best with dedicated RPP stations and dedicated audio/video laptops

    Long Term Remote Pairing Wednesday, August 15, 12
  24. Dedicated stations: everyone knows where to find the remote people

    Long Term Remote Pairing Wednesday, August 15, 12