Many of the Agile development practices are centered around human interactions. It’s only natural to ask the question: “How do you do Agile with a distributed team?”.
It is idealistic to think that team members will be together in the same location. The engineers might be working from home because the scrappy startup has no offices, or talent has to be found abroad because there is a shortage locally. Whatever the circumstances, it’s very likely that one or more member of the development team are going to be remote.

Far and Away

When dealing with remote teams, physical location and time difference are important factors to consider. As such, we need a tool that provides rich remote presence and also allow for asynchronous communication. For example, phone calls are good for live conversations but voicemails are a terrible asynchronous tool because they are sequential and can't be parsed easily. Conversely, e-mail is a good way to communicate asynchronously but lacks fidelity and context.

There are lots of benefits from using collaboration tools such as instant messenger, chat rooms, audio and video conference calls.

With many solutions out there, which ones to pick?

I’ve used countless combination of free and commercial voice conference services, instant messengers, chat rooms and screen sharing. They typically got the job done.

Skype’s potency is that everything is available in a single application.

Disclaimer: I’ve been consulting for Skype, so my views are perhaps biased. However, I was able to experience first hand what a large, distributed organization can do with Skype. Skype employees excel at eating their proverbial dog food. There are no phones in the office or conference rooms, teams are very distributed and the majority of communication is done via Skype, with little use of email. Software development is organized around small teams following the SCRUM methodology. In that environment, I’ve seen first hand what this product is capable of. It’s been battle field tested and I’m not aware of any application that come close to providing the same level of functionality in one package.

Agile Poker via Skype

Remote Participant in an Agile Poker Planning Game.
Note the creative use of on screen display to communicate point estimate.

What Can You Do with It?

Here is a list of Skype's most notable features and how they can impact a team’s ability to communicate on a daily basis.

Presence

This is an obvious one. We’ve all experienced a team getting together only to ask the question “Anyone seen Paul? Where is he?”.

Mood Messages

Custom status messages are not new. They can be used to convey the current mood of the person. They can also be a powerful tool to signal a status. For instance set your mood to the story title you’re working on or update it with your upcoming travel plans so everyone on the team knows your whereabouts.

Persistent Chats

In Skype, chats (one-to-one and multiparty) are persisted by default and messages are queued for offline delivery. This provides an easy way to pick up conversation asynchronously, or synchronously if the other party happens to be on-line.

Multi-party Chat, Audio and Video Calls

One of my favorite feature for SCRUM teams is the multi-person chat room. If you’ve been on a private IRC or similar chat room you know how it works. With Skype you can easily create and name chat rooms on the fly. You can invite people to participate via text, voice or video. They can be on a computer, mobile device or a regular phone. A typical usage scenario might look like this:

It’s Monday morning, Bob, the remote SCRUM master initiates a chat with Paul, one of the engineer on the team.

Bob: “Hey is this time for our daily Scrum?”

Paul: “Yep, let me bring my laptop in the room and gather the troops”

Bob: “Ok”

Paul: “Ok, we’re all here. Let’s switch to video call”

Bob: “Ok”

Bob clicks the call button and the video and audio starts up.

Paul (talking): “Hi Bob. Can you add Greg to the call he’s working from home today.”

Bob (talking): “Sure no problems.”

Bob click on the add participant button and search for Greg. He adds him to the call. Since there are multiple parties now in the chat, Bob also renames the conversation with a more relevant title: “Sprint 42 Daily Scrum”. The chat room will be persisted at the end of the call and all the invited participants will remain, so it will be easy to initiate another call with the same group for the rest of the week.

Greg (talking): “Hi guys, thanks for patching me in.”

Bob (talking): “Ok, let’s start with Greg and then go around the room.”

At one point, the team realize that they need some information from Serge, the night owl sysadmin. Serge just woke up an hour ago and now he’s on his way to the office. He’s driving and only has his cell with him.

Bob (talking): “Hey, what’s Serge’s mobile number?”

Greg (typing into the chat room): “Here you go: +16505551212”

Bob clicks on “add people to the conversation” and paste the number to dial Serge’s mobile directly. Serge is now called into the conference call and can answer questions from the team. This is simple example of what you can do with that. There are many more usage scenario. Whenever your team does not neatly fit together in the same room. You can create as many “rooms” as needed. For instance you could have a standing room for daily scrum, one for release going live, one for general team discussion, etc. In every instances, once you’ve invited the relevant people, they are automatically able to participate and read historical messages.

File Sharing

Once you’ve approved a person in your contact list, you can easily exchange files. No more attachments clogging emails. You can also send a file to multiple participant in a chat room.

Bridge to PSTN

One of the most undiscovered feature of Skype is that you can use it to make call to regular phones. This is a great way to bring in “legacy” participant into a conference call.

Runs Everywhere

Windows, OS X, Linux, iPhone, Android are supported.

Low cost

For the most part, the Skype service is free. Calls to phone are charged at a ridiculously low rate and some advanced feature like group video calls require a premium subscription which is inexpensive.

“Enterprisy” Too

One of the biggest drawback of using a consumer tool in a corporate environment is the lack of user management. You might be a small team now, but sooner or later the team will grow, some people will leave the company and you might have to deal with access control to revoke someone’s access. Skype has introduced a new user management system that allows an administrator to manage accounts, create a directory of users and allocated credits to be used by individual for paid features.

Screen Sharing

This is probably Skype’s weakest feature at this point. Screen sharing is only available during one-to-on calls, which means you can’t share your screen with a group. The feature is essentially using your desktop as a source for video call. The resulting image quality and frame rate is adequate but not great. As long as your other tools for planning (bug tracking, wiki, etc.) are available to everyone, it’s not necessarily a problem as each participant can follow along on their own instance.

Try It Out for Yourself

I hope this list has inspired you to try it out for yourself. Download Skype and get started.