29 August 2006

since we're talking shop today - Adaptive User Interfaces

A recent fluff post on slashdot got me thinking on the general subject of adaptive user interfaces (think Windows Personalized Menus, except think FAR, far into the future, possibly an alternate future, in which such features don't feel like shitting razors). think "subjunctive". I almost posted a comment over there, but decided I was more likely to get an amusing response here.

So there was this stupid article about how the "OS of the FUTURE (echo: FYOochurrr yoochurr yoochur...)" will hide menu items and filter spam for you (holy crapstacy!). Most commentators correctly noted that the journalist does not understand the function of an Operating System and has possibly not used a computer in 7 years. BUT...

1. Do adaptive interfaces have potential at all? Specifically,
2. Can they be implemented such that you can move from computer to computer without getting culture shocked?
3. How could they be made more task sensitive? so in my video editor app if i switch from a mostly-reviewing context to a mostly-modifying context, the toolsets presented should be different. The eclipse 'perspectives' idea is an ever-so-slight nod in this direction.
4. How can they sufficiently involve the user in the process of adaptation?

This last seems like a major problem with the whole idea of adaptive interfaces in general. with most spam filters, you at least get to see when spam arrives, and spend some time training your filter without risk of losing emails that turn out not to be spam.

is there an analogous set of ideas in adapting menus and UI organization as a whole? something that doesn't intrude on your other activities every time there's going to be a simplifying change to the interface? something that splits the difference between "i tediously reconfigure everything myself" and "buggy heuristics and probability filters reconfigure things for me"? an interface must be predictable in its behavior to be usable (doesn't it?). so a big question:

how can an interface be both adaptable and predictable?

And after tentatively agreeing with the Legion of Beardoes that adaptive interfaces are not the purvue of Operating Systems, is there a place for a system-level service that observes behaviors and systematically abstracts them? This sort of thing would allow some crazy stuff:

1. applications that have no relationship to each other whatsoever (besides host platform) can find unexpected harmonies. For example, I have applications A and B open (one could even be a TTY app). When my behavior pattern in app 'A' shifts to "editing" mode (from earlier example), a similar shift is automatically engendered in app 'B'.
2. the same sort of engine could be used for non-human actors and non user-interfaces (APIs)... couldn't these adaptive principals be applied to system optimization? "the application while being exploited by user X in mode Y never makes these system calls -- therefore, the library in which they are stored will not be linked or will be aggressively paged out if the user is in mode Y". things aren't just simpler... they are faster.

This last point just occurred to me while typing all this junk and has me all worked up into a nerdy lather. Maybe I'll regret it in the morning. It is probably the case that existing caching and paging algorithms are far more efficient than this could ever be. Any takers on that one?

So. What do you guys think? Anyone know of (or have written...) any current apps with super-spiffy adaptive interfaces? Dewey, anything from the Newton come to mind?

13 comments:

dewey said...

1. I hate -- hate -- machines that think they're smarter than me. This includes radios that get quieter when you slow your car down. Many of these machines have the right idea, but the execution isn't quite what I want (or even worse, isn't what I expect).

2. Macintosh has (or at least had as of OS 9.x) a tenet called, I think it was, "progressive" interfaces. For example, a Find dialog would give you a field to type in and an "OK" button; that's it. If you clicked a little triangle at the bottom of the dialog, the triangle would rotate from pointing right to pointing down; the dialog would get bigger; and more controls would appear. Next time you did a Find, it would remember that you chose expanded options last time and bring it up that way.

(Note that Macintosh is optimistic in its menu command and calls it "find" versus the pessimistic Windows version, "search".)

That's about the most adaptive interface I can stand.

3. To the extent I've used them, Eclipse perspectives bug me. It seems like often enough the feature I want isn't available, so I have to first of all remember what perspective I want, then switch to it, then do my thing.

This is actually harder for new users, I think, because if you're stuck, you can't just start looking through menus for the command you want. And even if you know what command you want, you have to learn what perspective(s) it's in.

4. Perhaps the best adaptive interface is "small pieces loosely joined". If your applications are small and focused enough, there's no need to adapt the UI, because always displaying the entirity of the featureset is manageable.

5. I don't recall much automatic adaptation in Newton-land, apart from it learning your handwriting over time.

Do these comments make me sound like an old coot?

schmonz said...

I disagree with the implication that there are non-fluff posts on Slashdot. Back in the day and all that.

Slightly more seriously, this jerminalist is anecdotal evidence that people don't much adapt to computers. Ironically, Personalized Menus give us lots more such evidence: following Heraclitus, you can never open the same menu twice, which is infuriating precisely because it demands that the user adapt every time. I'm too old for this shit.

Your comments, along with Drew's, point up the distinction between learning a UI and getting work done with it. Often these processes are nearly disjoint. The meaty question here is not really "can adaptive UIs help?" but rather "how to design a UI that makes both as easy as possible?"

Trying to figure out what someone knows and wants might help, or it might not. Depends how accurately software can figure this out. Certainly, once someone figures out how to perform a given task, the same series of steps should always work. An adaptive UI which presents a more direct route as an alternative wouldn't be too annoying.

In the abstract, I like Drew's idea of small, focused applications for the same reasons I like small, focused methods, classes, libraries, etc. Concretely, however -- at least in a graphical environment -- it's hard to envision how this adds up to UI simplicity in a complicated workflow. Speaking of old Apple technology, OpenDoc was an interesting experiment in this vein, which unavoidably had significant UI implications.

This is all academic for me, of course, as all of my computing is performed by my personal assistant. Highly recommended.

dewey said...

Tying two threads together, I have an OpenDoc T-shirt. At least I did. I think I may have tossed it.

tormp said...

clever machines. yes, the business that goes on with the car radio and headlights and all of that business makes me cranky as well.

i like "small and loosely joined" mostly, though the "loosely joined" part makes me wonder. i think loosely joined in the sense that you don't need a lot of context to perform a single simple task is good; but on the other hand seeing a well-built feature consistently and widely integrated throughout several parts of an application (or several applications) is gratifying.

as far as personal assistants go, someday in the future when we all have robot personal assistants we'll be back to worrying about this sort of thing. so don't be too dismissive.

ever seen cherry 2000? in a liberal retelling of the orpheus myth, molly ringwald plays a hardened space bounty hunter on a post-apocalyptic desert planet, helping an introverted yuppie find a replacement for his obsolete sex robot? no? where he learns that what he was looking for was right under his nose the whole time? it is molly ringwald film. it's a cautionary tale for the likes of you, schmonz, and one that conveniently unites both topics.

i suppose the idea of a 'progressive' user interface is a pretty good one. present a simple UI to start, and then pull the frequently used features up, rather than starting with an orgy of barely distinguishable toolbars and menus and then pushing them away just as they start to become recognizable, we like tantalus reaching for the "unfuck my document" button only to find it recede into the restrictively licensed darkness. do this in a way that doesn't interfere with the essential usefulness or predictability of the UI.

i think it would still be cool to see some level of UI automation that actually takes hold with end users rather than specialists; maybe that's a better idea than reconfiguring the UI at all. insert taking-hold-of-end-users sex robot joke here. i haven't made extensive use of a macro or scripting feature since blue-text wordperfect 3.1. back in 6th grade.

in summary, sex robots, descent myths, UI automation.

dewey said...

Things that are small and loosely-joined:

http://www.timelessmyths.com/classical/gallery/tantalus.jpg
http://www.closetmonster.net/Images/molly.jpg
http://bitchcomic.com/godisasock.jpg

schmonz said...

When you write about toolbars and document-unfucking, which program do you think of? I think of Word. Which has a totally redesigned UI in Office 2007. Without having done anything with it, I tentatively like it.

dewey said...

The essentials will remain the same.

tormp said...

If technology, sex-tech or otherwise, could replace people, why are there still 6 billion of us crawling inside the planet's skin?

this is a good question.

truist said...

I second Amitai's comment about Office 2007 - the 'ribbons' feature is sitting right in the middle of this issue. And I played with the demo and generally liked it. I think it finds the right balance between "the core stuff is always there" and "the task-specific stuff changes around" to obligingly make it easy for me to perform whatever task I'm working on.

Office is generally innovative in terms of UI design. They are the most obvious example of the auto-hide menu feature, which I hate, because it kills my ability to hunt through menus to find what I want. But what if we could find the menu we wanted just by searching (i.e. typing the name of the thing we want) rather than by manually hunting through menus? Would consistency become less important? Would organization? Search (a la Google) keeps changing my notions about how things should work.

I agree with Drew's comments about Eclipse - I hate Perspectives. As an Eclipse newbie they confused the crap out of me and as an Eclipse expert they are still annoying. But the idea has its core in an old, good idea: that the user shouldn't have to care about applications - they should care about documents. The idea that "Word does documents" and "Excel does spreadsheets" is a computer-specific issue, and not intuitive. It's long been though that the document/content should be the central concept and that applications should simply wrap themselves around documents.

schmonz said...

tormp: Apparently this movie contained Melanie Griffith, not Molly Ringwald. But her hair was dyed orange or whatever.

truist: OpenDoc was document-centric in just that way. Read up, you might sort of like it.

all y'all: Interesting, isn't it, that Personalized Menus ever made it into Office (and on by default, no less). Imagine how much research Microsoft surely does on any new UI features in software used by so many people. So... did the Office developers do hallway usability testing only on other Office developers? Do real people maybe, somehow, actually like Personalized Menus? How did this happen?

dewey said...

Interesting, isn't it, that Personalized Menus ever made it into Office (and on by default, no less).

So did clippy.

dewey said...

For anyone interested, I have a CD containing OpenDoc Developer Release 4. Here are the system requirements:

- Any Mac with 68030 or greater, or Power Macintosh
- Suggested memory: 8MB
- Mac OS version 7.1.1 for 68K Mac, 7.1.2 for Power Mac

If you are willing to take a 68030 Mac off my hands, I'll throw in the OpenDoc software for free.

I've also got "An Interactive Tour of OpenDoc Component Software" on CD. I'll look into throwing an ISO of it onto the web if there is interest. Looks like the CD was made in April 1996.

tormp said...

dah! melanie griffith, the poor man's molly ringwald. i like the movie with molly ringwald in my head better. maybe i thought it was jon cryer looking for a sex robot, too. i hope he finds this discussion when he googles himself.

as far as personalized menus... i'm thinking that by the time the feature actually went through research, development, and testing, and was discovered to be unusable / annoying, it was likely that removing it would have come at significant political cost to someone.