The Problem with Google Wave: User Experience

Google Wave is no more. For those who remember the sound of the jaws of the tech mainstream dropping when Google showed the demo at Google I/O, that may come as a shock. For those who tried to use it, it’s probably less of a shock. I kind of liked ReadWriteWeb’s take:

Why did Wave fail? Maybe because if you don’t call it an “email-killer” (and you shouldn’t) then you’d have to call it a “product, platform and protocol for distributed, real time, app-augmented collaboration.” That’s daunting and proved accessible to too few people.

To say that people don’t get collaboration or that Wave was ahead of its time is a cop out. Wave IS an awesome product. Real-time collaboration IS changing how the world works together. On the Flash side that is one of the reason I’m so excited about Collaboration Services; real-time collaboration is fantastic.

But this was a case of Google’s user experience coming to bite them. Some people love the minimalistic experience of Gmail. And it worked a few years ago when it was first introduced, but the iPhone has shown how critical a great user experience is to user adoption. And frankly, Google’s user experience hasn’t changed much since the Gmail days and the applications are starting to feel dated. That’s not a big issue when you’re doing something as straight forward as email, but when you’re trying to completely change how people communicate, you need to provide a user experience that abstracts the technology and just makes it easy. Have we seen that done before?

iPhone

Exactly. Wave was a great technology showcase but it was not a great product. Google had the chance to fundamentally change communication on the web but they didn’t have the design chops to put it in a package that was useful to people and instantly easy for them to dive into. You can’t do an 80 minute demo for something that’s this big of a shift in thinking.

Hopefully Google takes this to heart and realizes that technology isn’t good enough. When you’re being revolutionary you have to design a user experience that makes the technology feel second nature.

Google Wave Pisses Me Off

The hyptasticness that is Google Wave continues to annoy me as a Flash developer and RIA enthusiast. Now I preface all of this by admitting that I haven’t used it; maybe when I get an invite this thing will be worth all of the finger grease that keyboards have endured as people talk about it. And I’m not saying it’s not impressive; it is. It’s a great demo, it does some very cool stuff. I’m not annoyed at Google Wave, I’m annoyed because everything that people like about that demo was doable 3-5 years ago with Flash. Flash Remoting, Flash Communication Server, and our much better user interface capabilities pretty much could have created Google Wave. Now I understand that there’s some excitement because this is built on open standards with a more open model, but people don’t get excited about standards- they get exited about vision. And that’s what kills me.

I don’t care if you’re a Silverlight developer or a Flash developer; the technology platform you’ve got is years ahead of what Google Wave is built on. Yet with all of our UI prowess, our design sense, and our pure and simple technical superiority with things like real time communication and scalability we haven’t built very much that captures people’s imaginations the way that Google Wave has. I think we lack the vision.

I think it could be argued that in some cases we’re TOO visionary. If someone had actually built Google Wave 3-5 years ago it wouldn’t have made the same impact because people wouldn’t have realized what it meant. In the RIA world we live in the bubble of the future. I genuinely think that most of us look 3-5 years ahead because that’s where our technology puts us. When people don’t get what we’re trying to pitch we just move on to the next thing. Look at Augmented Reality. Possible with Flash for a couple of years now but it’s just starting to get some main stream attention. RIA developers seem permanently entrenched in the Technology Trigger of the Hype Cycle and we don’t seem to be able to follow things through to the Plateau of Productivity.

Part of the Wave hypefest is probably because of the world’s love/hate relationship with Google. When they do something everyone goes nuts and that’s because they really do have the power to change the web. They did it once, they’re big, they’re smart, they can do it again. But there are a lot of smart people in the RIA world. Big companies like Microsoft and Adobe and small ones like Aviary and Picnik. We just don’t seem to encourage the visionary demos, the ones that make people rethink how they’ll communicate and interact. I don’t know if that has to come from the big companies directly or whether it’s something we can encourage startups to do. We don’t have a technology problem; if that was all it took we’d be cranking out Wave-esque demos all the time. We just don’t seem to be able to look at the entire scope of what we’ve been doing for the past couple of years and put it together in a game changing way.

I don’t have a solution, but if you’ve got suggestions, I’m all ears.

The Web Way vs the Wave Way vs the Flash Collaboration Services Way

afcs_logoAnil Dash has a post worth reading up on his blog that talks about the “Web Way” versus the “Wave Way” and why Google Wave won’t succeed because it doesn’t really fit the same pattern of successful web technologies. He makes 4 general points to define the “Web Way”:

  • Upgrades to the web are incremental. Instead of requiring a complete overhaul of your technical infrastructure, or radical changes to existing behaviors, the web tech that wins is usually the sort of thing that can be adopted piecemeal, integrated as needed or as a normal part of updating one’s websites or applications.
  • Understanding new tech needs to be a weekend-sized problem. For a lot of web developers, long before they start integrating a new protocol or platform into their work, they hack together a rough demo over a long weekend to make sure they truly grasp how it works. And a weekend-scale implementation on a personal site usually translates roughly into a 90-day implementation cycle in a business context, which is a reasonably approachable project size. (In tech, three days in personal effort often translates to three months of corporate effort.)
  • There has to be value before everybody has upgraded. This is basically a corollary to Metcalfe’s Law. While we know networks increase in value as they add more nodes, the nature of web tech is that, in order to be worthwhile, it has to provide value even if the people on the other end haven’t upgraded their software or web browsers or clients or servers. Otherwise you’re shouting into an empty room.
  • You have to be able to understand and explain it. Duh.

The entire post goes on to explain details of where Wave fits and where Wave fails. But as I read it I couldn’t help see it as a ringing endorsement of Flash and especially Adobe Flash Collaboration Services (AFCS). Before I dive in, I understand that Anil’s “The Web Way” has an inherent requirement that everything be “open”. Flash and Flash Collaboration Services probably won’t fit in most people’s definition of “open” as it relates to the web. In this case, I think that’s part of the benefit. One thing Anil does is looks at Wave from the developer perspective and he provides a list of technologies required to use Google Wave and add real-time collaboration to your web application:

  • Federation (XMPP)
  • The robot protocol (JSONRPC)
  • The gadget API (OpenSocial)
  • The wave embed API (Javascript)
  • The client-server protocol (As defined by GWT)

That’s a lot of stuff for a developer to know and understand if they want to start building something that interoperates with and leverages the technology behind Google Wave. Now think about a Flash developer who wants to add real-time collaboration to their web application. They’ve got no real new protocols to learn (RTMP behind the scenes but not necessarily exposed in such a way that developers need to understand it), no new languages to learn, no new client-server protocol, it’s just ActionScript and(/or) Flex, and some new APIs. Then your application is real-time enabled. So lets look at the four “Web Ways” and see how they apply to AFCS.

  • Upgrades to the web are incremental. With the pods and APIs for AFCS, it’s pretty damn easy to just integrate it with your current application. There is no rewriting from scratch and you can literally just add an AFCS component and enable collaboration for your application. As you dig deeper, the service gets more complex and you can do more with it, but to start, it’s dead simple.
  • Understanding new tech needs to be a weekend-sized problem. If you’re a Flash developer already, all you’re learning are a few new APIs. You still have to understand the fundamental issues behind real-time collaboration if you want to create complex components, but you’ve got the core development skills to create those applications so you can focus on learning the theoretical stuff and not the code stuff.
  • There has to be value before everybody has upgraded. This is my favorite, because it’s one of the benefits of Flash. AFCS has 2 versions, a Flash Player 9 version and a Flash Player 10 that adds some more audio support. If you’re targeting Flash Player 9 then 98.8% of the web can see your application and with Flash Player 10 it’s 86.7%. No one has to upgrade anything to see your new real-time enabled application.
  • You have to be able to understand and explain it. With AFCS you can easily add real-time collaboration features like video chat, whiteboarding, and shared data into your Flash-based application. I think that works.

Now again, I understand that openness is a pretty core part of what the web is. But there has always been a trade off between openness and innovation when it comes to the web. And even in cases where “open” can be innovative, like with Google Wave, everyone else has to catch up. With AFCS, even though it may not fit with the wider definition of the “Web Way” you can take advantage of the cutting edge technology that everyone is excited about and ensure that it’s 1) easy to build and 2) easy for your customers and users to view.

Thanks to Sachin for tweeting the link to Anil’s post. I didn’t take the time to read it until I saw he did.