Integrating Remote Developers: Intuitive, Flexible Video Conferencing

July 13, 2012 Joe Moore

I recently blogged about about integrating remote developers with large development teams. An important but finicky part of bridging the gap between remote developers and the rest of the team is video conferencing.

How hard can this be? It’s Skype, right? While most techies know how to use Skype to make video calls, the difficulty is managing headsets, external microphones, external speakers, and switching between all of these frequently throughout the day. Despite what Apple might tell you, it does not “just work”, especially Skype, which has a particularly baffling user interface.

Early in our large project’s history the following scene played out frequently:

  1. Office developer sits down at a workstation and Skype’s a remote developer.
  2. They can’t hear each other!
  3. Office developer finds headset is unplugged, plugs it in to Skype laptop.
  4. Still can’t hear!
  5. Office dev opens the Mac sound preferences, clicks around a bit.
  6. Still can’t hear!
  7. Office dev dives into Skype sound preferences… Ah-ha! Select headset.
  8. Still can’t hear!
  9. Remote developer starts messing with his own preferences, settings, cords…
  10. Bingo! Finally, they can hear each other, but suddenly…
  11. Someone in the office needs to talk to both developers.
  12. Office dev starts changing audio settings again, plugging/unplugging stuff…
  13. After several minutes a group conversation can be held.
  14. Group conversation is over. Go to Step 1.

The Need: Intuitive, Flexible Video Conferencing

Actually, it’s mostly about the audio: the video usually works fine. We needed a means to easily switch between pairing-mode and group-conversation-mode — that is, between headphones + mic and external speakers + external mic. Above all else we wanted to avoid constantly changing software preferences. We needed something as easy as pressing a button or plugging/unplugging a single jack.

So far we have found two solutions that work well:

  • Solution 1: External Speakers with Headphone Input: An external microphone, external speakers with a headphone jack, and regular “music” headphones.
  • Solution 2: Seamless USB Audio Input Switching for Skype: An external microphone, external speakers, a USB headset, and a bit of special Mac and Skype configuration.

Read on for more details.

Solution 1: External Speakers with Headphone Input

This solution relies upon a high quality external USB mic for both pairing and group conversations. Personally this worked fine for me — the background noise in the office was actually useful, not overwhelming, and I enjoyed hearing bits of the conversations going on in the office. Others might find the background noise annoying.

  1. Connect a high quality external mic (such as a Blue Snowball) and external speakers to the Skype machine. The speakers must have an external headphone jack.

  2. Configure the Mac and Skype to use the Snowball mic

  3. When pair programming: plug your headphones of choice into headphone jack on speakers

  4. For group conversations: unplug headphones. Voilà! Speakers will be live.

That’s it! Toggling between pairing and group conversations is as easy as unplugging the headphones.

Pros

  • Simple setup
  • Intuitive to use
  • Uses external mic rather than headset mic – remote can hear background conversations

Cons

  • Uses external mic rather than headset mic – background noise possibly an issue.
  • Sharing in-ear headphones/earbuds is icky. People should probably use personal headphones.

Solution 2: Seamless USB Audio Input Switching for Skype

For a normal remote pairing scenario the computer’s audio priorities should be as follows:

  1. Headset microphone, headset headphones: remote pair programming.
  2. External microphone, external speakers: group conversations including remote developer.
  3. Internal microphone, internal speakers: default, no extra hardware.

Managing this audio setup would be as easy as plugging and unplugging your USB headset. When pairing with a remote developer, plug in the headset for a quiet, private pairing experience. When a group of people arrives at your desk and need to speak with both you and the remote developer, simply unplug the headset to activate the external hardware. When the group conversation is over, plug the headset back in.

Simple. Intuitive. Low-overhead.

Unfortunately, your computer doesn’t know about these priorities. Also, Skype has its own audio input/output settings independent from the computer’s OS-controlled settings.

Luckily both the Mac OS and Skype are “trainable” and will respect the above priorities if you know how to teach them. Note that Skype takes a “hint” from your Mac on how to switch inputs and outputs. Thus, we must train them both at the same time. Here’s how:

  1. Open both the Mac Sound System Preferences and Skype’s Audio/Video preferences. No external Audio devices should be detected.

    (Click for a larger image)

  2. Plug in the external mic. Once it is detected by both the Mac and Skype select the mic in both Mac and Skype preferences.

    (Click for a larger image)

    Before continuing, Close, then reopen the Skype Audio/Video preferences. You know, just to make sure it sticks.

  3. Plug in your USB headset. Once it is detected by both the Mac and Skype select the headset in both Mac and Skype preferences.

    (Click for a larger image)

    Close, then reopen the Skype Audio/Video preferences. Is this needed? I don’t know… maybe. It’s Skype.

  4. Test the configuration: Unplug your USB Headset. Skype and your Mac should automatically switch to using the external mic. Plug the USB headset in again. Skype and your Mac should automatically switch to using the USB headset again.

    (Click for a larger image)

    If it didn’t work, unplug everything, quit System Preferences and Skype, and start over.

Overall this is my preferred audio setup, though it takes a couple of minutes to set up and can be confusing the first time. But, once it’s set up, the configuration is usually solid and you rarely have to touch it again. Also, unlike the headphones-jacked-into-speakers technique, the headset mic is fully utilized for the best audio quality. You can also plug external speakers into the computer’s headphone jack without confusing the computer or Skype.

Pros:

  • Intuitive to use
  • Highest audio quality for both developers
  • No configuration changes after the first time

Cons

  • Confusing “training” process
  • New audio hardware might require re-training of Mac and Skype

What Do You Use?

Do you use a cool A/V setup? Tell us about it! We love to try new things. We’re still on a quest to find the best iPad-based A/V configuration. With any luck we’ll report back on that soon.

About the Author

Biography

Previous
Can Data Science Revitalize the Music Industry?
Can Data Science Revitalize the Music Industry?

You don't have to work in the music business (though I did in another life,) to know that the industry is e...

Next
7/13/2012 – Happy Friday
7/13/2012 – Happy Friday

Helps Heroku Maintenance Mode Fail Does anyone know why maintenance mode doesn't seem to work? Is there an...