litl and computer frustration

by havoc

Nat Friedman has interesting results up for his informal survey on computer frustration, noting that “About a third of these issues could be addressed by webbook efforts like ChromeOS and litl, although the webbook model will probably raise new issues as well.”

Seems like a good time to discuss how we designed the litl webbook to reduce computer frustration.

Design with a computer-frustrated audience in mind

We designed litl OS with Cooper, Pentagram, and our own design team. Cooper contributed a
set of personas, adding to our own thinking about who would
love the litl. We focus on busy families at home. While we have big
dreams for how litl OS can evolve, for now we didn’t think about work
computing, ignoring the needs of business travelers and IT guys.

Windows will ask hundreds of questions busy families don’t care about
understanding. It’s not that they can’t understand, but they do not
care
. (The most famous example might be Vista’s overzealous need
to “Allow or Deny?”). We can say definitively that our audience
doesn’t care about this stuff, and so we don’t ask it. Period.

As geeks, who have been spent our entire adult lives using and
administering PCs, we tend to think the entire world is like us… the
more the better… we want total control.  Our research (and our
own families) have shown that there’s a huge portion of the world,
such as busy moms, who only care about results. They don’t care about
tech specs, and they don’t care about tweaking what Tufte calls
“computer administrative debris.”

As software developers, we don’t realize how much worthless debris we put in front of people.  Stuff they don’t care about or don’t need to know. At litl, we’re trying to take a different approach.

Make the OS automatic

If your favorite web app or web site fixes a bug, it isn’t nagging
you about whether you want the fix. You simply get the fix. We
approached litl OS in the same way. litl OS is smart about avoiding
updates while you’re using the webbook, and quietly updates itself
while you sleep.

Hide implementation detail – manage it for you

File management is one of the more complex features of traditional
operating systems, and litl OS avoids it entirely. Web apps just store
their stuff, they don’t ask you where to store it. We continue the
entire OS in that spirit.

Sandboxed Sites and Channels

Applications on the litl don’t have free run of the operating
system. We have two kinds of “app”; web apps running in our browser,
and channels. (Channels are a special kind of app with three states,
one for lean-forward/laptop, one for lean-back/easel, and one
widget-like state in card view.) Channels are run by a custom flash
player in their own process.

This gives us a number of tools to control malware (since we don’t
have to distinguish it from “normal” unsandboxed apps), and it throws
out all kinds of complexity associated with installing and updating
traditional application software.

Sandboxing eliminates a whole class of “system integration” issues
where applications interfere with one another or with the OS. On the
litl, web pages and channels can’t (and need not) install their own
annoying updater software. They can’t add tray icons to your
screen. They can’t break other apps in unforeseen ways.

Hardware/Software Integration

Building for a single hardware platform throws out whole
domains of complexity. There’s no mess of interface on the litl
related to hardware drivers; we know about our hardware already. We
know which buttons are on the keyboard (and incidentally, a bunch of
useless ones are not). We know the screen resolution.

This means no setup or configuration to start using the litl. It means
our help and instructions can be precise – instead of “look for the
key that says…” we can say “press the big blue key in the lower
left.” It means we can ship the litl preconfigured with information
entered during the ordering process. It means any number of OS
features “just work” instead of requiring tuning to the particular
hardware the customer has.

Eliminate the hard drive

The hard drive is the number one point of failure in PCs, and when it
breaks, it’s a disaster – you lose all your stuff. Best practice is to
use the hard drive only as a cache, keeping a backup copy of
everything on some web service. litl does this by default, going
further to automatically manage the cache so it only has what you’re
actively using. No hard drive failures; no data loss; no setting up or
managing backups.

A new issue: web service integration

The webbook model isn’t all positive complexity-wise (yet) – as Nat
says, it may raise new issues. Here’s one: a litl OS design principle
is to use any and all existing web services and apps, rather than
reinventing the wheel. We decided to use web mail rather than create
our own litl mail app, we decided to use Flickr and Shutterfly rather
than invent our own photo storage and sharing site, and so forth. We
see our goal as improving the web, and helping people use the web,
rather than replacing the web with a “walled garden” of litl-branded
services.

There’s no question that a “walled garden” of services we
controlled completely would be simpler and easier to use. But we don’t
think our customers would be happy as hothouse flowers. We want to be
the best OS for using the whole Internet, rather than a limited
appliance.

A Challenge: Internet and WiFi setup

Internet and WiFi setup are tough to address, because problems on
the access point side are outside litl’s control. Still, on the litl
itself, wifi configuration couldn’t be simpler – we start with a big
list of access points, instead of a tiny little tray icon. People need
to recognize their network name and know their password. If they have
those two things, we automate everything else.

Personal anecdote: I recently helped my sister fix her wifi; there
were two problems, and both were caused by Windows complexity.

First, Dell had installed some garbage “wifi manager” software that
interfered with Apple’s AirPort software. On the litl, we don’t ship
OEM crapware.

Second, when you add a network, Windows opens this absurd, verbose dialog that makes no sense; she’d
clicked the wrong answer. litl OS does not ask this sort of question,
by design. If we don’t think our customers care about a question, we
don’t ask it. (This has nothing to do with the webbook model per se;
but it does have to do with our well-defined target audience. We know
our customers don’t care about this question.)

Only the beginning

We’ve come a long way with litl OS, but
there’s a lot more we could do. Nat’s survey mentions printing; we
could automatically discover printers with no driver installation. He
mentions performance; we could manage CPU usage of sandboxed sites and
channels to keep the “too much stuff” problem (too many open sites)
from degrading performance. We could much more extensively lock down
the OS using SELinux-style technology, to further restrain malware.
There are so many possibilities because the OS is truly managed on
behalf of our customers, not managed by our customers when they have
better things to do.

To be sure we get this right, we’re planning to rotate the litl
development team through customer support, giving every software
developer firsthand knowledge of our customers.

We would love to hear your ideas on how to further reduce computer
frustration – let us know!

(This post was originally found at http://log.ometer.com/2009-11.html#16)

My Twitter account is @havocp.
Interested in becoming a better software developer? Sign up for my email list and I'll let you know when I write something new.