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
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.
- 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 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,then spit out a unit test methods?
When an event occurs,
then ensure some outcomes.
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?
- Shannon Greywalker's Google Wave changes everything you know about agile collaboration and technical documentation.
- Ben Parr's Google Wave: A Complete Guide.
- Abel Avram's Google Wave’s Architecture.
- Google's Google Wave API.
- Spread Google Wave's Sandbox Developers Preview and Understanding Google Wave Development Part 1.
- Google Wave Interest Group on LinkedIn.