Yep, They're Buying SmartPhones! Great stats from Black Friday...
Kudos to Mitel on starting to post customer case study videos

Skype and the Incredible Power of Persistent Group Chats

What is one reason why many people continue using Skype for chat / instant messaging when so many other solutions are out there? Particularly when Skype chat is a closed, proprietary "walled garden" that doesn't interact with IM networks?

After I wrote recently about being a huge user of Skype, Michael Graves asked in the comments why an organization like Voxeo that is so insanely devoted to open standards (and even uses a tagline of "Unlocked Communications") would use something as closed as Skype?

It's a great question, and while I answered his comment, it bears a bit more exploration.

In 3 words, the largest reason for using Skype is this:

persistent group chats

Being a globally distributed company, Voxeo is an IM-centric organization and we set up "group chats" within Skype for pretty much every activity we're doing. Some of those are long-living group chats for communication within various teams or groups of people. Those chats may continue to exist for literally years and have people added and removed to them over time. Some group chats are created for short-term projects or deliverables. And some may be created ad hoc for resolving quick issues - and then disbanded as soon as the issue is dealt with. If a customer has a problem, an alert may be posted in one of our "main chats" and then a "side chat" is formed with the specific group of people who can help right then to resolve whatever the problem will be.

It's a very effective way to work once you get used to it (and learn how to use Skype's ability to notify you of certain types of activity in chats). I have probably 50+ chats open in my Skype client right now, most of which are having little or no traffic at the moment, but a few of which are having active discussions.

The Power of Persistent Group Chats

But what I described as an IM-centric workflow could be accomplished by any chat system... why Skype? This comes down to the difference between typical "group chat" systems and "persistent group chat" systems.

Skypechats.jpgHere's the basic scenario of why this is so powerful:

1. I GO OFFLINE - Perhaps I'm going offline for a meeting. Maybe I'm about to board a plane. Maybe I'm shutting off my system at the end of the day.

2. PEOPLE DISCUSS ITEMS IN MY ABSENCE - The messages in the chat continue to be exchanged, discussions happen, decisions get made, etc., etc.

3. I COME BACK ONLINE - My meeting is over. I landed at my destination. My work day starts. Whatever...

4. I RECEIVE *ALL* THE MESSAGES THAT OCCURRED IN THE CHAT WHILE I WAS OFFLINE - Bingo... I can just scan through everything that happened while I was offline and get caught up on what happened while I was away. Now this sometimes may take a few minutes (for a reason I'll discuss below) and isn't always perfect, but most of the time it works incredibly well.

There is immense collaboration power in this capability. Given that I travel a good bit speaking at conferences I spend a great deal of time on planes. I'll often be working at the airport prior to departure and will be interacting with others via Skype. I'll close my laptop, fly to wherever I'm going, and then open the laptop back up either at the destination airport or at the hotel or office or wherever. Over the course of a minute or two, my Skype client automagically catches up and gives me the full history (subject to a caveat below) of all the discussions that occurred while I was in transit.

Similarly, with globally distributed teams where we may have engineers in Germany, the US and China all collaborating on a project, persistent group chats allow them to rapidly catch up on what occurred when each group was offline.

Of course, if you are offline for a longer period of time, you might come back to literally thousands of messages and want to just "catch up" and mark all old messages as viewed. This was why I was displeased that Skype removed the "Mark All Viewed" button from the Skype 5.0 Beta for Mac client (and I do hope they'll bring it backUPDATE: Skype did bring the feature back in the production release of the Skype 5.0 Mac client).

UPDATE: - Another aspect of working offline bears mentioning. Recently, I shut down my computer and got on a flight. While in the air, I went through a Skype chat, read all the messages and wrote a whole bunch of responses into the chat. When I landed, I connected to the free WiFi at the airport and Skype went through its sync process, pulling down all the chat messages that occurred while I was in the air and posting to the chat all the messages I had written while in the air. I then shut down and traveled from the airport to my hotel, where I once again opened up my laptop, reconnected with Skype and received all the messages that people had written while I was in transit from the airport.

This ability to read and write while offline is a powerful capability. In the past I've had flights with a long layover and performed a similar process. Reading and writing on the first leg, syncing at the layover to get new messages, and then reading those and responding to them on the second leg of my trip.

But why Skype?

But, you say, there are other "persistent group chat" implementations out there... why Skype? Simply because it is the best implementation of persistent group chats we've found so far. Add to that the simplicity of usage, the fact that it has a solid Mac client (and we're a Mac shop), the fact that it can connect from pretty much any location we're in... and the fact that it uses encrypted communication channels.

Having said all this, we're not wed to Skype.... we certainly keep an eye out on other communication tools and have a number of ideas ourselves... if we found something that worked as well and had an open architecture, we'd certainly look at it... but today we use what works - and works well.

The Technology Behind Skype's Persistent Group Chats

If you are not familiar with the underlying technology behind Skype, you may want to pause here and ready my post, "A Brief Primer on the Tech Behind Skype, P2PSIP and P2P Networks".

If you think about Skype's P2P architecture a bit, the technology behind their implementation of persistent group chats is intriguing. In a typical client/server IM network (like AIM, Yahoo, Jabber, IRC, etc.), the clients are communicating with a server and all the chat messages are stored on the server. Other server-based systems can implement persistent group chats by storing all the messages on the server and then sending them out to clients that re-connect to the server.

But with Skype, there are no servers. Instead, the chat messages get stored in the fabric of the P2P overlay network that interconnects the Skype clients to each other - and more specifically within each of the various Skype clients participating in the group chat.

When your Skype client comes back online, it initiates connections out to other clients that are members of the same chat and requests updates for what messages were sent in the chat while your client was offline. I don't know the exact number of clients your client will reach out to, but conversations with folks from Skype in the past seemed to indicate your client would reach out to a maximum of 15 other clients to find out what was in the chat. (Assuming there are more than 15 people in the chat. If not, obviously it only reaches out to those clients in the chat.)

For EACH group chat that you have.

So if you have a lot of Skype group chats, like I do, you can understand why Skype might trigger security systems at hotels when it goes off to do its initial sync with other Skype clients, purely by the sheer volume of network connections it opens up.

This does bring up one caveat with Skype that I referenced above. Depending upon the size of the chat and the availability of all participants, the full history may not be immediately available. If you are in a chat with 4 people, and the other 3 are offline when you come back online, you won't see the history until others come online. If one other person is online, you will get the history from that other client... which may be the full history, depending upon whether that client was online all the time. You see where I'm going with this... it may take a bit for you to get the full history.

In larger chats, I've seen less of an issue with this because odds are that more people will be online at any time and so your client can receive updates (although there is an edge case that I'll write about sometime). In smaller chats, though, I've seen update issues like this.

All in all it is an intriguing implementation from a technology point-of-view... as someone working with networks for years, I admit to being fascinated by it all. :-)

P.S. It's amusing to also look at what I wrote about Skype's persistent group chats back in January 2007... little did I know how much I would come to use them!

If you found this post interesting or useful, please consider either: