Thursday, March 30, 2006

Less Config: notes towards a nonmanifesto

Coté replied to my comment.  The more I think about it, the more I think there's room here for a position statement -- if not a manifesto -- on the subject of configuration and configurability.



Definition

Configuration is what you have to do to get the thing you have to work the way you want.  Examples:  telling your newly installed Unix box what its hostname is and where its name servers are.  Setting HTTP proxies for your browser.  Entering account information into your mail client.  Adusting the seat and mirrors in your rental car.  Configuration takes a system from a state where it's less usable to a state where it's more usable.  (Sometimes, the difference is between unusable and usable period.)



A rant

Before we get any further, a rant:  I hate configuration.  Every time I have to distract myself from my actual goal for the day to twiddle a setting so things work, a little piece of me dies.  Every time I have to think about my tools rather than thinking about the problem I'm trying to use them to solve, I get peeved.  When I finally get everything working, there is a sense of triumph -- but it's bittersweet, since it came as a result of things Not Just Working.  I want things to Just Work.  I hate it when things get in my way, and I hate it even more when it's for no good reason.



The Problem

And that's the meat of my position:  There's at least 3 kinds of configuration.  (I'm open to suggestions on what the others are.)  There's the configuration that's necessary for identity and security -- there's no way Thunderbird or Gaim can know how to act on my behalf if I don't tell them who I am.  There's the configuration that results from there being more than one good way to do something -- situations where your user community is split about what the best way is.  And there's configuration that results from developers being unwilling to make decisions about what the best way is.

The first kind is a necessary evil.  Security and usability are almost always diametrically opposed, since after all the whole point of security, and its siamese twin authentication, is preventing people from doing things.  Don't get me wrong, though; it is an evil.  That's why people who know how to do it set up certs so they don't have to type their passwords in to start ssh sessions, and the rest of us security-ignorant masses set our mail clients and IM clients and browsers to remember our passwords.  I'm just checking my bank balance, get out of my way with this password crap!

The second kind is debatable.  Sometimes it's ok; most designed things should afford some sort of personalization, since human beings aren't all the same.  It doesn't affect the function of my computer, but the ability to make my taskbar and window borders silver instead of blue makes me happy.  However, sometimes it's not:
Windows and OSX let you move the taskbar/dock around, with the end result that on some people's computers, that basic piece of UI infrastructure is not where I expect it to be.  Which means that it might as well not be there at all.  And don't even get me started on the ridiculous state of affairs in GNOME and KDE.

The third kind is inexcusable.  Luckily, it's mostly avoidable -- in desktop software.  But for some reason, Enterprise Software has all sorts of bells and whistles and knobs and frobs and controls that you have to set just exactly right or nothing works, and the factory defaults are useful to nobody.  Sometimes it goes away as products mature, if the development staff gets -- and uses -- advice from the field about what the correct ways to set things up are.  Sometimes it doesn't, and the company makes its money in two phasees: first it sells you its unusably complex software, then it sells you person-years of consulting time from one of the twelve people on the planet who understand the software well enough to configure it properly.  In fact, I'd go so far as to say that's one of the defining (mis)features of Enterprise software, much to all our detriment.  For some reason, large customers feel better about their purchase when it's difficult to implement.



The Solution

It doesn't have to be that way.   Unix is finally escaping its high-configuration heritage with Linux distributions like Gentoo and Ubuntu that don't require 40 hours of grovelling around in config files and newsgroups to get sound and accelerated video working; Windows and OSX are now easy enough that most people can do their day-to-day jobs without ever having to care about the operating system they're running on.  Google and the rest of the Web 2.0 scene understand, almost at a subconscious level, that things that Just Work are better, even if they have a more limited feature set to start with.  Sun's learning this too; we're trying, with things like the Network Auto-Magic project in the approachability community of OpenSolaris and some upcoming services from my group (among many other things!).  But we're nowhere near there yet.  Luckily for us, neither is our competition -- but that just means we have a chance to get a real leg up.

Friday, March 24, 2006

What We Really Own

In his most recent blogpost, Raymond Chen thirdhands an expression I now fourthhand to you:
you don't really own anything you can't carry at a dead run while firing an AK-47 over your shoulder.
Ha ha, we think; how glib.  But what about data?  One thing you can carry at a dead run while firing an AK-47 over your shoulder is passwords, and the mobile phone in your pocket -- you know, the one with more compute power and local storage than the entire WORLD 35 years ago -- probably doesn't slow you down that much.  Not to mention the fact that, as long as the war you're in the middle of isn't global, you probably have some safe (virtual) place to store a bunch more bits.  Greg Papadopoulos, in a spiel I attended, made the analogy between data storage and money storage.  Nowadays, it's totally obvious that the safest place for your retirement nest egg is a bank and not your mattress.  But not only was that not always the case in the past, but it took people's perception a bit of time to catch up to the reality that yes, banks are safer.  Not always more convenient, but safer.  And the money's no less yours for you not having actual specie in your posession.

And the same thing goes for data, we just don't all know it yet.

Monday, March 20, 2006

Test

Of course, the first entry of every blog should be the test entry that determines whether the blog is working as it should.  Heaven forfend this one be an exception.