') //-->
Adottiamo un approccio allo sviluppo agile e incentrato sull'utente finale. Coinvolgere quest'ultimo durante la progettazione e lo sviluppo, e misurare continuamente i risultati, assicura il raggiungimento degli obiettivi.
Le persone visitano i siti e usano le applicazioni web perchè hanno necessità di fare o trovare qualcosa. Ciò nonostante, molte aziende si preoccupano al più di rendere belli i loro prodotti. Purtroppo più del 70% dei progetti web fallisce, dato che questi non incontrano il favore di chi dovrebbe usarli. (fonte: Adaptive Path).
Una buona esperienza utente aiuta le persone a trovarsi a proprio agio, a raggiungere i propri obiettivi. In queste condizioni, sono contente di usare i servizi, facendone ricorso di più e più spesso. Aiuteranno anche l'azienda nel marketing, "spargendo la voce", in modo sempre più rapido, grazie ai social network.
Una buona esperienza utente porta inoltre un notevole vantaggio competitivo. Diversi clienti vengono acquisiti e persi ogni giorno, attraverso una buona o cattiva esperienza online. Inoltre un'applicazione efficiente sull'intranet aziendale permette di lavorare più rapidamente, e consente di risparmiare sui costi di esercizio quotidiani.
Per assicurarci di offrire davvero un'ottima esperienza utente, adottiamo un approccio incentrato sull'utente e una metodologia di sviluppo agile. Feedback costante e frequenti test con gli utenti vengono utilizzati per validare le scelte iniziali e verificare l' effettivo gradimento. Sviluppiamo sistemi per le persone con le persone.
“ Molti commettono l'errore di pensare che design è come qualcosa appare. Quello non è design. Non è solamente come appare e come sembra. Design è come funziona. ”
— Steve Jobs
“L'uso di metodi agili si traduce in un aumento di efficienza, produttività, qualità, velocità di sviluppo e soddisfazione dell'utente finale che va dal 10% al 100%.”
— David F. Rico
Prima di cominciare a lavorare, consideriamo sempre il contesto. Per i progetti in cui è previsto un lavoro significativo a livello d'interfaccia, individuiamo i destinatari del sistema e le loro esigenze. Puntiamo a trovare il punto d'incontro tra queste e gli obiettivi dei nostri clienti. Per fare ciò utilizziamo strumenti come le persona e gli scenari.
Quando gli obiettivi sono chiari, la fase progettuale può partire. Utilizziamo una combinazione di use case, user story e sitepath diagram per elicitare i requisiti software e dare a questi una priorità. Poniamo quindi le basi per l'architettura software del progetto, scegliendo le basi di dati più opportune, i protocolli più adatti e gli altri moduli hardware e software.
Consideriamo i requisiti a più alta priorità e ci concentriamo su di essi. Quando le funzionalità sviluppate sono state validate negli ambienti di test e staging, ne facciamo il deployment (automatizzato). Tecniche come i test unitari, l'analisi statica del codice sorgente e la continuous integration sono utilizzate per il controllo di qualità.
Quando le funzionalità sviluppate sono state pubblicate, verifichiamo che davvero soddisfino le esigenze e le aspettative degli utenti. Attraverso test con le persone e analisi delle statistiche di utilizzo, validiamo le nostre ipotesi e individuiamo le funzionalità con più potenziale, dove avrà più senso dedicare maggiore attenzione durante le successive iterazioni.
Già nel 1991 Casper Jones, un ignegnere software che lavorava per IBM disse: "Se Las Vegas ti sembra troppo tranquilla, un progetto sofware potrebbe essere ciò che fa per te. Le possibilità che un progetto importante venga abbandonato sono del 50% e le probabilità che questo finisca nei tempi prestabiliti rasentano lo 0%."
I modelli di sviluppo classici non funzionano sul web. Una lunga storia di fallimenti ha dimostrato che è impossibile pianificare tutto dal principio. Gli utenti sono costantemente influenzati da nuove tecnologie e modalità di fruizione. Piuttosto che tentare di predire il futuro con scommesse azzardate, noi siamo sempre pronti a considerare mutate esigenze e circostanze, e ad adattarci di conseguenza.