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

martedì 23 dicembre 2008

Usabilita' e Computazione

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.

Nessun commento: