di  -  venerdì 24 settembre 2010

Diciamoci la verità: se non fosse costato troppo distruggere il monitor, credo che molti di noi si sarebbero tolti lo sfizio di scagliare la tastiera contro Clippy e soci, gli Assistenti di Office, dotati della capacità di apparire nei momenti meno desiderati e di porre la fantomatica domanda: “Would you like help?”, ovvero: “Hai bisogno d’aiuto?”

Clippy the Paperclip


Ma gli Office Assistant, erano in realtà un piccolo gioiello software, connubio tra tecnologico e sociologia.

Per capire cosa realmente si celava dietro quella goffa graffetta, che ha accompagnato esplicitamente Office fino alla release XP, bisogna infatti rifarsi alla teoria Computers Are Social Actors (CASA), 1994-1996, che afferma “one can take both thoeries and methods from social psychology and directly apply them to human-technology interaction”, ovvero che l’interazione con la tecnolgia sarebbe guidata da regole ed interpretabile secondo derivazioni dalla teoria delle relazioni sociali.

CASA è il risultato di uno studio effettuato presso l’Università di Stanford curato da Clifford Nass, Jonathan Steuer ed Ellen R.Tauber, con il supporto di Byron Reeves. Al centro della discussione viene posto l’accento sugli USER INTERFACE AGENT (UIA), una sorta di assistente che guida l’utente durante l’interazione con il sistema. Spiegare in modo puntuale cos’è uno UIA non è semplice, visto che esistono diverse scuole di pensiero. Uno User Interface Agent può essere descritto come un sistema disegnato per riprodurre i comportamenti umani (si parla anche di Intelligent Assistant), ma anche come un “semplice” componente che rende l’interfaccia utente più user-friendly.

Tra le software house che per prime cercano di cavalcare l’onda di CASA e degli UIA non poteva non esserci Microsoft, vista la sua vision ben precisa: “un computer in ogni casa” e la sua posizione dominante nel mondo del software.

BigM comincia una serie di studi creando un team specifico dedicato allo sviluppo di soluzioni tecnologiche per l’interazione uomo-macchina, basate in larga parte su CASA. Proprio Reeves, chiamato come consulente, sintetizza così il proprio lavoro di supporto alla società di Gates:

” The question for Microsoft was how to make a computing product easier to use and fun. Cliff and I gave a talk in December 1992 and said that they should make it social and natural. We said that people are good at having social relations – talking with each other and interpreting cues such as facial expressions. They are also good at dealing with a natural environment such as the movement of objects and people in rooms, so if an interface can interact with the user to take advantage of these human talents, then you might not need a manual.”

Una volta pronti i primi prototipi, Microsoft registra addirittura una serie di brevetti relative alle nuove tecnologie in grado di applicare, praticamente, i concetti dietro la teoria di Reeves e soci.

Tutto ciò si traduce nel 1995 in Microsoft BoB, il primo tentativo di “social interface” di Microsoft che introduce una GUI basata sul concetto di “stanza (room”), come ampiamente descritto qui da Alessio. Con BoB vengono concretamente implementati gli UIA, secondo entrambe le interpretazioni sopra descritte. Fanno, così, la loro comparsa gli Assistenti Animati, rappresentati da Avatar che si ispirano ad elementi di fantasia o anche personaggi storici, e i Wizard che semplificano l’interazione con l’interfaccia. Nel frattempo anche Packard Bell implementa una GUI basata sulle room, chiamata Navigator, ma priva degli UIA.

E’ in questo contesto che fa la sua comparsa il cane Rover, primo tentativo di creare un “assistente” che cerca di intuire le necessità dell’utente e suggerirgli possibili soluzioni. Certo il comportamente di Rover  è statico e basato su elementi ben precisi, ma rappresenta comunque un terreno inesplorato fino a quel momento.

Nonostante BoB si rilevi un flop clamoroso, Microsoft ne riprende i concetti in buona parte dei software realizzati nell’arco del decennio successivo, attraverso i Wizard e gli “odiati” Assistenti di Office, con il portabandiera Clippy the Paperclip.

Lo sviluppo degli Agent fu incentrato su tre aspetti primari:

  • Proactive Help System, ovvero un sistema di help proattivo che cerca di analizzare le azioni dell’utente e suggerire tip per velocizzarne le attività;
  • Natural Language Help Query, la possibilità di “fare domande” al sistema attraverso un linguaggio naturale. In realtà questo elemento è slegato dagli Assistenti ed è utilizzabile anche attraverso la comune funzionalità di ricerca di Office e soci;
  • Agenthood of the Program, ovvero l’agente si pone come l’interlocutore diretto con l’utente, mascherando, in parte, l’applicazione sottostante.

Natural Query

Dietro il Proactive Help ed il Natural Language Query si celava un progetto ben preciso: MS Lumiére, basato su un complesso modello matematico/statistico che cercava di predire il comportamento degli utenti e, quindi, proporre informazioni utili a velocizzarne il lavoro. Il sistema era incentrato sull’Inferenza Bayesiana (che considera la probabilità come livelli di fiducia nel verificarsi di un determinato evento) e suddiviso in 5 macro aree:

  • la costruzione di modelli bayesiani per ragionare sugli obiettivi che gli utilizzatori vogliono raggiungere, lavorando sulle loro azioni e sulle loro richieste;
  • interconnessione con un software terzo per analizzarne il flusso di eventi;
  • motore di trasformazione degli eventi in variabili rilevanti per il modello bayesiano;
  • sviluppo di profili persistenti per catturare la variazione di comportamento dell’utente;
  • sviluppo di un’architettura globale per User Interface Agent Intelligenti (UIAI);

Per raggiungere gli ambiziosi traguardi di Lumière, Microsoft coinvolse figure, fino ad allora, completamente estranee al mondo informatico, come psicologi e sociologi, in piena sintonia con CASA.

Ovviamente Lumière influenzò anche la modalità di gestione delle finestre all’interno delle GUI, visto che gli Assistenti Intelligenti eseguivano azioni in base ad eventi verificatisi in un’altra finestra. Ciò poneva in relazione tra loro queste due elementi distinti della GUI e, in particolare, l’Assistente doveva essere “informato” di ciò che avveniva. Vi dicono niente il pattern Observer o il classico Produttore/Consumatore?

Uno schizzo relativo al brevetto sull’interazione degli elementi della GUI

Tra i vari brevetti registrati dalla casa di Redmond merita menzione quello relativo alla tecnologia utilizzata da V-Chat, praticamente una sorta di Second Life con tanto di ambienti virtuali. E il riferimento non è casuale visto che nel 2002 alcune delle figure principali di Microsoft, nel settore delle Virtual World Platform, come Cheng, Farnham, and Stone, collaborano ad un libro che descrive nove linee guida per la realizzazione di mondi virtuali, basate sulle loro esperienze. Second Life, praticamente, fa proprie la maggior parte di esse.

V-Chat, tra l’altro, venne realmente implementano e supportato da Microsoft, ma ebbe una diffusione talmente bassa che fu velocemente abbandonato.

Schizzo per il brevetto di V-Chat e l’omonimo software

Viste le premesse e innovazioni tecnologiche sviluppate, perché Clippy ha fallito?

Paradossalmente proprio le fondamenta di Lumière hanno provocato la dipartita degli Assistenti. Una delle cause principali è infatti l’ “Anthropomorphic Dissonance”, ovvero la dissonanza antropomorfica che induce l’utente a credere che il piccolo assistente possa realmente comportarsi come un essere intelligente, essendo plasmato su comportamenti reali. Ciò porta a un’ampia frustrazione poiché, ovviamente,  l’UIA non è in grado, almeno per ora, di andare al di là di quanto imposto dal suo creatore.

Un altro importante motivo di tale disfatta è il fatto che gli Assistenti mascherano il reale funzionamento del sistema, creando spesso confusione tra gli utenti avanzati, che preferisco avere il pieno controllo, e i neofiti che, invece, devono mediare i loro comportamenti.

Alcune delle ricerche legate agli UAI, addirittura, allontanato Microsoft da soluzioni più appropriate, facendole perdere terreno rispetto ai diretti concorrenti. Un esempio lampante è Earl, l’Internet Assistant di Redmond. Pensate che, praticamente, gli studi e lo sviluppo di questo simpatico surfista avvenivano mentre Page e Brin brevettavano il PageRank e fondavano Google.

 

Earl il Surfista

Tutta la tecnologia Microsoft relativa agli UIA è stata successivamente convogliata in Microsoft Agent, che tramite tools come MASH, Microsoft Agent Scripting Helper, permette di creare Agent Animati da utilizzare con presentazioni, messaggi inviati tramite e-mail, desktop, pagine web, ecc. Microsoft Agent è ormai ritenuta obsoleta e non più supportata, se non a livello di runtime, dal nuovo Windows 7.

Microsoft Agent

Gli studi sugli Assistant Agent, anche non legati direttamente alle UI, continuano incessantemente da parte di diverse aziende. La stessa Microsoft, intorno al 2006, ha brevettato una nuova serie di UIA per dispositivi portatili, pensati per aiutare persone con disabilità parziale o totale di lettura e/o scrittura, attraverso mimiche e sintetizzatori vocali.

UIA per dispositivi portatili

Anche i Motori di Ricerca Semantici per il web, che  tentano di comprende cosa realmente l’utente sta cercando, piuttosto che ricercare le keyword o una loro semplice aggregazione, in fondo, ricordano molto quello che tentava di fare il povero Clippy.

Insomma, se si rilegge la storia di Clippy (e BoB) in chiave di attività di ricerca ed elementi, che poi hanno condizionato l’evoluzione del software non solo targato Microsoft, si scopre che tutto sommato la goffa graffetta non è stata un fallimento così grande come spesso si tende di dipingerla.

15 Commenti »

I commenti inseriti dai lettori di AppuntiDigitali non sono oggetto di moderazione preventiva, ma solo di eventuale filtro antispam. Qualora si ravvisi un contenuto non consono (offensivo o diffamatorio) si prega di contattare l'amministrazione di Appunti Digitali all'indirizzo info@appuntidigitali.it, specificando quale sia il commento in oggetto.

  • # 1
    Simon71
     scrive: 

    Io ho sempre usato il cagnolino…Tsè….Tsè….^^

  • # 2
    goldorak
     scrive: 

    Articolo molto interessante per davvero, ma se il problema fondamentale di questi UIA sta nella “anthropomorphic dissonance” come si giunge ad interfacce utenti “intelligenti” ?
    Perche’ di due l’una, o si creano interfacce utenti a prova di idioti e allora sono i power users che si ribellano; oppure progetti una interfaccia talmente complessa che hai bisogno di un UIA che pero’ per sua natura e’ “castrato” e non puo’ interagire sullo stesso livello di un aiutante umano. E allora sono i neofiti che si ribellano per via della “anthropomorphic dissonance”.
    Quindi qual e’ la soluzione ? Aspettiamo il computer del Enterprise di Jean Luc Picard ? ^_^

  • # 3
    Emanuele Rampichini
     scrive: 

    La ricerca che c’è dietro è interessantissima, i risultati diretti tangibili purtroppo deludenti. È anche vero che ciascun ramo dello sviluppo tecnologico (anche quelli destinati a morire) porta con se tutta una serie di strumenti e innovazioni trasversalmente utili.

    Tolto questo credo che la strada maestra per interfacce utente user friendly sia quella della separazione dei compiti. L’uomo è estremamente abituato ad utilizzare strumenti “monouso” e questo va tenuto in mente in fase di design.
    Della serie “se serve un assistente per spiegare l’utilizzo di un interfaccia allora è fatta male”.
    Naturalmente questo discorso decade completamente se parliamo di utenti “professionali” che per forza di cosa avranno esigenze spesso inconciliabili con l’immediatezza.

    Complimenti per l’ottimo articolo.

  • # 4
    n0v0
     scrive: 

    DIO quanto l’ ho odiato…..!!

  • # 5
    Scolapasta
     scrive: 

    Il problema dell’approccio Agent, capire il problema per mostrare le funzioni che lo risolvono, è che spesso anche l’utente non ha la più pallida idea di cosa stia cercando di fare, tantomeno di come farlo e non parliamo nemmeno di capire come farlo con gli strumenti che ha a disposizione!

    Da qui, la non banale utilità delle classiche GUI (che ora estendono la loro azione anche nel campo del completamenti dei comandi) nel cercare di proporre all’utente stesso il set di funzioni del programma, organizzato per aree funzionali, in modo che vedendo cosa può fare lo strumento l’utente capisca come applicare quelle funzioni al suo problema, secondo lo schema analizza le funzioni e applicale al problema: funzioni -> problema.

    Viceversa i wizard o gli agent (in fondo l’approccio è quello: problema -> funzioni) funzionano bene quando le esigenze sono standardizzate e la stessa soluzione è ampiamente applicabile con meno analisi possibile (che sennò sono troppe le ambiguità anche per una intelligenza umana, non solo per una attuale IA), ma qui arriviamo quasi a toccare il campo delle automazioni (script, macro ecc) che propongono soluzioni preconfezionate a problemi ben precisi analizzati in precedenza, saltando tutta l’elaborazione della definizione del problema che l’agent o i wizard chiedono all’utente (anche analizzare il comportamento in fondo è chiedere, se dall’altra parte non ci sono idee il software ha ben poco da analizzare!)

  • # 6
    Alessio Di Domizio
     scrive: 

    Davvero un’ottima e approfondita analisi, complimenti!

  • # 7
    homero
     scrive: 

    ottimo articolo, per fortuna la graffetta è sparita e spero per sempre…
    …quello che la teoria descritta nell’articolo non esprime è il rapporto causa/effetto che ciascun essere vivente percepisce, oggi purtroppo le interfaccie utente continuano ad avere un lag che non si riesce a colmare, questo è dovuto essenzialmente a due fattori il primo la procedura per attivare la funzione e la seconda è la reatività della macchina per eseguire l’intero processo…
    la apple in questo ha da sempre lavorato molto anche a scapito della funzionalità in ogni suo software e fin dall’inizio…iphone ne è l’esempio lampante, primo tra tutti il non dover cercare la freccetta ed indirizzarla per attivare un comando…e l’altro fronte è il tempo in cui questo comando viene eseguito dal click fino all’avvio completo, prima di questo c’è la famosa clessidra che indicava sul macintosh nel lontano 1984 la fase di transizione per eseguire un comando…la clessidra in un certo senso rassicurava l’operatore e lo tranquillizzava che qualcosa stava accadendo e funzionando.

  • # 8
    droid
     scrive: 

    mai installata la graffetta^^

  • # 9
    myskin
     scrive: 

    la dissonanza avveniva anche tra ciò su cui si cercava e ciò che effettivamente veniva proposto, e questo è un limite tecnico, cosa che riduceva la graffetta a bersaglio preferito di epiteti fantasiosi e ben strutturati (da perte dell’utente)
    osservando il s.o. mac os x e l’hel delle sue applicazioni noto invece che:
    non esiste alcun assistente “che voglia sembrare qualcosa”. Quindi nessuna personificazione, ma una sana individuazione che è a una macchina cui chiediamo aiuto;
    i comandi per cui chiedo aiuto vengono evidenziati con una frecciona. e nel 90% dei casi la cosa risolve il problema.
    In tutti gli altri casi si apre un help (on o off line) coi capitoli del manuale da consultare secondo le mie esigenze e la cosa risolve il problema nel più classico sistema self-made.
    bell’articolo comunque, non sapevo della teorizzazione che stava dietro l’odioso oggetto!

  • # 10
    Alex
     scrive: 

    Tutto sommato non funziona male ma la domanda che non si sono proprio posti era perchè mai alla lunga dava tanto fastidio e si evita di installarlo successivamente.

  • # 11
    phabio76
     scrive: 

    Ciao, complimenti per l’articolo.
    L’assistente digitale per sembrare intelligente ci deve conoscere. Divagando un po’ e generalizzando, Negroponte scriveva parecchi anni fa che il perfetto assistente digitale dovrebbe essere efficiente come un maggiordomo: “PLAY…Buonasera signore, ho registrato per voi un programma televisivo dove era ospite un vostro compagno del liceo. All’enoteca è in offerta un vino particolarmente gradito all’ospite che ci farà visita stasera…”
    C’è ancora da lavorarci su ma probabilmente fra qualche anno sarà alla portata di Zuckerberg.

  • # 12
    nibble
     scrive: 

    Bell’articolo! Complimenti!

  • # 13
    Paolo
     scrive: 

    Ugh, clippy ha dato fastidio non poco a tutta una generazione di users negli anni ’90, per fortuna che ce lo siamo lasciati alle spalle.
    Anche il BOB con il suo ridicolo font Comic Sans (passato alla storia come uno dei fonts più odiati al mondo) sono scomparsi dalla nostra vista.
    Speriamo che anche il “ribbon” di Office venga archiviato per qualcosa di più funzionale.

  • # 14
    Luca Morrone
     scrive: 

    wahhh clippy… sulle mie installazioni di office durava il tempo di un lampo… io l’odiavo anche perche’ aveva la capacita’ di coprire sempre il testo o i comandi che volevo!!!e poi ne vogliamo parlare di quanta ram ciucciava???
    cmq avevo letto qualcosa di quello che c’era dientro ma non a questo dettaglio… strabiliante… e quanti soldi ci avra’ buttato MS…
    complimenti per l’articolo…
    Luca

  • # 15
    Avada Kedavra
     scrive: 

    Il problema logico che rende inefficiente l’approcio agent (per la maggior parte, non per tutte le implementazioni, beninteso), è molto semplicemente che l’agent è un cane che si morde la coda.

    L’utente, infatti, proprio come l’agent è adattativo: all’inzio procede in manire illogica, per tentativi, scoprendo solo gradualmente le vie più efficienti per fare il proprio lavoro.

    Ne risulta che nella fase in cui l’utente avrebbe davvero bisogno di essere guidato dall’agent, l’erraticità del suo modus operandi rende estremamente difficile comprendere, dal contesto delle sue azioni, cosa stia cercando di fare, e ci sono buone possibilità che l’agent confonda (e irriti) ulteriormente l’utente prospettando azioni non consone al contesto, intromettendosi e creando reiterate interruzioni nel processo di feedback di appendimento.

    Viceversa, una volta che l’utente ha imparato ad usare il software per lavorare in maniera più spedita e lineare, l’agent ha vita facile a capire come “aiutarlo” a raggiungere lo scopo, ma in realtà potrà solo risultare irrilevante (ed irritante) perchè si limita a spiegargli ciò che in buona sostanza l’utente sa già.

    Quindi nella maggior parte delle applicazioni pratiche la possibilità di un agent di capire dal contesto delle azioni dell’utente quale sarà la prossima mossa dipende direttamente dal grado di conoscenza che l’utente ha del programma e delle sue funzioni, mentre la necessità dell’utente di essere guidato è inversamente proporzionale ad essa.

    Questo non significa che la ricerca nel campo degli agent sia “sbagliata”, significa semplicemente che l’agent è tutt’altro che il “silver bullet” per semplificare le relazioni uomo/macchina, ma al contrario una tecnologia che va usata con i piedi di piobo solo quando possa, risultati alla mano, risultare più utile che irritante!

Scrivi un commento!

Aggiungi il commento, oppure trackback dal tuo sito.

I commenti inseriti dai lettori di AppuntiDigitali non sono oggetto di moderazione preventiva, ma solo di eventuale filtro antispam. Qualora si ravvisi un contenuto non consono (offensivo o diffamatorio) si prega di contattare l'amministrazione di Appunti Digitali all'indirizzo info@appuntidigitali.it, specificando quale sia il commento in oggetto.