Sunday, November 22, 2009

Joel Not on Cloud

I just read an article by Joel Spolsky dating back to May of 2008 in which he expresses extreme skepticism (putting it mindly) regarding Live Mesh and goes farther to apply the term "Architecture Astronaut" to, among others, Ray Ozzie.
 
Now I have a lot of respect for Joel and have enjoyed his writings for years.  I think he gets a lot of things (most things?) right most of the time, but on this one, I think he has possibly made the classic error of allowing a personal bias cloud (no pun, honest!) his judgement.  It worries me that he seems so eager to apply this pet term "Architecture Astronaut" to folks who the mainstream would typically call either "aspirational thinkers" or "visionaries"
 
On topic, though, Joel writes off Live Mesh as nothing more than "file sync" (something, he says, which no one needs more of) and adds that the aforementioned "Astronauts" are famous for pushing out architectures that no one has either asked for, or needs.
 
To be perfectly frank, I haven't checked to see if Joel has had a follow-up to this entry and has, perhaps, issued a "mea culpa".  If he has, kudos to Joel!  But either way, it's not really relevant to this entry because he is really just echoing an argument that comes up a lot - particularly around very forward looking topics.
 
There are two specifics here which require rebuttal.  The first is that Live Mesh is "just file sync".  It is fair to say that the first application on Live Mesh is "file sync" and that the proof of concept is "file sync", but this is hardly the ultimate intent of the platform.  I would also take issue with the notion that "no one needs" another file sync system, but more on that later.  Ozzie's vision with Mesh includes the notion of a central, cloud hosted, distribution engine for applications.
 
But lets take a step back from all of this. Live Mesh may turn out to be a dud, or it may transform into something else entirely.  What's more important, I think, is rebutting this notion that none of this is anything anyone "wants or needs".
 
Consider a very plausible scenario involving your average, gainfully employed, millenial.  Joe or Jane Millenial quite likely has a desktop computer at home, a laptop that they drag on the road either for personal or professional use, a smart phone of some kind, an MP3 player (I wonder which one? hmmmm), possibly a video game console and maybe even some sort of "smart TV" that is internet connected (a set top box, a Tivo, other DVR or the TV itself)
 
This is a very common setup for the average young person.  Not a techno super geek; just an average Joe or Jane.  Scattered amidst all of these screens, platforms and points of presence is an equally common mix of content; applications, music both DRM'd and in the clear, movies and television shows also DRM'd and in the clear, photos, personal documents, applications and application data.
 
Today, managing this blob of information is a nearly full time job.  There are a dozen incompatible standards and formats and an equal number of point solutions for synchronization and storage of content.  None of these are intelligent, few are cross platform and all require lots of user intervention.  They are also all premise bound unless you jump through some big hoops and learn more about technology than you might want to.
 
Call me an "Architecture Astronaut", but I think many folks would both want and need a single, unifying, web accessible console which allows them to "organize their digital life" (to coin a wretched marketing style cliche).  I imagine sitting down, launching a browser, connecting to some "cloud" and landing on my "stuff" page.  There I am presented with a friendly representative view of all of the information that is important to me and all of the entry points that I have subscribed - my PC, laptop, phone, Tivo, etc.  The capabilities of each of these devices (their platform, processing and storage limits, IO thresholds, etc) are known to the cloud intelligence and options are either presented or hidden based on that knowledge.
 
From here, I can categorize blocks of my content as applicable to certain devices or not, push applications and their data where I need them (and perhaps subcomponents of those applications - Halo 4 on XBox 360 and provisionable to the PC, but a Halo 4 messenger client for chatting with friends who are online in the game pushed to the phone and laptop) and consume new applications and services that are surfaced entirely within the cloud.  For the finale, I can choose to have some or all of this content also live within that cloud and be made available (in part or whole) from any web browser.  So if I want to watch the latest episode of Heroes from my Tivo via a web browser at a friends house, I can do that.
 
Writing off all of this "cloud stuff" as simply architecture for its own sake and the solution to a non-existant problem really misses the needs of the millenial generation, if you ask me.  It almost reminds me of the mainframe guys waving off this "useless PC" that was starting to creep up.  And if by some bizarre and unlikely twist of fate Joel is reading, please think about this topic again (if you haven't already), this time leaving Ozzie out of the equation! 
 
ADDENDUM - A friend just informed me that I was remiss in letting Joel off the hook on the whole "Hailstorm" rant (Microsoft Passport, as it is known today).  After recovering from the shock that someone actually read this, I acknowledged that this was a glaring oversight indeed.  In my defense, it was really late and I tend to run out of steam on this things as they wear on (especially since I work under the assumption that no one is reading!).  So on the topic of Hailstorm... Joel wrote this off as an attempt to corral all of the worlds data which failed, in the end, because "no one wanted that or trusts Microsoft".  I would argue that Hailstorm was simply well ahead of its time and possibly not even fully understood, in terms of its place and potential, by the folks who launched it.  Ask anyone who architects network services of any kind and they will tell you that sitting right there in the room of any design session, just waiting to be heard, is a big giant identity management problem.  As services and applications shift to public/semi-public and interconnected private clouds, this problem will intensify.  It is likely that the ultimate solution will be found in SAML and claims based authentication as a means of federating with minimal impact.  The complexity of such a scenario is greatly reduced if the 80/20 rule is applied and the vast majority of user identities are contained within a few large security domains.  Passport, is an attempt to provide one such uber domain.  If every Microsoft property relies upon a single directory for authentication and access control, a pretty large segment of users is addressed.  As far as trust goes, I would argue that people are trusting Google today with the keys to their kingdom and nearly begging them to take more.  And Google hasnt exactly been a great steward of this privilege to date.  So any trust issues Microsoft has really go directly to either branding and image, or general ignorance of the problem domain.  Either way, it isn't a technical issue.  From a technical standpoint, Passport makes no less sense than a Google id and Google encouraging partners to plug in to the Google identity management backend.  Last I checked, no one is really complaining about that because the need for it is now readily apparent.
 

No comments:

Post a Comment