Building Anticipatory Software

Recently, I have devoted many cycles to the question, ‘What is ‘Personalized Software’?

In Douglas Hofstader’s Gödel, Escher, Bach: An Eternal Golden Braid, I came across this self-evident but illuminating passage,

“If you punch “1” into an adding machine, and then add 1 to it, and then add 1 again, and again, and again, and continue doing so for hours and hours, the machine will never learn to anicipate you, and do it itself, although any person would pick up the repetitive behavior very quickly. Or, to take a silly example, a car will never pick up the idea, no matter how much or how well it isdriven, that it is supposed to avoid other cars and obstacles on the road; and it will never learn even the most frequently traveled routes of its owner.”

Should anticipation (or adaptiveness or intuition) be considered a P0 or P1 requirement for the personalized “machines” we are creating? In other words, can we assume that you will be just as happy with a dumb car whose seats and controls revert from [Driver1_Setting] to [Driver2_Setting] when you approach it as with a smart car whose seats and controls adapt intelligently to your preferences (say, body temperature and back angle) and make incremental adjustments accordingly, over time?

Comments (8)

  1. mike says:

    Once again I’ll haul out the trusty example of the much-maligned Microsoft Bob. Whatever people think about the UI of that product, there was some cool stuff under the covers. One such thing was agent technology that could, exactly as you suggest, watch you and suggest a shortcut. One can easily imagine it being extended to not only suggest things, but offer to do them for you. FWIW, this technology is what ended up in Office as Clippy et al. Turns out, haha, people don’t really like the computer telling them things as they work.

  2. Hi (Note: Newbie to these ideas),

    It occurs to me that the problem with predicting such things is that, as in real life, that sometimes your predications *will* be wrong.

    Predictive systems must take this into account and only be used for situations where failure is not a problem.

    The next interesting thing is how do you communicate failure to the system in an intuitive manner? You can’t keep asking ‘Is it OK if…?’

    Hmm…interesting…I guess we do simple things like this now, for example remembering preferences the next time someone uses an app…

    Best regards


  3. Tony D says:

    "turns out, haha, people don’t really like the computer telling them things as they work"

    Aye, ther’s the rub. No matter how good an idea it seems at first, people react unpredictably. The car is a good example. How cool would it be to have a car that picks the best route and re-routes around traffic? The problem is that people are near obsessively attached to their favorite shortcuts.

    UI is the same. Every time that IE changes how it moves the focus around, or automatically assigns focus when the page loads, it disrupts my work patterns. It doesn’t matter how good the reason behind the change or how minor. It leaves me grumbling about the annoying product.

  4. Tony D says:

    Hey, this is off the top of my head, but what if we look at some other paradigms.

    HOUSES: I walk through my neighborhood and I see rows of houses that were identical 100 years ago, but now looking almost nothing alike. The owners have added porches, rooms, windows, porches turned into bedrooms and new porches were added, attics got gables, gables got larger. What if a piece of software were more like a good solid, basic house that was easy to rennovate as needs change? (maybe this is .NET?)

    DOCUMENT DESIGN: Thinking about how I like to write documents – I don’t want a clippy looking over my shoulder. I do, however, like to sit in a productive review meeting with a trusted co-worker. Maybe we need to pop up some suggestions about preference changes, useful features, wizards and automations, other products and technologies, shortcuts, design patterns, and best practices AFTER I’m done working. This might be when I save (to a SharePoint site?), or maybe it’s when I’m out of ideas and I click the "Review" button.

  5. Finding a solution that will work for everyone is next to impossible. Most people hated clippy but if it had been more like a gentle tap on the sholder, rather than a nag from the wife, then I would have liked it.

    What I really need is an alternate brain. Something that will silently sit and watch my every move. Then when I’m ready, I can say, "Hey, I’m sick of driving home, you take over, but we need to get some milk on the way", or "Remember where we parked!", "Please remind me of our wedding aniversiry in time to order some roses".

    You could call this a brainPod ™(c) (:-})