Archive for November, 2005

Really Simple Sharing

One of the great things about once again having an active blog is that it enables me to engage in discussion about concepts I’m excited about, and that I’m working on, before they’re fully-baked and while they could benefit from others’ involvement.  The first such thing I’d like to introduce here is something we’ve been calling SSE.
 
By way of background: for a few years now, I’ve grown to be passionate about the fact that people (and organizations) are choosing products & services relevant to their needs that have compelling experiences that “just work”.  Such is the basis for all of my current work related to service-enabled software.
 
For years, as many of you, my work life has involved significant travel.  As significant bi-coastal coordination has now entered into the mix, things have gotten even more complicated for me, for my wife, for my assistant and hers.  In order to stay on the same page, each of us has the need for (limited) visibility into aspects of each others’ calendars and schedules.  Each of us has a mix of private, shared, and public events and meetings that we’re tracking.
 
Some of these we edit privately and publish to others.  (This itself has posed significant challenges – particularly sharing partial information from confidential calendars.)  The most challenging calendars we deal with are those that are “shared”, such as the family calendar my wife and I jointly maintain, or the calendars we share with outside groups – such as the meeting calendars of volunteer organizations.
 
It’s tough because we use a mix of different email/calendaring systems – corporate as well as non-corporate, web-based as well as client-based. And to each of us it makes sense to want to edit the calendar in our own PIM application of choice where we do all our calendaring and scheduling work – not within calendaring systems on other various websites.
 
And the same goes for contact lists.  In our case, each of us has a mix of private, shared, and public ‘address books’ or ‘contact lists’ that we’re managing.  At work I deal with contacts in my enterprise directory as well as my own private contact list.  But I share two completely different contact lists with my wife – one that is our “home rolodex’ with plumbers, doctors and the like, and one that is our “family rolodex” with friends & family.  And I know she has other contact lists she shares privately with members of groups she’s working with.
 
As an industry, we have simply not designed our calendaring and directory software and services for this “mesh” model.  The websites, services and servers we build seem to all want to be the “owner” and “publisher”; it’s really inconsistent with the model that made email so successful, and the loosely-coupled nature of the web.
 
Shortly after I started at Microsoft, I had the opportunity to meet with the people behind Exchange, Outlook, MSN, Windows Mobile, Messenger, Communicator, and more.  We brainstormed about this “meshed world” and how we might best serve it - a world where each of these products and others’ products could both manage these objects and synchronize each others’ changes.  We thought about how we might prototype such a thing as rapidly as possible – to get the underpinnings of data synchronization working so that we could spend time working on the user experience aspects of the problem – a much better place to spend time than doing plumbing. 
 
There are many great item synchronization mechanisms out there (and at Microsoft), but we decided we’d never get short term network effects among products if we selected something complicated – even if it were powerful.  What we really longed for was “the RSS of synchronization” … something simple that would catch on very quickly.
 
Using RSS itself as-is for synchronization wasn’t really an option. That is, RSS is primarily about syndication - unidirectional publishing - while in order to accomplish the “mesh” sharing scenarios, we’d need bi-directional (actually, multi-directional) synchronization of items. But RSS is compelling because of the power inherent in its simplicity.
 
This got me to thinking about simplicity. Notes had just about the simplest possible replication mechanism imaginable. After all, we built it at Iris in 1985 for use on a 6Mhz 286-based IBM PC/AT with incredibly slow-seeking 20MB drives. We were struggling with LIM EMS trying to make effective use of more than 1MB of memory. Everything about the design was about implementation simplicity and efficiency. So if simple is the goal, why not just adapt the Notes replication algorithm to this need? Notes “notefiles” could be analogous to RSS “feeds”; and Notes “notes” could be analogous to RSS “items”; and Notes “items” could be analogous to XML “elements”.
 
Notefiles replicate by using a very simple mechanism based on GUID assignment, with clocks and tie-breakers to detect and deterministically propagate modifications. Something like this could easily be represented in XML. Notefiles replicate with one another in a decentralized, masterless manner; feeds could be “cross-subscribed” in a similar manner. There’s no magic to it once you know specifically what you’re trying to accomplish, but it certainly helped to have an existence proof.
 
And so we created an RSS extension that we refer to as Simple Sharing Extensions or SSE. In just a few weeks time, several Microsoft product groups and my own ‘concept development group’ built prototypes and demos, and found that it works and interoperates quite nicely.
 
We’re pretty excited about the extension - well beyond the uses that catalyzed its creation. It’s designed in such a way that the minimum implementation is incredibly easy, and so that higher-level capabilities such as conflict handling can be implemented in those applications that want to do such things.
 
Early on, after we had a prototype going, I met with Dave to tell him about it and perhaps get him involved.  Immediately at our first meeting he spotted its potential to solve something else he had been thinking about – replicating changes among OPML lists or outlines being managed within different services or by different people.  He challenged us to see if the same SSE mechanisms could be applied to OPML.  As it turned out, only minor changes were required.  In essence, by connecting these dots between what we’d done to extend RSS and his vision for OPML, Dave’s catalyzing a new form of decentralized collaborative outlining.
 
At this point, various groups at Microsoft have begun to further develop their early prototypes to see what we can learn, and to ensure that the spec is sufficient.  There’s nothing to announce right now in terms of which products will support the spec, when, and for what purpose, but people are experimenting with it and are intrigued. It’s time to bring the spec to you, so that you can do the same. 
 
We’ve numbered the draft specification 0.9 because we have a good degree of confidence in its usefulness based on the prototyping that we’ve done thus far, but it’s certainly not a 1.0 and I would certainly caution against building anything ‘production’ on it quite yet.
 
Here’s the draft spec for SSE, and here’s a FAQ that we put together.  A forum where we can talk about it amongst implementers will be forthcoming. 
 
(Props for making the spec and early prototypes actually happen go out to the individuals in many product groups - you know who you are - who were motivated enough to want to enable this scenario for users. And to Dave for extending it to OPML. It’s been fun working with all of you, and impressive how rapidly this could happen.)
 
One other important point:  We’re releasing the SSE specification under a Creative Commons license – Attribution-ShareAlike.  I’m very pleased that Microsoft is supporting the Creative Commons approach; you can see more about this at in the licensing section at the end of the spec.
 
Enjoy.

Comments

V3

When I first began blogging back in August of 2002, I explained that I was doing so to learn more about the nature of the link-centered medium, and that blogging might represent a new and more effective model of interaction in the “public space”.

Indeed, I learned. Through two bouts of blogging - one lasting three months, the other about a year - I learned as much about my own communications rhythms and habits, stumbling blocks and compulsions, as I did about the medium itself.

A great deal has occurred since then.

Groove continues to grow and thrive, but now within the Microsoft Office group. Since late March my new role has had me spending most of my time in Redmond WA, with an occasional week here-and-there working at my Groove office in Beverly MA. With an ‘empty nest’ now that the kids are both in college, my wife and I are enjoying a new adventure … as we blend our new life in urban Seattle, with our continuing life in coastal New England, with the tremendous opportunity being afforded to me to make an impact here at/through Microsoft.

One of the most unexpected pleasures of our new bi-coastal life is that not only are we able to continue rooting for our beloved Sox at Fenway … but thanks to also living within walking distance to Safeco Field, we now have twice the number of opportunities to watch the Yankees lose. (Papi was robbed, btw.)

So why the blog restart?

A couple of weeks ago, Bill and I brought life to a new initiative that, over the course of the months and years ahead, will catalyze and deliver a number of things that I’m very excited about. At that event, I said that unlike many other stealth projects I’ve/we’ve done, in this case many of our plans and offerings will evolve progressively and in the open, shaped in good measure by a dialog with you. This is not just feel-good marketing speak: the conversation related to Microsoft - its reputation, its intent and its offerings - is occurring and will continue to vigorously occur on the ‘net with or without us. I’d rather it be “with”, and I hope to add value in becoming another of the varied Microsoft voices conversing on the ‘net.

As in the past, it’s not my intent to be pitching our products here. We’ve got plenty of mechanisms - old school and new - that work well for that sort of thing. But to the extent that I’m excited about something, or I think there might be a different angle that you might be interested in, I’ll chime in.

Mostly, though, it’s my intent to use this as a channel through which to reply and converse with you in a manner that scales. Not on all topics; it’s clear that the nature of my role at this large, public company dictates that I should and will stay silent on certain matters. At times there will be controversies I just can’t or won’t engage in. Many years ago at Groove we developed an early blogging policy. Things may have evolved quite a bit since then, but this policy continues to give reasonable guidance that I’ll continue to apply to my own comments here.

So … if I couldn’t sustainably blog the last two times I tried, will it work this time? I guess you’ll just have to stay tuned to find out. I certainly have a much more complex life now than I did then, with much less flex time / whitespace within which to blog. Conversely, I’m involved in many interesting and varied issues here that have potentially broad impact, so there’s probably a lot more I’ll want to converse about.

As a matter of fact, there’s a fun little project that several of us (inside and out) have been playing with for a few months that we’ve wanted to talk about more broadly, but didn’t have a lightweight way to get it out there. Now we finally have a reasonable way to kick off the conversation. Next week, perhaps.

Going into this, I certainly know that my posts will be relatively infrequent, and probably won’t go as ‘deep’ as they might’ve gone in the past. Less essays, more shorter comments. As in my previous blog, I’ll be tracking the conversation by watching inbound links, rather than by enabling comments on the site. The “link mesh of conversation” is a key distinguishing characteristic of this medium, and is one that I really like.

My apologies to those long-time subscribers whose aggregators never gave up on me and had to re-subscribe using the new feed URL. I’d heard great things about Spaces, and I figured that if it works so well for 25 million other bloggers, it might even work for me.

So, here we go again.

Welcome to Ray’s Weblog, V3.

Comments