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

Why & How We Remote Pair Program

Why & How We Remote Pair Program

The video of this talk is available on the ATLRUG YouTube Playlist at http://bit.ly/1gCjO4f. The excellent Q&A session starts at 31 minutes.

Brandon Dees and I gave a this talk about how and why we do remote pair programming when he lives in Nashville, TN, and I live in Johns Creek, GA (a 416 mile round trip) on Wednesday, October 9, 2013 at the Atlanta Ruby Users' Group (ATLRUG).

We cover the pros and cons of remote pair programming. Explain a bit about how our typical work day is structured. Finally, we go into what gear is required and show off the studio gear that we have put together for our own use.

If you take away only one thing, please remember that good programming is ultimately about teamwork. It requires continual communication and mutual respect.

Oh, by the way, we did indeed remote pair program this presentation using Google Slides.

Frank Rietta

October 12, 2013
Tweet

More Decks by Frank Rietta

Other Decks in Programming

Transcript

  1. Pros of Pair Programming • Accountability, Intensity, Focus • Knowledge

    Transfer, Shared Learning • Combined Knowledge, Problem- solving • Rapport > Competition • Solving problems > Egos • Continual Code Review
  2. Cons: Why Not Work Remote / RPP • Scheduling Difficulties

    • Technical Obstacles ◦ Software Compatibility ◦ Connectivity ◦ CPU / Memory intense • Not the same as sharing an office ◦ Hallway conversations, group interaction limited ◦ Including clients amplifies the other issues
  3. The Prescribed Pairing Methodology • Two Programmers, One Computer •

    Comfortable Chairs • 1 (or 2) keyboards and mice • Switching Roles ◦ Navigator ◦ Driver • Good Etiquette ◦ “Do you mind if I drive for a bit?” • Focus Photo Credit: Lisamarie Babik / Wikipedia
  4. Use what works • Pairing is about optimizing communication within

    the development team • Programming is all about communication in the first place ◦ Translating what client says to real requirements ◦ Between requirements and machine behavior ◦ Between past, present, future developers/selves • Your workflow should, above all else, optimize for effective communication
  5. Our Daily Routine • Schedule a kickoff time ◦ Formal

    standup can be simulated remotely, YMMV • Get the distractions out of the way first ◦ Coffee refills ◦ Stretching ◦ Hacker News / RSS Feeds ◦ Urgent client communications / business needs • Review priorities (in Tracker or general) • Work together on a project OR divide tasks individually in a virtual shared office
  6. Telepresence Tools • FaceTime (least resource hog) ◦ plenty of

    video/audio options • G+ Hangout ◦ Up to 10 video feeds ◦ Cross-platform ◦ Client-friendly ◦ Includes Screen-sharing • XMPP chat client fallback
  7. Collaboration Tools • Google Drive Collaboration • Screen Hero: RDP/VNC

    on steroids • SSH + tmux/screen ◦ Byobu: jumpstart configuration
  8. File Sharing Tools • We ♥ BTSync ◦ DIY Dropbox,

    P2P, secure/private • Dropbox as the LCD ◦ Plenty of Dropbox competitors; most have technical advantages ◦ … but everybody has Dropbox
  9. The Gear Minimal cost of entry (no excuses) • Solid,

    fast internet connection (up + down) ◦ Failing this, SSH + telephone is useful fallback • Own a decent computer • Macbook is already sufficient • USB Headset ($xx) • USB Webcam ($xx, optional)
  10. Beyond the Basics The internal microphone in the MacBook Pro

    and MacBook Air are good, but pick up a lot of fan noise and also room echo. A USB headset will have better sound quality. A podcaster`s microphone (condenser) will sound even better.
  11. Philips 425264 11-Watt (60-Watt) A19 LED Household Daylight Light Bulbs,

    Dimmable Lighting is very important to get good video that is not dark and grainy.
  12. Blue Yeti USB Mic, ~$100 • Highly versatile multi-mode mic

    • Great sound quality • 3.5mm monitor and DAC • Needs vibration isolation
  13. Neewer Scissor Arm Stand, ~$25 • Inexpensive • Does the

    job • Includes XLR • Includes Shockmount
  14. IMAGE Pop Filter ~$15-25 • Double screen • Good clamp

    design • No need to spend more • Not necessary for video chat but important for closer-range recording
  15. Rosewill RHTS Headset, ~$50 • Excellent sound • External processing

    • Detachable mic boom • Surround sound + simulated sub for gaming/movies • Rough edges, but very good all-round value
  16. Barebones gear example • iMicro IM320 USB Headset, ~$11 •

    7.1 Channel USB External Sound Card Audio Adapter, ~$7 w/ shipping • Cheapo USB “security cam,” <$10 at under $50 worth of baseline gear, you have no excuse not to start.
  17. 12 Practices of Extreme Programming (1999) According to Kent Beck:

    ★ Planning game ★ Small releases ★ Simple design ★ Testing ★ Continuous integration ★ Refactoring ★ Pair programming ★ Collective ownership ★ 40-hour week ★ On-site customer ★ Metaphor ★ Coding standard