Thursday, August 11, 2011

Minimally Viable Products & Native vs. Web Apps

This is unfortunately two blog posts poorly mashed into one. I couldn't reign in my stream of consciousness into something more coherent. I usually don't publish under that circumstance, but I want to get these thoughts out so I can creatively move forward with the thoughts.

I've been on the MVP bandwagon for awhile, but I've realized something of late. Either I need to move up a level on the consumer ladder, out of the low-level, early adopter, stage I've been in forever, or we need to raise the Minimally Viable Product bar (in the consumer app category at a minimum).

Something has shifted over the past few years while standing up Minimally Viable web apps has been the best way to get tight, fast, feedback loops to close with your potential users. That something is that native apps have swung around and crushed web-apps, at least on mobile devices, and end-user expectations around native apps are vastly different (always have, always will be) than web-apps. I had a great meet w/ a new friend in South Park Monday morning who said it well... "Look at Google Spreadsheets... if that's what a small army of engineers at Google can produce using client-side web technologies... we have a big problem." Google realizes this too and is investing in Native Client API; here are my thoughts on that little project.

I'm sick of using products that use Minimally Viable as an excuse. I don't have minimal needs. I have vast and maximus needs.

To get some of those needs out there...

Cross OS/device Synchronization
More of my network use centers around content consumption (probably always has). Twitter, Video, Facebook, Books, IM sessions, email, RSS readers, etc. I consume across probably a half-dozen devices on any given week. Two iPads, an iPhone, Apple TV, my OSX laptop, my home iMac, a friend's laptop at a cafe b/c I forgot mine, a kiosk at an airport, etc. As I chug through all the content I consume (a 30 minute video, a book, the 200 RSS posts I want to skim/read over the course of a day, my Tweet stream... etc), I do so across all these devices that are like little state islands. My reading state is utterly lost across all of these devices and content sources. Scrollbar/word position, partial form fillout, "read-items," "seen-items," etc. I spend way too much time finding the logical pointer into my content when I move to a new device. webmail/IMAP are the only things that have gotten this right over the years.

Kudos to RockMelt (I thought I'd _never_ say that) for getting this sync thing at least partially right across devices/apps. Unfortunately they do that through Facebook API goop, but it's not that big a deal considering as a consumer I get most of the functionality I want.

I've actually started using RockMelt as my primary Twitter client because of this position sync'ing functionality, and it's not even as good as it can be. The high bar I want has gradations as well.

Category/Abstraction Metaphors
Some new photo categorizing service fell out of Y-Combinator the other day (at least onto my radar). The promise is great, but upon digging in I would need to rethink/relearn my photo grouping methodology in order to use it. Yea, right. Conform to _my_, and every other random user's broken way of doing things, way... don't try and tell me your way is better. Only Steve Jobs & Avie have the permission level necessary to do that.

A lot of good software has been written over the past several years, and it has baked its way into millions of users functionality expectations. Embrace that.

Login
Don't you dare try to get me to register a username/password. That's a dead model. Use Twitter for that on the web and Twitter/iOS auth once iOS5 is released. If you can't wait for iOS5 to be released use Facebook Connect for now.

Conclusion
Of course app builders need feedback fast and early, and that's the conundrum. End users want products that meet their needs immediately. There is a threshold that, once reached, demands product release in order to get feedback loops going quickly. Getting the feature/funx combo right before that moment is magic. What I'm getting at is that MVPs need to redefine what "minimal" means across some new functionality categories that consumers (I) have come to expect as truly minimal.

Web Services are starting to feel like a bag of APIs upon which native apps should be built. Reminds me of Marc Andreessen's famous quote about Windows: 'Windows will be reduced down to being a poorly debugged bag of device drivers.' Of course he was referring to what the web would do (and has now done) to Microsoft's OS, and let's not carry the "poorly debugged" bit forward, but it seems like the gap is widening again between native apps and web-apps. Native OS client apps leveraging web services with a native "driver" access to fundamentally networked functionality (sync'ing, login) feels like a good future.