It's been a year-and-a-half since I wrote We need a new “user settings” framework before rich internet apps will replace Windows apps. I'd like to revisit the issue because it's never been solved. So let's take this from an abstract concept to something that someone (not me) can go out and build.
What is this "user settings" framework / ultimate profile manager thing?
What I have in mind is something that's similar to the user settings portion of a Windows Profile, except this new idea would work for all applications on all platforms. In Windows, your profile maintains personal settings like what language you use, your custom spelling dictionary, your time and date formats, your avatar, your wallpaper, and a few hundred other little settings that make up your user environment. And if you use roaming profiles or a third-party user workspace tool (AppSense/Scense/triCerat/RES/Citrix/RTO/Liquidware) you can easily take these settings from device to device. (Well, from Windows device to Windows device.)
Now I want a way to extend that to other platforms that I use, like Mac, Linux, iOS, Android, etc. And I also want to extend it to the web applications / SaaS apps that I use.
As I wrote in 2009, I'm sick of having to right-click on the same f*ing word with wavy red underlines every few days because I'm typing it from a new device or from a new app. And I'm sick of having to switch my time zone settings on my laptop AND my iPad AND my SaaS apps AND my BrianMadden.com account when my phone (which I always have with me) knows exactly what timezone I'm in. (Why can't it just tell everything else where I am?)
This could also apply to just about every setting on every platform. (And if we do it right, we'll support the desktop's move to irrelevance that I wrote about last month.)
From an enterprise standpoint, we know that lots of companies are embracing web and SaaS apps. We can see things like VMware Horizon and Citrix OpenCloud Access and Centrix helping tie the provisioning and authentication of web apps back to Windows apps. But why stop there? Why not all settings?
Hey, if Microsoft can create a Windows XP-to-Windows 7 profile migration wizard (the "user state migration toolkit,") or if Apple can migrate Windows settings to Mac OS X settings, then why can't this just exist for all platforms and operate in a continuous fashion?
I'm thinking the easiest way to do this would be to create some kind of neutral (semantic?) standard for storing the various personalization elements as a web service somewhere, and then each platform or SaaS app could run some kind of agent that translated the centrally-stored settings into the native settings for each platform. Citrix has a Citrix Receiver for every platform, so I guess this would be a "personality receiver" or something.
At the most basic level, there could be a URL that was my personal storage location that was shared amongst all my apps, devices, and platforms. So I could point everything I own towards brianmadden.com/me.xml and rest assured that my changes were everywhere. My phone could update that location whenever I moved to a different timezone, and my other apps and platforms could query it every time they started or something. And of course not every device would leverage every setting. (My choices from touch would only be used for touch-based devies, etc.)
Who should build this?
My first guess is that this is something for Facebook or Google to build. Second is maybe Microsoft.
Of course any of the established Windows-based user settings management companies I mentioned earlier could add this feature in to their products. (In fact I can think of one company with about 70 million reasons to try something big and new like this!) Really the hardest part would be writing the plug-ins for each client platform that would map back to the central storage location.
Or is this something for a web standards body to create? (Or maybe The Coalition?)
The real question is how you'd separate the "standard" (or the "concept") from the actual ownership of the data itself. Do I want Microsoft Windows 8 to be able to access user profile data from anywhere via a specific XML format? Yes. Do I want Microsoft to own and host my data? No.
This is about user settings. It's not about data
Now before Tim Mangan freaks out on me for saying it's not about the data, I want to point out that yes, the data is important. But for this specific idea, I'm looking more for a standard way to interchange settings. The data is a different conversation--although what's actually cool is that the ability to share "data" between all these different platforms and devices has already more-or-less been solved by vendors like DropBox, Box.net, Windows Live Mesh with SkyDrive, SharePoint Workspace, etc.
In fact, ironically, maybe for this user settings thing we don't even need a central location or web service at all? Maybe we just need some standard way to write all the settings out to the file system so that our DropBox (or whatever) can handle the synchronization and replication. (Of course if we learned anything from Windows over the past fifteen years it's that we don't want a single huge file, we'd actually probably want a folder full of lots of little files--each containing a single configuration value.)
Tough questions we'd need to answer
I'm sure there are about a million questions we'd need to figure out before something like this could really take off (and I'm hoping you'll share your thoughts in the comments), but here are the things that come into my mind as I write this:
Who owns the data? If your company provides a mechanism to store your roam-able user settings, what happens to your settings when you leave? Can you take them with you? Does the company retain a copy?
Should this thing support a layered approach? Maybe there can be multiple "layers" of personalization settings, perhaps from different providers. (So you have a personal set of settings tied to your Facebook account, and your company has another set they maintain.) Then when using company devices, you'd merge the two sets together, perhaps with policy controls. This might answer the question about what happens when you leave, but it also really increases the complexity.
Do we need to build this from scratch? Look at things like OpenID. Wouldn't it be great if they could sort of just
Is this for us to solve? I mean "us" in the context of us in the corporate IT world. But I wonder if something like this is already in the works from the more consumer Web 2.0/3.0 companies? (Maybe I should have attended SXSW this week). Then again, we corporate-focused people will do a better job of building something that will integrate with companies, security policies, compliance, etc. (Although we corporate folks aren't always the best innovators. :)
Do we allow extensibility? How tight should the standard be? Do we let vendors and individual users extend this framework with their own name/value settings pairs? At first you might think this makes sense, so new apps/devices/capabilities can be added. But of course if we do that vendors (probably Microsoft) will just f*** it up with all their own customized crap. (Just do open a .docx file in a text editor to see how far from XML Microsoft can take it. Yeah it's technically XML compliant, but it's not quite the easy-to-use interchangeable open format we were hoping for.)
By the way, if anyone wants to go out and start this company, I'll trade you the LufLogix.com domain name for a 1% stake.