Pensieri e parole su HCI, home computing, tecnologie desktop e sul Progetto Lobotomy

martedì 23 dicembre 2008

Usabilita' e Computazione

0 commenti
Festeggio il mio prorompente ritorno alla Grande Rete (ho ritirato oggi la chiavetta USB per la connettivita' 3G, alla faccia di Tin.it che mi ha sospeso l'ADSL) con un post sul mio bistrattato blog.
Quello che voglio esporre e' qualche considerazione sul ruolo dell'usabilita', o quantomeno dello studio dell'interfaccia utente con cui si presenta un software, non gia' in un'ottica estetica o funzionale ma prestazionale.
Come sempre, un riferimento a fatti realmente accaduti: come forse gia' citato in passato al momento sto lavorando a tempo perso su un gestionale web costruito con tecnologia Ajax (nella fattispecie con GWT), il cui piu' grosso difetto e' il committente. Questo arnese mi e' stato richiesto da gente con scarsissime competenze di sviluppo software, che campa spacciando prodotti altrui ma farebbe piu' bella figura ad andare a vendere il pesce al mercato, e che vuole ad ogni costo dir la sua non solo sull'aspetto ma su tutto il paradigma d'uso dell'applicazione; all'inizio ho tentato di raggiungere un compromesso, cercando di farli ragionare e fargli comprendere nozioni essenziali (ad esempio il fatto che un applicativo web non funziona esattamente come un applicativo locale), ma alla lunga mi son stufato e con mio sommo rammarico sto un poco alla volta mettendo insieme un accrocchio di pulsanti sparpagliati, campi anonimi e dati presentati a casaccio. Il punto sta nel fatto che per riuscire a gestire la quantita' di baggianate che devo visualizzare in un dato momento (ovvero, quello sbagliato) e non impazzire con un trattamento granulare dello stream proveniente dal server ho via via astratto e stratificato le componenti, tanto che in determinati contesti la quantita' di bytes da scambiare asincronicamente attraverso l'Internet (e, dunque, lentamente) e' talmente grande da rappresentare la causa di ogni rallentamento nell'utilizzo del programma.
Certamente molti passaggi si potevano risparmiare con una piu' accurata analisi progettuale (cosa impossibile, dato che il mio cliente cambia idea piu' spesso di quanto cambi le mutande. Mi consolo all'idea che, stando a quanto raccontato da amici con esperienze ben piu' ricche delle mie, tutti i clienti siano cosi'...), o con una piu' ponderata gerarchia di oggetti con una migliore interfaccia, ma guardando il risultato vedo come certe funzionalita' siano talmente poco consistenti rispetto all'interfaccia da richiedere la generazione di un massiccio traffico client/server per poter andare a recuperare informazioni che non c'entrano nulla con quanto gia' prelevato, visualizzato ed in cache.
La morale di questo post e' che talvolta uno studio effettivo dell'interfaccia non abbia solo finalita' "filosofiche" (perche', ricordiamolo, spesso l'usabilita' e' considerata un fattore prettamente filosofico ed inconsistente, scorrelato dalla funzionalita'...), ma puo' far risparmiare grosse dosi di computazione inutile. E sul monitor appaiono tasti che non hanno ragione di esistere.

lunedì 15 dicembre 2008

Senza Volto

0 commenti
Inevitabili le mie scuse per la sempre maggior rarefazione dei post su questo blog, ma l'ultimo periodo e' stato sufficientemente delirante, sono temporaneamente senza connessione casalinga (causa assorbimento di Tin.it in Telecom e susseguente chiusura dei contratti ADSL), ed i prossimi mesi saranno ancora peggio. Numerose volte ho letto o sentito qualcosa che mi ha ispirato commenti che avrebbero dovuto essere riportati qui, ma il tempo di stendere un testo decoroso e' sempre quel che e'.
Veniamo al sodo, ovvero a qualche constatazione sulla disponibilita' di applicazioni grafiche open.
In capo a pochi mesi mi e' gia' arrivata da piu' fonti nella mia cerchia di conoscenze tecnologicamente consapevoli una stessa osservazione, che ho a mia volta per incidenza constatato lavorando su tutt'altro: il panorama opensource e' ricco, florido, traboccante di librerie e framework per fare qualunque cosa, ma... mancano applicativi utente che rendano accessibili tali funzionalita'.
Un esempio tratto dalla mia esperienza recente: un amico da poco con il pallino da radioamatore insiste affinche' implementi un certo strumentino (rigorosamente per Linux) per l'analisi dei segnali audio, qualcosa di abbastanza semplice per poter fare un ben specifico tipo di studio. Di per se' tale programma non dovrebbe far altro che prendere un file .wav, tirarne fuori una trasformata di Fourier, e trarre qualche conclusione in funzione della distanza di determinati picchi a determinate frequenze. Mi sono assai stupito di non trovare qualcosa di gia' pronto nell'apparentemente vasto insieme di software free dedicato appunto ai radioamatori: ci sono dozzine di applicativi che eseguono analisi assai spicce e sommarie, disegnano simpatici grafici di scarsa utilita' se non coreografica, ma ben poco che si avvicini a quanto sinora descritto. Eppure della Fast Fourier Trasformation, funzione matematica alla radice di un po' tutta la scienza dell'analisi audio, esistono numerose implementazioni (fra cui una in particolare e' stata ottimizzata e perfezionata in ogni modo possibile): perche' non vengono sfruttate in software completi ed usabili dall'utente finale?
Qualcuno potrebbe obiettare che il mio esempio tratti una ristretta nicchia di utenza e che l'interesse nell'impiegare risorse umane per realizzare quanto richiesto e' limitato, ma analoghe situazioni si trovano anche in settori di assai piu' ampio consumo: tanto per dirne un'altra, poco tempo addietro un ennesimo amico mi ha fatto notare l'assenza di un qualsivoglia banale programma che permetta di ricavare un video a partire da un insieme di immagini statiche (a mo' di slideshow, insomma), ed io stesso, che nel prossimo futuro dovro' confezionare una serie di filmati mettendo insieme appunto foto, testi e qualche breve spezzone, con ogni probabilita' mi trovero' nella condizione di dover implementare un programmello che faciliti l'aggregazione di slideshow multimediali con effetti decenti materializzati con Clutter e passi il tutto a gstreamer.
Come si giustifica un tale prodigarsi di strumenti software di basso livello, di librerie e frammenti di codice atti a ogni genere di trasformazione matematica (e, dunque, di qualsiasi altro genere), cui non si controbilancia l'esistenza di reali applicativi che portino cotanto popo' di scienza alla portata del mouse? Il quesito e' di difficile risoluzione: indubbiamente una delle motivazioni e' la lontananza che c'e' nella natura di chi ha realizzato suddetto codice di analisi (persone di non scarso intelletto, capaci di tradurre complessi algoritmi in istruzioni elementari per il computer ma di principi sin troppo pragmatici ed immediati) e di coloro che potrebbero trarne programmi ad uso desktop (di ampia sensibilita' estetica ma misurate conoscenze matematiche, e troppo spesso rivolti all'utenza di massa anziche' alle piccole esigenze mirate), che frammenta ulteriormente il gia' mai sufficientemente grande bacino di developers esistente, e poi guardando all'altra sponda (le piattaforme non "libere") vediamo come all'atto pratico certe radicate modalita' di sviluppo e distribuzione del software, fondate non sempre sul profitto economico ma certamente sulla chiusura del codice (dicesi: freeware), assorbano la maggior parte di programmatori al mondo, instancabili produttori di programmini e utilities ma ben lontani dalla consapevolezze necessaria per aderire ad una licenza free as in speech.
Purtroppo non esiste un metodo unico ed universale per riuscire ad invertire questa tendenza, se non lavorare per realizzare semplici utilities e stimolare altri a fare altrettanto affinche' la potenza del software free esistente non resti a disposizione di una infinitesimale parte delle persone.