You can approach this post in at least four different ways. Your attention can be drawn by Google Wave part, namely my rant on the subject, or by a list of thing which you should avoid while shipping your application, which is a kind of lesson learned from the part one. You may also come here for both or neither of them. In the latter case I guess that’s quite a success I kept you here up to this point.
Anyway the whole thing starts with the story about Google Wave. Feel free to skip to the second part if you don’t feel like reading yet another rant about yet another Google application.
I took my tiny netbook and logged in to Google Wave. The first thing is, what a surprise, an introductory video. A cool one. I could see top left corner of it. Oh I soon noticed “full screen” button on the frame so I could see whole video, which at the same time became completely irrelevant since the guy was showing other frames which I could no longer see since I full-screened frame with the video. Well, you don’t have another chance to make first impression they say.
Hey Google, have you ever heard about this little thingies called netbooks which are so damn popular these times? Yes, the ones with 1024×600 or similar screens. I must tell you Google Wave sucks when you use one of these.
I tried to play with Wave for a while trying to find the way of use just for myself. Nah, too slow, too feature-poor and too buggy. I thought it might be a replacement for good old Google Notebook but I couldn’t even paste a picture there, easy way.
But that’s all fine since they told us it’s the collaboration tool, didn’t they? And as far as remember there isn’t much collaboration happening between me and… um… me.
What can I say? First thing Google Wave is buggy. We found long list of issues which annoys us, huge lag on slower machines being probably the worst one. If the application you use cannot display characters as you write them something is fucked up big time. Hey Google, have you heard that these neat netbooks everyone uses aren’t very fast machines? Well, I tell you, not even close these fancy powerful machines you develop your code on.
Let aside quality. “Ship early” they said. What about functionality? A tough question. I thought about the most obvious scenarios like editing a document by a couple of people at the same time or a discussion on some subject or a hard-copy for intensive brainstorming… Actually none of these.
Co-editing a document is a flawed concept as a whole. If you try to write something and your cursor is jumping all over the screen because someone else tries to write his part just above you’re all “WTF?? What the hell is happening with this darn application?” I don’t know how the problem will be dealt with but definitely some other way than broadcasting each keystroke among all collaborators.
Over to discussion part. I must say threaded conversation in Google Wave looks neat. Nothing like phpbb forum. It’s really nice. You even get use to vague way of editing the conversation pretty fast. The problem is it becomes cluttered virtually in minutes. If you’ve seen some multi-threaded flame wars on popular portals you get what I’m talking about. It takes just a dozen of posts and you start losing your focus. After few dozen you no longer know which subject was discussed in which part of the thread, multiple sub-thread are forked by people utterly disagreeing with one little sentence thrown between the lines as a joke and people start wandering in different directions which happens during every uncontrolled discussion. If you happen to be offline for a couple of days finding any reasonable order in the thread becomes a great story for the next Mission Impossible movie.
Maybe brainstorming then? Maybe, if you try hard enough. This scenario is basically the mix of two above and you feel exactly the same pains. The main product of brainstorming ends up somewhere in the middle of conversation between “be right back” and “this feature sucks” messages. And no, co-editing the post doesn’t become easier just because it’s record of brainstorming.
And one more thing – every of these things you could do with other tools, namely Google Docs, any IM chat (Skype is fine) and shared mindmap (MindMeister anyone?).
This brings me to sad conclusion: Google Wave is released too early (e.g. is too buggy) and solves no real problem. What can we learn from this example?
What You Should Avoid When Releasing Your App
• Don’t release too early
If your software wouldn’t pass 15-minute acceptance tests of a person who just skim through the app it isn’t ready yet. Release early doesn’t mean you can release complete shit as long as it’s early. If the app is too crappy people won’t come back to check the second beta.
• Don’t release meaningless software
Solve at least one users’ problem. Choosing problems which are real helps much. You can generate a lot of buzz with being just cool, but folks won’t stick with the app. I keep coming back to Google Docs and Spreadsheets despite their (still) poor functionality because they solve a problem of as-easy-as-possible documents sharing. I keep coming back to discontinued Google Notebook because it’s the easiest way to group a bunch of hard copies of website pieces. Solve one yet unsolved problem and I’ll keep coming back to you because I’m too lazy to look for another, possibly better, solution.
• Don’t ignore people with worse hardware than yours
Think how a web application would look on low-resolution screens such as netbooks or mobile phones. I wrote about importance of optimizing your website for mobile phones a couple of years ago and guess what: people didn’t stop using their mobiles to browse the web. They’re browsing the web with their phones like crazy. And in the meantime the whole new market of computers with screens worse than good old 1024×768 emerged.
• Don’t overlook boring features just because they’re boring
If the most basic functionality is screwed nothing is going to rescue you. If your application sucks as displaying characters users type on keyboard you shouldn’t really bother about introductory video or widgets your app can have.
• Don’t forget about branding
A big name helps. If your company happen to be named Google, Amazon, Microsoft or such people will use your shit no matter what. You won’t hurt of a bunch of rants on your new product since that’s pretty much expected. On the other hand if no one ever heard about your organization you don’t want people to learn about you from a rant which is on the top of search results. If that’s how you start with your branding it may be a bit harder to draw other users.
Yes, I’m aware I sound so old-school and so boring. Feel free to ignore me as I’m not a typical early adopter. But don’t cry when people stop coming back after a couple of visits. And yes, you have their emails in your database but the only business you can make on that is selling them to some spammer since people aren’t going to give you next chance.