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

Remote Pair Programming for Pivots, Client Deve...

Joe Moore
August 02, 2012

Remote Pair Programming for Pivots, Client Developers, and Distributed Teams

Learn how we use remote pair programming at Pivotal Labs.

Joe Moore

August 02, 2012
Tweet

More Decks by Joe Moore

Other Decks in Programming

Transcript

  1. Joe Moore Remote pairing full time since 2010 Who? Chad

    Woolley Remote pairing full time since 2006 Tuesday, August 7, 12
  2. When? You have a life altering event but want to

    keep working for Pivotal Tuesday, August 7, 12
  3. Pairing Benefits • Higher quality • Fewer defects • Focus

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

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

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

    • Make an effort to include remote dev • Take breaks, play ping pong • Use video (at least at first) How? Tuesday, August 7, 12
  7. 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? Tuesday, August 7, 12
  8. Challenges Technology gremlins • flaky internet • firewalls • Skype

    • crappy software • broken hardware • Skype • VPNs • SKYPE Tuesday, August 7, 12
  9. 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 Tuesday, August 7, 12
  10. Challenges Lack of shared facilities • Whiteboards • Notecards •

    Big visible charts • Information radiators • Lunch area • Hallway conversations • Tuesday, August 7, 12
  11. 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” Tuesday, August 7, 12
  12. Remote pairing interviews See previous list, and also: • Send

    setup email 24hrs before (wiki: Pairing Interviews). • Consider browser-based screen sharing for simplicity (more later) “You’re remote pairing today” Tuesday, August 7, 12
  13. “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 -- Mac, PC, or Linux? • What is your screen resolution? If you could, please download and install TeamViewer, which we will likely use for screen sharing. Also, please invite 'pivotaljoe' as a Skype contact. I will call you at 1:30PM NYC time. Talk to you soon! Remote pairing interviews Tuesday, August 7, 12
  14. The Tech Talk to Ops about getting on the fastest

    ethernet network Tuesday, August 7, 12
  15. The Tech VPN: Talk to Ops if clients need access

    to Pivotal’s network Tuesday, August 7, 12
  16. The Tech VPN: There are options if you need, but

    are denied, access to a client’s network Tuesday, August 7, 12
  17. The Tech: Screen Sharing Full Desktop Sharing Considerations Cross Platform?

    Self explanatory No VPN Some (usually) punch through firewalls, some don’t In Web Browser Easiest way to get a session going, but often limited features 2-Way Control Some software only allows the host to control Tuesday, August 7, 12
  18. 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 Tuesday, August 7, 12
  19. 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 Recommended Tuesday, August 7, 12
  20. The Tech: “Screen” Sharing tmux – shared ssh sessions •

    Fast! • Good for Vim editor projects • Best for low bandwidth connections Tuesday, August 7, 12
  21. The Tech: “Screen” Sharing tmux cont… • Requires ssh access,

    possibly VPN • tmux commands vs. OS commands • Desktop screen sharing for some activities • Not for IDEs - Java, iOS Tuesday, August 7, 12
  22. The Tech Love it or hate it, Skype is ubiquitous

    and has great echo cancelation Video Conferencing Tuesday, August 7, 12
  23. The Tech Link-O-Rama •Large Teams with Remote Devs: Pivotal Blog

    •Video Conferencing Hacks: Pivotal Blog •How we use tmux: Pivotal Blog •http://remotepairprogramming.com •Everything Skype: Pivotal Wiki •Headsets and Headphones: Pivotal Wiki •Remote Pair Programming: Pivotal Wiki •Screen Shairng Technologies: Pivotal Wiki Tuesday, August 7, 12
  24. Dedicated stations: everyone knows where to find the remote people

    Long Term Remote Pairing Tuesday, August 7, 12