
So. Google Wave. The hype has dispersed, the hubbub has calmed down. Moreover in some quarters there’s already a backlash in progress. “Slow, over-hyped, doesn’t do much new” are opinions I’ve seen aired recently. But I think the backlash is misplaced.
Certainly Wave’s current Preview implementation is flawed and there are good technical reasons for people to dislike it. However, the more I’ve come to understand Wave, the more I believe it is potentially absolutely brilliant - a communication and collaboration … I’m going to use the phrase… game-changer. Sorry about that.
In fact, I believe that he technical problems with the Preview implementation are the least of it. The biggest challenge that Wave faces is going to be getting users to wrap their heads around it: Wave is so flexible that there is no natural metaphor that properly describes its capabilities.
When introducing an Internet-based communications medium to new users, real-world similes have always been the easiest way to go. Ten years ago it was simple: E-mail is like a letter, instant messaging is like a one-to-one chat. A blog - it’s like an online diary. Once those were sorted out you could rely on second-level metaphors that built on some knowledge of the Internet: Wikis - they’re a Web page anyone can edit - and you can see everyone’s edit history.
Wave Guide - the jargonSome context: Google Wave was developed by its creators, Lars and Jens Rasmussen, as a modern reinvention of email. They were sick of e-mail’s shortcoming as a collaborative tool (the Re:Re:Re:Re: problem). The thing they came up with - Wave describes a platform, a product, and a federated protocol. What it provides is a system for creating a discussion-document mix that can be edited by multiple users in near real-time. A wave is the overall container for a threaded conversation, consisting of one or more participants (which may include both human participants and robots). The wave contains state and stores historical information. A wave always contains at least one wavelet… A wavelet is the basic container for one or more messages - known as blips - which are often organised into a threaded conversation. The wavelet is the basic unit of access control for data in the wave. All participants on a wavelet have full read/write access to all of the content within the wavelet. Many waves will only contain one wavelet, however whenever you create a new private conversation within a wave you are spawning a new wavelet. Every wavelet contains at least one ‘blip’… A blip is the basic unit of conversation and consists of a single message in a wavelet.. Each wavelet always consists of at least one root blip. From a technical point of view the blip’s content is actually stored in an attached XML ‘document’ |
Not only does Google Wave need to be described with a messy simile melange: (“it’s a mash-up of e-mail, IRC, Wiki, and IM”). But more problematic is that the best metaphor to describe Wave’s use tends to morph from minute to minute. What seems like IM one minute can become akin to a Wiki the next and E-mail the minute afterwards. From what I’ve seen on the Preview this transition from one mode of use to another can cause a mental jolt. Overcoming resistance to those jolts and getting users to embrace the flexibility is going to be a hurdle when unlocking its full potential within a business.
In Use…
Starting off a wave conversation when you are the only person on line can seem like e-mail. But if there are several of you online simultaneously, the experience is more like IM or IRC. One unnerving quirk of Wave is your ability to see other people’s keystrokes, complete with pauses and back-spaces in real-time. Often this means that one person will start typing… and before they have even finished their first line, someone else will have chipped in and started replying. The first person, seeing the reply emerge will sometimes go back and start amending their original thought, leading to the second person deleting their own reply.
It makes for a fast-moving collaborative environment that feels like a meeting where everyone is talking at once. And that is even before someone starts editing the very same blip you are typing, even as you are writing it.
Potential applications
This fluid environment presents some novel applications. One example may be to transform the technical support discussion forums and FAQs that are common on technical Web sites.
The problem with discussion forums is that they are poor when it comes to finding previously answered questions. Consequently, they often contain the same question, asked multiple times in slightly different ways by different people and , answered in a variety of manners. After trawling through a discussion board for a while, the user is often left screaming ‘yes, but which is the right answer? Before deciding to post their new version of the same question. By contrast the FAQs are easy to navigate to find answers but the content can quite often be stale.
Wave offers the way to combine the two (or three, if you include real-time chat support that some companies now offer).
In the Wave-using scenario, a user would visit a company’s support area and begin typing their question into a new wave. If another user or employee was online, this might turn into a real-time chat, if not it would turn into a typical threaded discussion. But once an answer had been found a moderator could edit the discussion thread down to the essential Q and A, adding it to a FAQ list, if appropriate, or deleting it from the discussion board entirely. The result is a fluid evolution from online support t to finished support document.
Why open source matters, why federation is key.
Google has committed itself to releasing Wave code under the permissive Apache open source license, in fact the first tranche is already released. The implications of open source and open protocols is clear enough - anyone will be able to implement their own Wave server, in the same way that anyone can implement their own e-mail server using the SMTP protocol. Moreover since Wave is an open Platform there are already a plethora of Gadgets and Robots that extend the base Wave functions,
Just as important, the Wave protocols will work in a federated manner - again like SMTP, meaning that contributors to a Wave can use their own local Wave servers to communicate.
For a time, the federation aspect puzzled me, since I was locked into the idea of using Wave as a conventional Web-based Internet or intranet-based collaboration medium. Why federation? I wondered. Surely, if I want to use Example Inc.’s Wave-based support forum, I’ll just point my browser at wave.example.com and away I’ll go. But here’s the clever thing about federation - it’s the key to the original Wave aim of replacing e-mail
In the federated Wave world, rather than sending an e-mail, you would create a message (actually the initial blip of a wave) on your local Wave server and then sent it to colleagues in the same way that you would send an e-mail. It would pop up in their Wave in-boxes. Your colleagues would then simply add their reply/edits, which would be seen by all the people who received the initial blip. No more Reply-to-all nightmares. So Wave doesn’t have to be something attached to a Web site for collaboration; federation makes it a peer-to-peer personal communication tool.
Problems Problems
So why do the people who hate Wave, currently hate it so?
- The need for speed Preview’s Web interface, written in GWT (Google Web ToolKit) which frankly pushes browsers to breaking point. It works reasonably in Chrome, but in Firefox it is sluggish and Safari, which presumably uses some aggressive in-memory caching to keep things fast can see its memory usage balloon to 1.6Gigs after half an hour of intense Waving.
Currently nearly all the usable dedicated Wave clients out there are in effect site-specific browsers, accessing the Web interface. This is akin to only being able to use e-mail via Web mail. What appears to be missing is a usable client-server protocol - the POP/IMAP elements. Google itself doesn’t appear to be prioritising this (not surprisingly, it likes Web interfaces). It has open-sourced a rudimentary text-based client which uses a minimal protocol implementation, but appears happy to rely on community efforts to develop a properly rich protocol. The community efforts are stuttering along at the moment. Now, I know Web interfaces are all the rage, but personally I think that a nice snappy user experience is likely to need on a native client app.
- Who gave you permission to do that? To force people into really seeing what Wave is all about, Google has left out anything resembling a permissions system. That means I can create a wave to discuss ‘Usablity Issues in Lotus Notes’ and you can come along, delete everything and change the title to ‘Elephant farming in Bromley”. And there is not a thing that I, as originator can do about it. Certainly the other wave participants can see that you have edited my blips, and even see the history of changes, using the Playback function - but that’s not enough. Expect to see roles, permissions and access controls. Locking down permission will also service to make the new medium seem less strange and unfamiliar. However locking down too far will destroy what makes it special.
- Where is everybody? There’s no point using a collaboration medium, if there is no-one to collaborate with and at the moment activity on the Preview has slowed down, it can feel pretty quiet. Google needs to get the protocols finished and the open source code out of the door before companies can start using it in anger.
- Bugs bugs bugs Yes, it’s full of them. From the way that search and playback often doesn’t work to the fact that once a wave gets to a certain size it will - without warning - make itself read-only.
In summary: It’s a lovely idea, its open source and federated, it will have a serious impact on any business whose business is collaboration and groupware vendors will need to sit up and take note. However it needs a lot of technical work before it becomes a practical tool, I estimate a couple of years at best before we see Wave in the wild. That will give you long enough to think about exactly how you explain the new working methods to your users and customers.
Update: Clearly there weren't enough wild-eyed visionaries like me about, or perhaps the rest of the population simply got sick of waiting for the user interface to load. But Google has announced that it is pulling the plug on Wave.