Posthumous Retrospective on Google Wave

By beaching Google Wave little more than a year after heralding the engineering leadership of Lars and Jens Rasmussen at the Google Wave Developer Preview at Google I/O 2009, Google now sets the high water mark for the familiar rapid prototyping mantra

fail early, fail often.

What’s to be learned from the demise of Google Wave?

What is the Google ethos? The Google ethos, lifted from my post Lessons From the Google Rocket, is

  • Have the audacity to be different
  • Maintain a healthy distrust for suits
  • Let data be indicators that trump notions
  • Release early and learn

One demonstrably productive prejudice that pervades Google group-think is

Stuff gets invented by engineers, not hucksters or charlatans.

Google values the engineering method. To an admirable fault, Google pursues an engineering-centric path. Introducing Google Wave inventors Lars and Jens Rasmussen to the Google I/O audience, Google Engineering VP Vic Gundotra extols the Rasmussen brothers’ engineering chops, gushing about the Rasmussens’ previous triumph, Google Maps.

Few companies do more than Google to feed the engineering pig. Google are legendary in engineering circles.

Usability Gets Short Shrift

Unfortunately, product usability at Google gets short shrift. Usability of Google products is often relegated to lipstick on a pig. Google is remiss in dismissing interaction design – usability – as lipstick.

As one who occasionally muses about burning his TV remote in a flaming, ball of confusion effigy, I believe

Usability is as fundamental to any product as any whizz-bang functionality

Google Wave was an engineering triumph – a creative mash-up of tried and tested technologies like XMPP and established web concepts like Wiki. However, usability was never improved. User experience was never demonstrably considered by Google. Most users just didn’t get it.

Perhaps the engineering tent at Google needs to include interaction designers. Why not?

Google could even refer to these insightful creative-types as “usability engineers”. Heck, the folks at Cooper, some of the most talented interaction designers on this hairball, are only 30 miles up the road from the brain trust ensconced at the Googleplex.

As cyber buddy Ergun Çoruh says in RIP Google Wave:

Google Wave was too stressful to use.

What Worked… At the Google Wave Developer Preview held at Google I/O 2009, Google VP Vic Gundotra said, “Frankly we need developers to help us develop this product”.

The strategy to release a half-baked concept to the open source community is laudable. The ink wasn’t dry on the Federation spec when eager developers attended the Google Wave Hack-a-thon in June 2009.

Developers were jazzed to get in the ground floor building. Bullish on the potential uses for Google Wave, I wrote Google Wave and Collaborative Projects and Will Google Wave Overtake Microsoft Groove?. With the advent Story Board for Google Wave, I was hopeful that the Agile community finally had a software tool that helped rather than hindered.

  • Half-Baked Product
What Didn’t Work… For execution metaphors & ease of operation, Google Wave was the TV Remote of collaborative software. It was a pinball waste-land of bells & whistles.

Many of the operational metaphors that make things easy for users to understand were never explored or realized for Google Wave.

Why did Microsoft Bob, an epic product failure, last longer than Google Wave? Perhaps because it used the familiar metaphor of a house with rooms.

Google Wave vs. Google Maps: Google Wave was bereft of metaphors to guide skittish users. One reason Google Maps is wildly successful for inventors Lars and Jens Rasmussen is because online maps have a direct and familiar analog on paper. The Rasmussen brothers didn’t enjoy the same advantage with Google Wave.

  • Half-Baked Product

Google will bake the lessons-learned into future forays into social networking and collaborative apps. Perhaps we’ll see user experience improvements in Google’s upcoming Facebook-killer Google Me?

Story Board for Google Wave


What’s a Google Wave Gadget?
A gadget is an application Google Wave (GW) participants can install and use. Gadgets can take advantage of live interaction with multiple participants. Gadgets are specific to individual Waves. That is, the gadget belongs to everyone within the Wave.

What’s Taskboardy?
In my July post Google Wave and Collaborative Projects, I articulated wishful thoughts about using GW for agile projects. Now we have Taskboardy. Taskboardy is a storyboard (as used in Agile, XP, Scrum) gadget made by Federico Zuppa. Federico is a developer and Agilist. Fede’s blog, Agile Booknote, includes updates about Taskboardy. Gracias Fede!

GW participants who have installed Taskboardy are able to maintain a storyboard  including the functionality to:

  • Create or Delete a User Story;
  • Create or Delete a Task;
  • Update Task Statuses; and
  • Assign Tasks.
Technical Aspects

Taskboardy uses Javascript that calls the Google Wave API to persist the state of the taskboard in the Wave,  which is then simultaneously broadcasted to all participants. Federico’s gadget features drag & drop using the Google JQuery API.



Reviews

  • Garry Smith got Taskboardy installed in a Wave we initiated for a new agile project (Shown above). We will run Taskboardy through the paces for our chartering and beyond. I will post a review later this week as we progress.

Launch Early and Learn

Launch early and iterate is a rule-of-thumb perfected by Google and practiced by wildly successful companies like Facebook. Among agilists, the notion of iterating is a given.

I am adopting a new-found mantra of

Launch early and learn

I credit Marissa Mayer. She is Google’s first female engineer, Money’s #21 in 40 under 40, and Glamour’s Woman of the Year 2009.

Marissa gave a compelling talk to Stanford students on Google heuristics and innovation. I recommend viewing Marissa Mayer at Stanford University for 49 minutes of insight into the thought repository of an unusually smart company. Marissa gives her Top 9 slogans, joking that presenting a Top 9 is marginally more innovative than a Top 10.

I’d been brain-casting how to create a UX-Driven-Development (UDD) platform for software, when Marissa’s Stanford talk introduced me to the Google slogan

Launch Early and Iterate

In front of a slide declaring innovation not instant perfection, she shared personal narratives about the early – some would say premature – launches of Google News and Google Video. I have already mused that Google Wave is an immature product (see The Missing Link in Google Wave – UI For Primates).

Five days removed from my Missing Link in Google Wave post, I finally understand the Google modus operandi.

True Confessions – Google News

The Google News team was nearing their targeted first release. Six engineers respectfully disagreed over which feature they had time to include in their debut release. Three engineers vehemently supported Search-by-Date. Three engineers passionately supported Search-by-Location. Deadlocked.

Google made the decision to polish up existing functionality and not add new functionality. They released Google News without Search-by-Date or Search-by-Location! Shortly after the roll-out, they were bombarded with emails

How come I can’t Search-by-Date?

Email requests were running about 100 to 1 for Search-by-Date over Search-by-Location. Guess which feature had top priority for the next iteration?

The preview of Google Wave occurred while the ink on the Wave federation spec and the Wave API was not only still wet, but still being pushed around the page.

When I attended the Google Wave hackathon last June, Google engineers had finally stabilized their Wave Server the night before the public arrived to start banging on it. That’s early.

Google Mail was in beta for so long for a reason. It is a way of working that keeps development cooperatively linked to the community. This lends itself to critical adaptations and unforeseen customization.

Whether your mantra is launch early and iterate, or launch early and learn,

Mistakes seed improvement

in software product development.

That mistakes seed improvement is particularly true, and conspicuous, if your team is geared to

Turn feedback into function

within an iterative cycle, or two.

Further Reading

  • Agile Release Strategies – A wiki initiated by by Niklas Bjørnerstedt and Johannes Brodwall. The premise of the wiki is that a software product unable to release to production at least once every three months is problematic. That is, the longer the release cycle, the bigger the risk of partial or complete failure. Wiki includes principles and patterns. The wiki helps a Product Owner determine a Minimal Releasable Product.
  • Facebook encourages developers to push code quickly. Code pushes are never delayed and are applied directly to parts of the infrastructure. The strategy is to smoke out issues, and their impact, as soon as possible. (See Extreme Agility at Facebook).
For Italophiles…
English Italian
Release often and learn Rilascia spesso e apprendi
Release often and iterate Rilascia spesso e ripetutamente

The Missing Link in Google Wave – UI For Primates

The transitional fossil between a transformative concept and a useful tool is probably always going to be the answer to:

Would a primate find it useful?

Okay naysayers, New Caledonian crows are an example of a non-primate clever enough to use a stick to poke food, but the scope here is primates; the nearly hairless apes like you and me.

An amusing poll at EasierToUnderstandThanWave.com asks,

Which is easier to understand?

On the left hand side of the EasierToUnderstandThanWave.com poll, is a screen shot of the Google Wave inbox. On the right hand side, is a sequential series of screen shots of stuff that’s notoriously difficult to understand like:

Google Wave Inbox Notoriously Difficult to Understand
Google Wave Inbox

  • The Geopolitical Climate of Southeast Asia
  • Self-Balancing Binary Search Trees
  • Polymodal Chromaticism
  • The Raison d’être for the Movie The Sandlot 2
  • Mating Habits of the Red-Sided Garter Snake
Having an unfinished thesis on a hopelessly academic model for the flow of two immiscible fluids based on complex analysis, I added:

The 2D analytic manifold of a Riemann surface

to the mix of stuff easier to understand than Wave. The picture (above right) is a butt-simple graphical rendition of the surface of a square root, f(z) = Sqrt(z). To everyone’s dismay, the f(z) in my unpublished thesis took an entire typeset page. No wonder I drop-kicked a PhD fellowship to procreate; mating was the only thing I figured I could do as well as a snow monkey.

Google Wave is a transformative concept. To be fair, the monkey nuts of Google Wave are built on the shoulders of forward thinkers (Ray Ozzie) and well-established technologies and standards (XMPP). But it remains to be seen if humans will find it useful.

Last July I was excited about Wave, after attending the Hackathon at Googleplex with the inimitable Garry Smith. I wrote about Google Wave and Collaborative Projects.

I was talking to everyone who would listen. Now that WikiWikiWeb founder Ward Cunningham thinks Wave is cool, every curious person in the agile community and beyond is clamoring for Wave invitations.

Where’s the Grand Metaphor for Wave?

Primates need metaphors to understand. It is not human hubris to say that humans might need a smaller rock than an orangutan, nonetheless a confused human appears every much as pitiful as a confused orangutan.

Email has a metaphor. Email has snail mail where the internet is a carrier pigeon or IPoAC (IP over Avian Carriers). Instant messaging has the metaphor of Morse Code operators sending and recieving messages. A Wiki has a bulletin board metaphor. Google Wave has nothing. Yet.

Where are the Visual Cues in Wave?

To thrive in complex social interactions, primates form mental maps representing the social hierarchy of thier posse. One of the confusing things about a Wave is the absence of visual hierarchy.

In a Wave, there are no clear relationships between elements in one’s inbox. Every blip carries equal weight. One might issue a mind-bogglingly-profound blip that’s answered by

That’s awesome dude

Both blips carry equal weight to a subsequent participant joining the Wave.

A Wave needs some kind of tag cloud do-hicky, or real-time executive summary. When there’s information overload, humans need a lazy way to

Cull the salient from the slobber

Everyone at Googleplex, Younger and Smarter

I remain steadfastly bullish about Google Wave. Everyone at Googleplex is younger and smarter. The billiards-playing Stanford graduates toiling at Google’s Mountain View sweat shop, and the fledgling community of adopters and gold-miners, are bound to make Wave useful to the masses. But for now, I’ll continue using cotton string and re-purposed cans. tin can phone

The Emergence of Google Wave-Etiquette

Since the materialization of Google Wave as a fledgling, real-time collaboration platform, early-adopters have added the word Wavetiquette (Wave-Etiquette) to their lexicon.

wav⋅et⋅i⋅quette

AC_FL_RunContent = 0; http://cache.lexico.com/js/AC_RunActiveContent.js var interfaceflash = new LEXICOFlashObject ( “http://cache.lexico.com/d/g/speaker.swf”, “speaker”, “17”, “15”, ““, “6”);interfaceflash.addParam(“loop”, “false”);interfaceflash.addParam(“quality”, “high”);interfaceflash.addParam(“menu”, “false”);interfaceflash.addParam(“salign”, “t”);interfaceflash.addParam(“FlashVars”, “soundUrl=http%3A%2F%2Fcache.lexico.com%2Fdictionary%2Faudio%2Fluna%2FE03%2FE0330800.mp3&clkLogProxyUrl=http%3A%2F%2Fdictionary.reference.com%2Fwhatzup.html&t=a&d=d&s=di&c=a&ti=1&ai=51359&l=dir&o=0&sv=00000000&ip=a3e70642&u=audio”); interfaceflash.addParam(‘wmode’,’transparent’);interfaceflash.write(); [wave-et-i-kit, -ket] –noun

1. conventional requirements as to social behavior; proprieties of conduct as established in waves, wavelets or blips.
2. a prescribed or accepted code of usage, as in a wave conversation thread.
3. the code of ethical behavior regarding professional practice or action among the members of a profession in their wave communication and collaboration.

Origin:
July 2009. Wavetiquette is a compound word consisting of the English word wave and the French word étiquette. Wave is derived from old english wafian which means to wave. The French étiquette means prescribed behavior.

Etiquette, decorum, propriety imply observance of the formal requirements governing behavior in a Google Wave thread. Wavetiquette refers to conventional forms and usages: the rules of wavetiquette. Decorum suggests dignity and a sense of what is becoming or appropriate for a civilized person. Propriety implies conventions of morals and good taste.
Wavetiquette – Points to Consider
First and foremost, Google Wave is built on the Extensible Messaging and Presence Protocol XMPP. XMPP is the proven, secure, and extensible Jabber instant messaging platform we have all grown accustomed to using.
Imagine a voluminous thread of discussion with multiple participants where you can see each letter others are typing and you may edit your and other’s content at will. Some standards of behavior are needed to keep the flames to a dull roar.
On the Google Wave Sandbox Developer’s Preview, early adopters J Aaron Farr (Daniel Teichman, Ross Garler, et al.) initiated a wave conversation on wavetiquette listing the following points of etiquette to consider:
  1. When to edit a wave versus commenting?
  2. Should you edit your own response or respond to your response?
  3. Starting new waves versus resurrecting old ones (and how to politely point people to older waves)
  4. Is correcting grammar and spelling always ok?
  5. Any thoughts about adding new people to wave?
  6. How to keep waves “on topic”? Should we?
  7. How to respect the original author(s) of a wave?
  8. How to keep wave groups on topic?
  9. Do you let the person finish their thought before commenting?
Many of the challenges to Google Wave growth and adoption are soft issues rather than thorny technical issues.
How do we create suitable visual metaphors?
such that participants understand the conversation and are not stepping on each other.
And, early-adopters must establish and explore standards of behavior, that is
What are the social norms?
The introduction of Google Wave to mobile devices like the iPhone presents other soft issues. See a video of Google Wave demonstrated on an iPhone.

Will Google Wave Overtake Microsoft Groove?

The reception attendant at my community gym scanned my membership card.

He then observed me stuffing a 1/2 inch lithology of plastic commerce back into a 1/4 inch slot in my wallet.

You should carry fewer cards“, he suggested.
Or get a bigger wallet“, I said.
If you get a bigger wallet“, he said, “You’ll only need a bigger pocket.”
A googolplex is 10googol. For carpal-tunnel-free typers with an aversion to acronyms, it is also expressed by a 1 followed by a googol of zeros. This prosaic number should not be confused with the audacious googleplex. Googleplex, a pretentious, self-satisfying wordplay on an ordinary – albeit large – number, is the name of the corporate headquarters of Google.
The Googleplex is situated on a huge 26-acre campus in Mountain View, California. It is built on Brownfield land and populated with smart, un-jaded, and largely under-30 geemers working on “pet projects”. As a graybeard with a cheesy pedigree and disappearing gray matter, Google is a lofty place that wouldn’t hire me even if I purchased, set, and tuck-pointed all of the gold bricks needed to line the hiring manager’s koi pond.
If you have occasion to visit the Googleplex, skip the nutritionly-bereft continental breakfast at your Comfort Crib and proceed directly to Joanie’s Cafe (kitty corner from Stanford University in Palo Alto).
My yet unabated prejudice is that some of the projects being worked on at Google are more grounded in the real-world than others.

Nonetheless, I traveled to and spent the early part of last week at the Googleplex with my business partner Garry Smith to learn the secret handshake and to dig into Google’s new collaborative software Google Wave (see Ben Parr’s Google Wave: A Complete Guide).
At its core, Google Wave is an extension of XMPP (Jabber). Wave is not a mature product. Google is open-sourcing its development. So far, there are implementations in Java and Python.
I have been exploring a preview of Google Wave via my sandbox account on FedOne hosted by Google (ping me at bmacneal@wavesandbox.com).
Google Wave has a polling widget called Polly. At the Google Wave hackathon, I included Polly in a Wave thread. I triggered the Wave with the question
Will Google Wave Overtake Microsoft Groove?

I assumed that not many people, other than Microsoft Chief Software Architect Ray Ozzie and a few Microsoft devotees, had heard of Microsoft Groove. I also assumed that most people attending a Google gathering might harbor unfounded ill-will toward Microsoft.
I wanted to test the Polly polling widget, so I wanted a provocative question. I invited the Google Wave disussion group (wave-discuss@wavesandbox.com) to the thread.
After a few unseemly burps, Polly worked like a charm. One could see live updates in the Wave including the commentary (or blips in Wave parlance) of the poll participants. Wave blips and voting peaked after Garry posted a link to a June 09 interview Ozzie at the Bat where the Microsoft oracle and Groove inventor, Ray Ozzie, opines about Google Wave (e.g., “its complexity might curb its adoption”).
Of the 150 or so attendees at the Google Wave hackathon, 92 people indulged me by voting and sharing their opinions. Polling is still open, but if you want to weigh in, you’ll have to post a comment below or apply (subsequent plead and re-apply) for a sandbox account.

Poll Results

Will Google Wave overtake Microsoft Groove?
Yes 73
No 3
Maybe 16

I don’t know what my over-stuffed wallet encounter with the attendant at my gym has to do with this post other than its parallel to my quest for finding a wagon to hitch to…only to remind myself that
everyone is looking for a bigger wallet, perhaps forgetting that they’ll soon need bigger pants.
Of Interest

Google Wave and Collaborative Projects

My tea kettle is whistling with more than lukewarm ideas on how we might use Google Wave for collaborative software projects.

To separate the steam from the high-pitched whistle of market evangelism…

Google Wave is a communication platform.

How might we use a real-time communication platform to make the push-pull of our collaborative software projects easier?

The Google Wave model promises to be a comfortable fit for seeding and feeding post-agile software projects. We might use Google Waves for

  • Generating user stories
  • Planning iterations
  • Estimating tasks (e.g., real-time planning poker)
  • Managing task boards and
  • Spawning dashboard artifacts like burn-down charts

I like its threaded conversations of wavelets, blips, and drag-and-drop multimedia. Some Google Wave features that should make collaborative software projects easier are

  • Bots and Gadgets Developers can embed gadgets and build robots that automate tasks within a Wave. A robot might read the content of a wave and then perform an action.
  • Drag-and-Drop Sharing – Unlike clunky email attachments, you just drag-and-drop screen prints, wire-frames, buttons, stock photos, etc. on a Wave.
  • Wiki-like, Hopefully Better – Anything within a Wave is editable by others. One may correct, append, or add commentary. One can only hope this is where project artifacts live rather than die (as with many project Wikis).
  • Real-Time – See what your teammate is typing, character-by-character, unless it’s planning poker – in which case you’ll have to close your eyes.
  • Playback – Playback any part of a Wave to see what the SME actually said about how something works.

The immediacy of instant messaging, combined with the richness of an anabolic Wiki, might prove to be a worthy collaboration tool. I like the concept of having team-member participation in threaded conversations (a traditional bulletin board), but also having features like playback and custom-robots that interrogate Wave content to perform actions.

The possibilities heat my water to boiling point. Robots are like having another person participate in a Google Wave conversation, except that they’re automated and they operate on the content of a wave. All extensible by common day-laborers like me.

The actions spawned by a bot might range from notifications like build failed or single sign-on test succeeded to spawning wavelets of unit test methods that are peppered with scenarios plucked from business-side requirements, discussions, and feature assertions.

Imagine a bot that parsed a business thread for Behavior Driven Development keywords like

As persona [X}
I want [Y]
so that [Z]

AND, parsed a business thread for scenario keywords like

Given initial context,
When an event occurs,
then ensure some outcomes.

then spit out a unit test methods?

Challenges to Adoption

Widespread adoption of a technology-driven phenomena like Google Wave will likely have to first hurdle cognitive and social models in search of digestible user metaphors (see Adina Levin’s excellent post Google Wave: still in the lab, potentially mindbending for adoption).

Many of the operational metaphors that make things easy for users to understand simply don’t exist for Wave yet. The Wave model mashes the familiar (email threads, wiki documents, and streaming communication) together. Instant messaging in your favorite messaging client is an easy model to follow. It is a simple post, response, & repeat. Will a multimedia, multi-participant Wave be so straight-forward? How will users find content efficiently? How will users invited into to a Wave conversation get up to speed with the other participants? Wave touts a replay feature, but is that the most efficient thread content primer?

More…