Wednesday, December 30, 2009

The Problem With Google Wave

Writer's note to self: too snarky. Reconsider tone for analytical pieces.

A few months ago my programmer friend, Max, and I started talking about Google Wave. The discussion began innocently enough. We were commenting on the CS3216 email we had all received, just a couple of days before, and the conversation eventually turned to Wave itself.

"But what is it used for?" I asked.

"Imagine!" he said, waving his hands in the air: "Imagine if we could use Wave's API to create a database, say, or a file, one in many many sets of computers. That way, everything we change in one computer can be reflected in all databases on all the other computers that are connected together, instantaneously!!"

And then he paused.

"But isn't that something you can easily do?" I said, frowning, "Using a program like, err, Dropbox?"

There was another pause as we stared at each other. And then we concluded our talk: he shrugged and said that it was Still Cool Anyway, and I agreed, and we both returned to our CS1231 assignment.

But here's the thing that's been bugging me, ever since I first heard about the project: I just don't get Google Wave. And the chances are good that you don't, either. What good is it for? How exactly do you use it? What exactly is it? I've had a Wave account for some time now, and while I've spent little time experimenting with it (let's just say I have exactly one friend who I can chat with, on Wave); I am starting to believe that Google's made a mistake with Wave, and that it would never catch on.

(But wait! ... hold your horses now. Last time I checked, boy, YOU'RE currently signed up for a module with LOTS of Google Wave development. You're not trying to ruin the party before it begins, are you?)

Well no I'm not. I'm not saying anything about Wave as a development platform; the same way I have nothing to add about Wave as a learning tool. Whether or not Wave succeeds as a web-app has nothing to do with the two factors above. But I do think that there's something fundamentally wrong with Wave, as an idea, and I do think that it's worth talking about, especially so before the course begins.

Email, reimagined
One thing we should get straight: the marketing for Wave was, I think, one of the best I've ever seen for a web-based software product. Take the video for example. Google's vice-president of Engineering walked in on stage and told the audience that he was going to show them a 'revolutionary new' product, one that 'does not look at all like it's in the browser', and that he hoped everyone present would 'be as excited about it as (we) are.'

Which is - when you look back on it - really nothing more than a heck lot of hype. I know this because it got me all excited about it. I think the space above my head exploded into a hundred squiggly exclamation marks and I ran to my browser and I opened a new tab and signed up for an invitation as soon as I could. I'm not sure how it was for the developers present - because the effect must've been a hundred times more powerful when you're there, in person - but I think that maybe, just maybe, some of them might've peed in their pants.

(And then the engineering team themselves came up, and all sorts of bugs happened, and Wave suddenly didn't look so cool as before, but still. Lots of people got crazy about it, and quickly.)

But the thing is that when I now come to think about it, I realize that all the excitement I felt was a direct result of the technology on show in the conference, and not about the project itself. I was excited by the non-browser behaviour so described by Lars Rasmussen. I thought it was really cool that you could type live and upload pictures and tag people, and I thought it was cool, too that they were building something that completely reimagined email as we know it: how email might've been, say, if it had been invented in this day and age.

Wait. Stop right there. What?!

Does anyone see what's wrong with this picture? Do you? Not yet? Alright then, let's take a look at the first blog post on Wave, at the Google Blog, on the original idea for Wave:
... (Jen) pointed out that two of the most spectacular successes in digital communication, email and instant messaging, were originally designed in the '60s to imitate analog formats — email mimicked snail mail, and IM mimicked phone calls. Since then, so many different forms of communication had been invented — blogs, wikis, collaborative documents, etc. — and computers and networks had dramatically improved. So Jens proposed a new communications model that presumed all these advances as a starting point, and I was immediately sold.

Two Problems With Wave

Problem #1. The most successful products in the world today are products that fulfill a need. This is true even if the need is something that your users do not yet know they have. So what need, exactly, does Google Wave solve? If you read the introductory post on Wave a second time, you'll quickly realize that the project says almost nothing about this need. In fact, Wave's creators are so silent on this one important detail that the bloggers at Lifehacker were forced to ask their readers the very question the devs had neglected to ask.

This lack of focus, then, begs the question: what was the dev team thinking?! If it seems that they're far more interested in the razzle and pomp of the technology (in this case, HTML 5, which Google has chosen as their replacement to Gears) then you may well be right. If you watch closely, the introduction post begins to read something like this:

So ... we looked at all the OLD forms of communication, and they seem, well, OLD. And so we're going to build a new one ... because, you know, we're bored here, and we're looking for a project, and, well, uh, we really REALLY think it's cool. Like REALLY!


The Rasmussen brothers are building Wave because they think it's cool.
Does that sound wrong to you?! Does that sound suspiciously like something from - oh wait that's not possible, oh but you mean you're not - ahh sorry bout that then. Sometimes I confuse Google with the MIT Media Lab. I really should start noting the differences. Conceptually, though, inventing a whole new communications platform; remaking the world as you do it, even, sounds like a programmer's dream project. But practically Wave has got a long shot in winter. The way it is today, Wave seems more like Google's proof of concept for HTML 5 features than it does any plausible product.

Think about it, for a bit: what's so bad about email as it is? What is so terrible about IM that Wave must fix? Last I checked, both email and IM work perfectly well together (as in Gmail) and separately. Both cater to different ends of the communication spectrum, and both are good solutions to well-defined problems. Reinventing the wheel is all well and good, but if you want the Wave protocol to replace email, like Google does, then Wave has to be demonstrably superior in every way in order to achieve the sort of monopoly that Google imagines Wave to be.

And the thing is - the thing is, well, that Wave isn't demonstrably superior to email. Not for the majority of businesses out there, not for my tech-illiterate relatives, and certainly not for day-to-day text communication. Email and IM coexist simply because people have different uses for them, the same way people had different uses for writing letters and calling on each other in the days before the Internet. By making Wave an interactive, live medium, Google has removed all possibility of Wave as an email replacement. And by adding functionality such as embedding - which, I don't know, isn't that big a loss; VIDEO SPAM, ANYONE? - Google hasn't really proven to us that Wave is that much better.

(Note: there are problems with email which Wave solves, especially when it comes to collaboration, but I'll come to that in a bit).

So that was problem #1. There's a second problem, one that I'll call the problem of mappings. One of Wave's goals, as stated in the introduction, was to imagine what a communication platform would look like based on what computers are currently capable of, instead of imitating other non-electronic forms of communication. In simple terms, Wave's developers wanted to forget about the tools which we've created for the Internet in the past. They wanted to forget about email, they wanted to forget about IM, and they wanted to forget about wikis and blogs and real-time chatrooms. They wanted to come to the computer like a baby coming to a completely new toy - with no preconceptions - to create a communication tool based on what they saw.

And was this a good idea? Well, was Troy a good idea? Absolutely not! It is precisely because of this that Wave is confusing to so many people.

There is this idea in UI design that says that there should be a conceptual connection between a new object and a familiar one, in order for the newer object to be easy to use. We call this connection a 'mapping'. Some examples: we may say that a motorcycle has good conceptual mappings, because users are likely to have experienced riding a bicycle before. We may also say that email has good conceptual mappings, because people are familiar with the idea of writing and sending letters to each other. Therefore both a motorcycle and an email as concepts are easy to understand, because they have clear mappings to things people already know and use. In fact, if we look at the long history of technology, we'll quickly realize that things succeed only in so far as the mappings are concerned. If you have clear mappings to an existing technology, then your new product will be easier to understand, and therefore better poised to gain mass acceptance. Writing succeeded because it had clear mappings to speaking; snail-mail gained popularity because it had clear mappings to writing; and email became one of the most successful communication formats of the 21st century simply because it contained clear and useful mappings to the pen-and-paper letter.

The problem with Google Wave is that it has almost no mappings to anything that currently exists. It is a rethink, as opposed to an incremental upgrade, and in the history of technology rethinks are death traps to innovative products. In this particular case, Wave is a mishmash of features that appear to be thrown together merely for the heck of it, simply because its inventors came to the computer the way it was, saw its capabilities, and decided to throw it all together just because they could.

If that wasn't bad enough, Google's language regarding Wave is confusing enough to suggest that even its developers don't understand what a Wave really is. In the introductory talk Lars Rasmussen describes it as email and IM, reimagined; in another it is described as a communications protocol; and on the about page Wave is called a conversation/collaborative document hybrid. It could be that Wave is one or all of those things, but the ideas we have about any one of those individual elements are hard to reconcile with one another. For example, how is an email, which is static, reconcilable with IM (and how is that more useful than the sum of its parts)? Also, how is a shared document any more valuable when IM functionality is added to it? One thing's for certain: if Google keeps talking about Wave in such conflicted terms, there's no way in hell that a grandmother in Texas, for example, would give Wave a passing glance.

One Answer
One solution to this problem is for Google to drop its dreams of a replacement email protocol and instead rebrand Wave as a collaborative project-management tool. I told you earlier that email as a medium does have certain problems with collaboration, and that these problems may be solved by Wave. But the truth of the matter is that not one of the potential use cases described in Lifehacker's blog post cannot be solved by using other existing web applications. 37signals's Basecamp is a brilliant collaborative project tool, that is used by many existing companies to manage their online development teams. Campfire is a great group chat tool, optimized for organizational use, and equipped with a robust file sharing system (you may upload documents and files for the rest of your team, and the files will be displayed, inline, in your conversations for as long as the service exists). And Etherpad is a great livewriting application, built to allow multiple people to edit the same document, live on the web. Google could do well to release free alternatives to these software products, thus undermining an existing internet company (oops!), but at the same time creating more value for Internet users around the world ... in advancement of Google's long-term cause.

The Future
Is all lost? The answer to this isn't clear. It could be that Google Wave would, against all logic, live up to its hype. It could also be possible that Wave flops, completely, and is discarded as Rasmussen and co. leave the project to work on something (hopefully) more useful. Or it could even be possible that Wave turns out to be a sleeper hit - that it fails in its intended purpose as a communication platform and is then adapted for uses its creators never thought imaginable.

There is much hype and hoopla surrounding Wave these recent months. As an active agent in the digital fiction movement, I must note that quite a few are, at the moment, evaluating Wave as a possible platform for live digital storytelling. This is one use that I had not thought of, even though I've been thinking about and experimenting with web fiction for about four years now. Perhaps Wave's greatest success would be in a format nobody thought possible. And even then - I would suggest redoing the existing UI, because nobody - not even the fictional grandma in Texas - would want to use such a complicated, directionless thing.

4 comments:

benleong said...

YOU'RE currently signed up for a module with LOTS of Google Wave development.

That is incorrect. You are signed up for a module with a Google Wave assignment that will last 2, maybe 3 weeks.

Truthfully, no one is sure what Google Wave is good for, or if it is good for anything at all. :-)

However, it's quite clear that Google Wave is not a replacement for email, notwithstanding the sales pitch that Google made.

There are even issues with the current Google Wave implementation as the application starts to lag once the Wave gets big enough.

The key question for the Wave assignment is this: suppose you have an API that allows for realtime communication between browsers. WHAT can and would you do with it? :-)

Eli James said...

Hello Prof! *waves!*

Sorry for the misconception. I think I had wrongly assumed that the final projects could be Wave-based as well. =S

But this post isn't really worried about Wave as a development environment/learning tool. I think it's actually pretty cool, as one, considering it's probably one of the first wave (no pun intended) of HTML5 webapps.

I'm more interested in the hype over Wave the past couple of months. I think what puzzles me most is that:

Truthfully, no one is sure what Google Wave is good for, or if it is good for anything at all. :-)

... also applies to the engineering team in charge of Wave.

But reading your reply now makes me think: maybe Google wasn't wrong to support Wave, after all. Maybe Wave really IS just a protocol, nothing more. I mean, if I think about Wave as you put it:

suppose you have an API that allows for realtime communication between browsers. WHAT can and would you do with it?

I'm beginning to think that I can now built apps that allow communication without reinventing the underlying communications architecture. And that would make things very easy for future webapp developers, PLUS it does seem aligned to what we know of Google's existing strategy.

Hrmm! What a thought!

(This DOES mean I'll have to rewrite my post, eh?)

benleong said...

(This DOES mean I'll have to rewrite my post, eh?)

You are writing a blog, not answers to some exam question. Why would you ever need to rewrite?

You have to learn to take it easy.

I don't have to agree with you for you to be right. :-)

Eli James said...

Don't worry Prof, am not particular interested in exam questions. =) I write to find truth - in this particular case, I'm trying to figure out why Wave makes me so confused. Or, more importantly, what Google sees in Wave that I don't. I hadn't considered Wave as a protocol, which you had pointed out in your comment. So rewrite wasn't so much to find a 'correct' answer as to find the right one.

At any rate, the main thesis in the essay still holds, I think. Wave as a product has very little chance of doing anything like what Google thinks it can do.