Archive for December, 2009

Catching the Wave: Tempo — Up, Down and everything in-between

December 7, 2009

Let’s talk about the concept of “tempo”. (For this term, I have to thank Stowe Boyd, who introduced us to it while I was at Zingdom — I think it’s evocative and right.) It’s helpful to think of online social tools as being focused on either “up-tempo” or “down-tempo” conversation.

Email is the classic example of a “down-tempo” tool. It takes a while for a message to get from the sender to the recipient, and the ecosystem has evolved around that. Conversations often last a long time, pinging and ponging over the course of days. The assumption, when you send a message, is that the recipients may not be present, so their messages are saved, and they might respond at any later time. The conversation is gradual in its pace.

IM, on the other hand, is “up-tempo”. While there are exceptions, most IM conversations take place between people who are present at their computers right now, and everything is built around that. Presence is key in IM: if the other person isn’t online, you probably don’t bother to talk to them right now. There are no guarantees of reliability: if you send them a message, and they’re not online, they may never get it.

The thing to keep in mind about Wave is that it is multi-tempo. If everyone is present, it can get very fast and interactive — indeed, even more interactive than IM. But all changes are stored, and it is specifically designed so that, if you come to the conversation three hours later, you can catch up.

This is a big deal: while Wave isn’t the only system built for multi-tempo, it takes the problem more seriously than most. It’s specifically intended to let you collaborate very effectively and interactively when multiple people are present, but still be easy to jump in later and catch up.

Chad has pointed out to me that the terms “synchronous” and “asynchronous” are often used where I use “up-tempo” and “down-tempo”. They’re nearly synonyms, but I prefer the “tempo” approach mostly because it implies less of a dichotomy. We generally think of “synchronous” and “asynchronous” as very different modes of communication, and they traditionally are — you can lump most online media into one or the other. But the reality is that it’s a sliding scale, even for the more traditional media but especially on Wave, so I have a mild personal preference for terminology that matches that.

Pushing and Pulling

Closely related to this is the question of “push” vs. “pull” methods of interaction. In their most traditional modes, email is “pull” — you go to a mailbox on your own time, and look for new stuff that has come in — whereas IM is “push” — when someone has a new message for you, you get immediate notification so that you can reply immediately.

Of course, these lines have been blurring for years. Many IM systems allow pull: if you’re not around, they will save the messages you have missed until you log in again. And my email is now very “push” — my cell phone rings when I get a message via Gmail.

Wave takes a very pragmatic view of this: it allows you to use both push and pull pretty much as you want, and is well-optimized for both. In particular, it’s designed to push stuff to you instantly if you’re around, but makes it easy to catch up later if you’re not. I’ll talk about this more in a couple of days.

Next: Threading the Conversation

Catching the Wave: Shall We Play a Game?

December 2, 2009

Let’s work through an example, which should give you the idea of how Wave is used.

Say I want to work together with my friends on something — say, figuring out some new poker variations for our monthly poker game, which is going to be Halloween-themed this month. (A shout-out to my friend Charley for providing the fine real-world example, and who was the real “I” in this story.)

I create a wave, and start off with some text describing the idea, and one or two sample ideas for games that I’ve thought of. I include the members of the poker group in the wave. (This isn’t quite email, so I don’t really “send” it to them. I can add new people to the wave at any time.)

At this point, Chad decides to jump in with another idea or two, and some critique of my initial ones. We’re both online at the same time, so the conversation goes quickly, with messages zinging back and forth inside the Wave. Both of us are editing the original article — the list of games — as we go, and in the course of a few minutes, we’ve beaten out a bunch of bugs in the games.

A couple of hours later, Mark logs onto Wave, and sees that there is a new conversation in his Inbox. He’s got some questions about several of the variations, though. He replies to several of the messages (creating subthreads by doing so); he also goes directly into the main document and replies right next to a couple of the game descriptions, starting threads in the middle of the document.

Chad has Wave open, and notices that his Inbox shows activity in the poker conversation. He opens it up, and starts a real-time conversation with Mark. Right there in the middle of the document, they chat back and forth a bit, and figure out where Mark is confused. They edit the document a little to make it clearer, then delete the conversation they just had (which is now just in the way).

Hopefully, that example gives you at least a hint of how the tool is used. Most useful waves seem to follow this general model: a bunch of people working together to refine the stuff that is contained in the initial blip. This is a somewhat controversial assertion, and certainly open to debate, but it is what I’ve observed in practice. In its current state, Wave has issues with more open-ended and less-focused conversation — I’ll talk about those more later in the series.

(For the record, the end result was one pretty good game, and one insane but amusing one.)

Next time: “Multi-Tempo and Heavyweight Threading”, as Google tries to square the circle of conversation models…

Catching the Wave: Sprechen sie Jargon

December 1, 2009

Okay, for real this time: let’s start talking about what Wave is. Bear in mind, I’m going to be talking about how I see it, not the official Google hype.

At its heart, Wave is a tool for shared workspaces that involve conversations. In this, I’m using “conversation” in the most general sense: a group of people interacting. At the moment, that’s mostly through text, but in the long run those interactions will involve everything from party-planning tools to maps to spreadsheets.

To begin with, here’s some terminology. Okay — some jargon. But it’s official Wave Jargon, so we may as well get used to it now.

  • Wave (with a capital W): the tool itself. If I specifically mean Google’s version, I’ll sometimes say Google Wave, but since that’s the only real implementation yet, that’s usually what “Wave” means.
  • wave (with a small w): a shared workspace/conversation, which includes a specific group of people who are working together. (You can have public waves, but they have lots of problems. Personally, I think they’re currently a bad idea; I’ll get into why later.)
  • wavelet: a single permissions boundary within the wave. This is the bit that matters a lot to the techies, and very little to everyone else. A wave is composed of any number of wavelets, each of which potentially includes a different list of participants. This is how you can have what are called “sidebars” in some conversation systems or “private replies” in Wave: side-conversations that only a couple of people are in. In practice, though, most waves contain exactly one wavelet.
  • ping: a private wavelet between two people, sometimes inside another wave, sometimes on its own. Pings typically look a lot like IM conversations inside Wave.
  • blip: an individual element of collaboration. In practice, usually a single message sent by somebody. If you think “blip” == “message”, you’re reasonably close most of the time.
  • thread: a bunch of blips that are responding back and forth. Threads can be stuck anywhere: as sub-threads that reply to a particular blip, or even inside another blip. This is weird, different, and possibly the most useful single thing about Wave: that threads can not only be deeply nested trees, but that you can put one of those trees wherever it seems useful.

So you create a wave to talk about a given topic. This contains one or more wavelets, each of which is essentially a separate conversation about that topic. Each wavelet contains a root blip, which is most often the thing you’re talking about, and lots of other blips that make up threads of replies; these threads can be placed more or less anywhere in the wave.

Next: an example of Wave; or, Shall we Play a Game?