Qualche giorno fa, Lino Castrovilli su questo blog ha scritto: “Siamo nell’era dello User Centered Design”. Per chi, come me, ha avuto l’occasione di fare consulenza a centinaia di software company italiane, è facile rendersi conto che questa affermazione non è per niente scontata.

Perché è così difficile per tante software company progettare i sistemi attorno all’utente? Innanzitutto occorre rendersi conto che dietro questa piccola definizione c’è una vera e propria rivoluzione culturale. Per decine di anni la maggior parte dello sforzo di sviluppo è servito per creare sistemi aziendali di tipo gestionale. In questi casi la modalità di progettazione di questi sistemi parte da quali dati devono essere trattati, al massimo si arriva ad approfondire i processi in cui sono coinvolti. Il fattore umano è sempre stato assente da questi ragionamenti.

Ancora oggi, durante le attività di consulenza tese a modernizzare i processi di progettazione, la risposta standard a questi stimoli è: “tanto noi non facciamo app, queste cose riguardano solo le app, i sistemi gestionali funzionano come una volta e quindi noi non ne abbiamo bisogno”. Purtroppo questo non è vero: oggi gli utenti, ormai abituati a decine di app user centriche che utilizzano tutti i giorni, si aspettano di interagire con tutti i servizi informatici con la stessa semplicità ed immediatezza.

Quindi la questione è importante ed urgente: per tanti si tratta di cambiare testa per rimanere rilevanti. Il problema è: come si fa? Quale strada è possibile per chi ha progettato per anni seguendo altre modalità? E prima ancora, dal punto di vista di chi deve gestire i progetti: val la pena chiedere a chi progetta gestionali di maturare una certa attenzione alla UX o invece è più semplice rivolgersi a chi ha già questa competenza?

Nella mia esperienza ho verificato che l’apporto di un UX designer è indispensabile solo per alcuni tipi di applicazioni, in particolare quelle per clienti finali (B2C). Nel caso dei gestionali è invece possibile evolvere la propria capacità di progettazione in modalità User Centrica e ottenere risultati sufficienti anche solo da questo passaggio. E, in ogni caso, saremo già predisposti ad integrare il lavoro di progettista professionista, cosa per nulla facile quando non c’è un terreno culturale comune.

Quali sono quindi i passaggi che un progettista di sistemi gestionali può utilizzare per iniziare a mettere l’utente al centro del proprio lavoro? Qui vorrei raccontare che cosa ho visto funzionare nella nostra realtà aziendale, che si occupa di queste conversioni da diverso tempo.

La conversione avviene in due passaggi:

  • Imparare a comprendere l’utente.
  • Conoscere una serie di soluzioni UX standard da adottare.

Poter progettare una UX completamente personalizzata richiede una competenza specifica che spesso viene ritenuta – erroneamente – al di là delle possibilità di chi ha sempre operato in altro modo. L’esperienza sul campo ha invece confermato che affrontando questi due punti è possibile progettare applicazioni gestionali con UX accettabile per l’utente moderno: basta decidere di intraprendere questo percorso.

Se ti senti pronto a compiere il passo, la prossima settimana affronteremo il primo punto per imparare a comprendere l’utente. Continua a seguirci!

{ 0 comments }

Secondo un recente report a cura di IDC Tracker, la spesa globale destinata alle Smart Cities salirà a 135 miliardi di dollari entro il 2021. Tali investimenti, che vedranno come oggetto diversi servizi di Artificial Intelligence, offriranno la possibilità di diffondere, a livello globale, il concetto di città intelligenti basate sull’urbanizzazione sostenibile.

Ma quali sono le caratteristiche che dovrebbe avere una Smart City? A questo quesito ha risposto lo Smart Cities Council, un ente operante su scala mondiale che si occupa proprio di diffondere la cultura della smart technology attraverso la messa in atto di partnership strategiche e di valore.

Le quattro caratteristiche delle Smart Cities

L’essenza di una città che per sua concezione si può allocare all’interno del concetto di Smart, vede tre caratteristiche principali:

  • Livability: assenza totale di inquinamento e traffico con conseguente miglioramento delle condizioni di vita della popolazione, risultato possibile mediante l’adozione di un’infrastruttura digitale che renderebbe i servizi delle città accessibili in qualsiasi momento e da qualsiasi luogo;
  • Workability: città autonome dal punto di vista dell’energia, della connettività e dei servizi essenziali, con il fine di competere a livello globale per posti di lavoro di alta qualità;
  • Sustainability: rispetto per le generazioni future attraverso l’erogazione di servizi a basso o nullo impatto ambientale.

A queste peculiarità è possibile aggiungere anche un quarto valore: quello della Learnability. Una Smart City, per essere dichiarata tale, dovrebbe garantire un accesso equo alle diverse opportunità di apprendimento qualificato, il tutto attraverso un ecosistema coordinato che accompagna il singolo fino all’età adulta.

Il raggiungimento di questo obiettivo è possibile soltanto analizzando un’alta mole di dati in real-time. Le piattaforme IoT, spesso realizzate dagli stessi player che si occupano di installare infrastrutture smart all’interno delle città, abilitano la raccolta dei dati. Tuttavia, questi devono essere analizzati correttamente per essere trasformati in informazioni e l’uomo non può soddisfare questa necessità, a causa della scarsa tempestività per suo stesso limite naturale.

Per questo motivo, sempre più di frequente, ci si affida alla machine learning ed ai sistemi Artificial Intelligence: per poter utilizzare in tempo reale quelli che sono i dati raccolti ed attivarsi nell’immediato per migliorare l’esperienza dei cittadini che vivono all’interno del centro urbano.

Perché le Smart Cities sono in crescita?

La storia ci insegna che, da sempre, le persone abbandonano i territori agricoli per trasferirsi nelle città con il fine di accedere ad una miglior qualità della vita. Più della metà della popolazione mondiale attualmente vive in aree urbane e, entro la metà del secolo, questo dato sarà destinato a crescere fino ai due terzi. La rapida urbanizzazione, in continua crescita, ha portato verso il diffondersi di problematiche quali inquinamento, traffico e criminalità. Da queste considerazioni, in sostanza dati di fatto, nasce la domanda di Smart Cities.

Dall’altro lato, vi è già una buona offerta in risposta a tale richiesta.

I dispositivi economici a banda larga hanno collegato più della metà della popolazione mondiale e l’avvento dei social network ha perfino modificato la cosiddetta teoria dei sei gradi di separazione. Se a questo aggiungiamo la diffusione massiva di sensori, telecamere e dispositivi di condivisione dei dati, ci troviamo al punto in cui siamo oggi: nel pieno della digital transformation che sta letteralmente rivoluzionando il mondo a cui eravamo abituati fino a qualche anno fa.

Siamo nell’epoca dell’Internet of Things: lavoriamo, impariamo e giochiamo su piattaforme intelligenti ed in costante miglioramento. Ogni giorno assistiamo ad un passo in più al servizio del cittadino e, di fatto, esistono già gli strumenti per rendere le nostre città più smart.

L’AI per le Smart Cities: come l’intelligenza artificiale può aiutare le nostre città

Allo stato attuale, già in alcuni Paesi del mondo viene utilizzata l’AI per rendere più agevoli molteplici servizi dedicati ai cittadini. Per esempio, nel settore sanitario viene utilizzata a fini diagnostici e per migliorare il sistema pubblico; nei trasporti viene sfruttata per il controllo del traffico in tempo reale; nel settore della pubblica sicurezza sono già numerosi i dispositivi che supportano il riconoscimento facciale e, infine, nella produzione è utile nel product lifecycle management.

Grazie all’evoluzione dell’AI, in futuro sarà possibile fare molto di più per le nostre città, avvicinandole ancor di più al concetto di Smart Cities. Per esempio, abbinando l’utilizzo di sensori adeguati all’intelligenza artificiale, sarà possibile un controllo intelligente della temperatura interna degli stabili per migliorare l’erogazione dei servizi di condizionamento e riscaldamento, con il fine di ridurre l’emissione di sostanze inquinanti e le spese per i cittadini. Un notevole vantaggio per i singoli ma anche per l’intera comunità.

Ancora, sensori adeguati utilizzati in sinergia con la geolocalizzazione, possono portare ad individuare in maniera semplice e veloce i parcheggi liberi in zona, con un risparmio di tempo notevole ed una miglior esperienza di utilizzo. Ancora, l’AI può essere utilizzata per il monitoraggio di edifici ed infrastrutture, con il fine di identificare pattern potenzialmente pericolosi e da lanciare allarmi tempestivi in caso di problemi.

Questi sono solo alcuni esempi per i quali l’AI può e potrà essere utilizzata per i cittadini, ma non sono certo le uniche modalità.

Intanto, è di recente diffusione la notizia che vede come protagonista la Cina. Il governo cinese ha da poco stretto un accordo con la Fondazione MXC per implementare lo SmartTo IoT Standard MXC, MXProtocol, su Shangai. Inoltre, lo scorso anno è stata annunciata una partnership con lo studio di sviluppo Ethereum ConsenSys per la diffusione di iniziative blockchain all’interno della Xiongan New Area.

Come ha detto una volta Alan Kay: “Il miglior modo per predire il futuro è inventarlo” e in questo, ad oggi, stiamo facendo enormi passi avanti.

{ 0 comments }

Parlando con clienti e prospect sempre più spesso mi viene segnalata l’esigenza di poter gestire agende, calendari o strutture analoghe (vedi planner di prenotazione camere di albergo o simili) in modalità grafica in applicazioni realizzate con Instant Developer Foundation.

Grazie a Google possiamo trovare facilmente componenti javascript già pronti, anche open source, che possono aiutarci a rispondere a questa esigenza. Fortunatamente Instant Developer Foundation ci consente di poterli utilizzare integrandoli all’interno delle sue librerie ed in molti lo hanno già fatto. Chi non sa come fare o pensa di aver bisogno di aiuto per farlo può sempre contare sui nostri servizi di assistenza.
È possibile integrare il calendario di Google con le chiamate alle web API relative: in questo caso Instant Developer vi aiuta con il nostro componente IDCloud che implementa già questa integrazione.
A volte, però, non è detto che questa sia la scelta giusta: infatti, spesso, c’è anche l’esigenza di dotarli di funzionalità specifiche legate ai requisiti dell’applicazione e di integrarli fortemente con il contesto di riferimento. Per farlo dovremmo personalizzare questi componenti e non limitarci ad utilizzarli: cosa che di frequente potrebbe risultare estremamente costosa, se non impossibile.

Anche in questo caso Instant Developer Foundation può venire in aiuto realizzando ciò che ci serve mediante le interfacce dinamiche dei book.

Noi per primi, in un’applicazione interna, abbiamo preferito creare un nostro calendario settimanale per la gestione delle attività di tutti, dal quale poter attivare anche funzioni fortemente integrate con il nostro gestionale.

Ecco perché ho pensato che potesse rappresentare un buon esempio, un buon punto di partenza per velocizzare ulteriormente la creazione dei calendari che potreste dover realizzare per rispondere al meglio alle esigenze dei vostri clienti.

Il calendario settimanale è stato realizzato utilizzando un book in anteprima html con quattro report al suo interno. Abbiamo una pagina mastro che divide l’area in quattro sezioni:

  • Griglia Giorni, contiene le intestazioni delle colonne dei giorni della settimana.
  • Corpo Pagina, contiene le attività di una o più persone sul calendario.
  • Orari, contiene la colonna orari della giornata.
  • Etichetta foto, contiene la foto del proprietario del calendario.

Un report Orari imposta gli orari della giornata in verticale a sinistra, un secondo report Orari Giorni imposta le colonne dei giorni della settimana, il report Calendario è il contenitore delle intestazioni dei giorni in alto e delle attività delle persone nei giorni della settimana. Sulle attività è possibile il drag & drop per spostarle, e cliccandoci sopra si possono modificare nel dettaglio. Con i Visual Style dei Report abbiamo impostato bordi e colori di sfondo in maniera che siano dinamici e si adattino alle dimensioni del browser. Per la scelta dei colori delle attività è presente un’apposita tabella che utilizza il componente gratuito Color Picker per la scelta degli stessi in modalità grafica.

I riferimenti alla documentazione dei book li trovate sul manuale di Instant Developer al capitolo 6 Report e Libri (doc.instantdeveloper.com), un vademecum di come funziona il calendario si trova invece nel file leggimi.txt all’interno della directory custom del progetto.

Per riuscire a realizzare il calendario, noi di Instant Developer abbiamo impiegato circa 28 ore di sviluppo. Io ne ho investite altre 8 per trasformarlo in un esempio a se stante, in modo da renderlo più flessibile e generico. Decisamente un buon risultato, no?

Se poi qualcuno avesse voglia di realizzare un vero e proprio componente, me lo faccia sapere: potremmo metterlo a disposizione di tutti. La sfida è aperta: chi vuole cimentarsi?
Se invece ti serve una mano per modificarlo, il servizio di assistenza Instant Developer è sempre a tua disposizione.

{ 3 comments }

Portali, siti web, applicazioni mobile. Ma anche totem multimediali, touch screen e, perché no, software da ufficio. Da desktop o in cloud, è ormai un dato acquisito la pervasività degli strumenti digitali nella vita delle persone.

Lo dimostrano anche le tantissime attività che oggi possono essere svolte tramite smartphone, ad esempio il saldo di un bonifico o la prenotazione di una prestazione sanitaria. È cresciuta la platea delle persone che accedono ai servizi digitali con buona pace di quanti, con la scusa del digital divide, ritenevano che app e piattaforme web fossero precluse a prescindere ai non nativi digitali.

Siamo nell’era dello User Centered Design. Le tecnologie sono così presenti nella nostra quotidianità, e la concorrenza è talmente numerosa, che sarebbe folle progettare servizi e interfacce web senza basarsi su aspettative e bisogni delle persone. Salviamo in qualche backup tecnicismi, informatichese e user journey contorte per fronteggiare problemi semplici. Lasciamo spazio a 3 concetti chiave – usabilità, user experience (UX) e user interface (UI) – che, seppur con sfumature diverse, concorrono nel definire le caratteristiche che una qualsiasi applicazione informatica deve possedere per rispondere alla perfezione alle esigenze delle persone.

 

Usabilità: cos’è e come si misura

Semplice, con poco sforzo. Don’t make me think, recita il titolo di un famoso libro di Steve Krug. Una frase ad effetto che descrive cosa si auspicano le persone prima di approcciarsi ad una qualunque applicazione: non farmi pensare.

Chi progetta applicazioni deve immaginare oggetti che non richiedono particolari sforzi cognitivi per il loro utilizzo. Più riesce ad avvicinare le aspettative alla percezione reale delle persone, più quanto avrà progettato sarà usabile, ovvero:

  • efficace, in grado di far raggiungere alle persone gli obiettivi prefissati;
  • efficiente, cioè permettere alle persone di ottenere quanto desiderato in maniera semplice;
  • soddisfacente, quando l’esperienza delle persone con l’interfaccia e le funzionalità è positiva e priva di ansia.

L’usabilità è quindi economia delle risorse. Per le persone significa apprendere e completare un’attività in tempi proporzionati alla sua complessità, in modo accurato e con soddisfazione, senza frustrazioni. Per gli sviluppatori il successo di un’applicazione deriva dal suo grado di usabilità. Per le aziende – sia produttrici che utilizzatrici di soluzioni software – un prodotto è usabile quando incide positivamente sulla produttività, in termini di tempo e energia risparmiati. Il destino di un’applicazione poco usabile è la sua inevitabile sostituzione.

 

User Experience: le aspettative e le percezioni delle persone

Utile e memorabile. La User Experience è relazione fra persone, applicazione e produttori. L’usabilità è solo una parte dell’esperienza utente. Oltre agli aspetti pragmatici – un sistema deve fare bene delle cose – la User Experience considera gli aspetti estetici e psicologici – un sistema bello deve far bene delle cose – affinché le persone possano vivere esperienze piacevoli, pertinenti e complete rispetto alle loro esigenze.

Alla progettazione della User Experience concorrono 4 discipline:

Experience Strategy

In una visione olistica, produttore e prodotto concorrono insieme nel far vivere alle persone un’esperienza. L’Experience Strategy è l’insieme di attività che un’azienda esercita per rendere il rapporto con le persone unico, positivo ed eccezionale.

Interaction Design

L’Interaction Design esamina il modo in cui le persone interagiscono con il prodotto o servizio: pulsanti, transizioni di pagina e animazioni. Obiettivo degli Interaction Designer è creare strumenti che suggeriscano alle persone come completare attività e azioni fondamentali in maniera intuitiva.

User Research

La ricerca di dati – qualitativi e quantiativi – supporta la progettazione della UX Experience. La svincola dalle sensazioni “a pelle” di progettisti e committenti: sondaggi, colloqui e test di usabilità con i clienti – già acquisiti o potenziali – servono a creare user personas, comprendere le esigenze e gli obiettivi reali delle persone.

Information Architecture

L’Architettura dell’Informazione organizza i contenuti in chiave accessibile e strutturata per supportare le persone nell’uso di un prodotto o servizio. Per determinare l’architettura dell’informazione si considerano le relazioni – tra diversi insiemi di contenuti – e il linguaggio – coerente e convincente.

Lo studio della User Experience è un processo. Chi progetta la User Experience identifica gli obiettivi, le emozioni, le difficoltà e i comportamenti delle persone. Considera cosa queste persone stanno cercando di realizzare quando usano un particolare prodotto e il percorso che intraprenderanno per farlo. Sviluppa quindi dei prototipi – wireframe – e li valida tramite test. Se tutti i requisiti sono soddisfatti – il prodotto è utilizzabile? Il prodotto o il servizio risolvono un problema esistente? Il prodotto o il servizio è desiderabile? Crea un’esperienza positiva che l’utente sarebbe felice di ripetere? – il prototipo diventa la base per lo sviluppo del prodotto finale.

 

User interface: realizzare interfacce utente per le persone

Il primo sguardo. Le interfacce utente sono la pelle viva delle applicazioni informatiche. Sono il livello percepito e interagito dalle persone, la restituzione visiva di quanto elaborato dalla business logic ed estrapolato dall’accesso ai dati.

In un’interfaccia ben congeniata confluiscono elementi di usabilità ed evidenze emerse dall’analisi della User Experience. Un modello in cui la gradevolezza non è un mero canone estetico ma funzionale agli obiettivi delle persone e alle soluzioni ai problemi che essi cercano nell’uso dell’applicazione.

Compito della UI è dunque mediare fra persone e sistemi. Dalle prime interfacce testuali a linee di comando all’arrivo di icone e finestre, l’avvicinamento progressivo al linguaggio naturale ha permesso a milioni di persone di usare computer e applicativi senza le diffidenze e gli imbarazzi iniziali.

L’avvento dell’Internet of Things ha reso comuni diversi dispositivi – come Amazon Echo o Google Home – che fanno dell’assenza di interfaccia il loro punto di forza. Tecnologie con interfacce invisibili, a cui le persone possono rivolgersi direttamente, a voce, per soddisfare le proprie necessità. Il limite proprio delle interfacce classiche – suggerisce Don Norman, designer, autore del saggio La caffettiera del Masochista – è il loro intromettersi. Le persone non vogliono comprendere l’interfaccia ma concentrarsi sul lavoro da svolgere.

Ecco quindi che alle classiche GUI – Graphic User Interface – si affiancano interfacce in grado di adattarsi in maniera invisibile alle persone. I dati, ad esempio, permettono alle applicazioni di anticipare le richieste delle persone in base all’esperienza d’uso e quindi ridurre il numero di passaggi necessari per completare una determinata azione. Sempre i dati possono agevolare la personalizzazione delle interfacce e presentare alle persone qualcosa di familiare, scolpito su di loro. In altre parole, le interfacce devono diventare empatiche: accompagnare le azioni nel modo più discreto possibile e favorire la relazione fra persone e applicazioni.

{ 0 comments }

Chatbot: a che punto siamo

06.05.2019

Guidare le persone in operazioni complesse, rispondere alle richieste, interagire in modo naturale. Quando le risposte dei chatbot riusciranno a mimetizzarsi al 100% fra i messaggi degli umani, la loro rivoluzione potrà dirsi definitivamente compiuta. Oggi sono molteplici le realtà che ricorrono ai chatbot per automatizzare le conversazioni digitali con le persone. Compagnie aeree, banche […]

Read the full article →

Digital Transformation: a che punto siamo in Italia?

30.04.2019

La Digital Transformation nel nostro Paese, una rivoluzione che sta (lentamente) cambiando le aziende Tempo di bilanci per la Digital Transformation in Italia. A che punto siamo in questo 2019? In realtà, le cose nel nostro Paese procedono più a rilento rispetto ad altri Stati che stanno vivendo gli effetti della rivoluzione digitale, ma questo […]

Read the full article →

Instant Developer 19.0

04.04.2019

Con il rilascio di Instant Developer Foundation 19.0 è giunto il momento di ricominciare a parlare dell’ecosistema che circonda noi programmatori e sfondare nuovamente i muri della nostra sala riunioni alla ricerca di un confronto pubblico. L’attenzione di Pro Gamma è sempre di rivolta ai bisogni di ha adottato il nostro IDE, per permettervi di […]

Read the full article →

Pronti? È arrivato Instant Developer Foundation 18.5

03.10.2018

Come molti già sanno il nostro percorso di aggiornamento di Instant Developer Foundation attualmente prevede due major release, la prima in primavera e la seconda in autunno, oltre alle varie minor release che si rendono necessarie tra un rilascio e l’altro per correggere e adeguare il funzionamento delle vostre applicazioni. Questo per permettervi di adeguarvi […]

Read the full article →

Rilasciato Instant Developer Tools 1.0

21.08.2018

È un piacere annunciare il rilascio della prima versione di Instant Developer Tools, la suite di strumenti legata al mondo Cloud frutto dell’attività di ricerca e sviluppo di Pro Gamma tra il 2017 ed il primo semestre del 2018. Che cosa portano di nuovo questi tools? Tanto. Vediamoli punto per punto. Il Cloud Connector è […]

Read the full article →

Volete un feedback?

12.07.2018

La nuova applicazione è pronta, testata, pubblicata e corretta. Ma non basta fermarsi qui per avere un’applicazione di successo. Il fattore più importante da tenere in considerazione è il parere degli utenti: sapere cosa pensa chi usa la vostra app è un elemento fondamentale per poterla evolvere nella direzione giusta e aumentare così la soddisfazione (e […]

Read the full article →