Questa è la traduzione dell'articolo How To Build A Better Web Application For Your Business pubblicato originariamente su Smashing Magazine l'11 Agosto 2011. La traduzione (di Mariano Calandra) viene qui presentata con il consenso dell'editore e dell'autore.
Siete stufi di sentir parlare della nuova applicazione Web targata Silicon Valley, fatta con polvere di fata e finanziata da dei magici folletti? Se è così, allora questo articolo fa al caso vostro. Probabilmente, a molti di noi difficilmente capiterà di lavorare ad un'applicazione Web finanziata con alti capitali di rischio e per la quale gli obiettivi di business sono un aspetto secondario. Per noi, lo sviluppo di un'applicazione Web significa soddisfare una determinata necessità aziendale.
Sia che svolgiamo la nostra attività di sviluppatori come freelance, sia che lavoriamo con un'agenzia avremo a che fare con vincoli commerciali rigorosi e con tempo e budget limitati. O almeno... questa è la mia situazione. Ma come si può immaginare è stancante, dunque, individuare il giusto approccio è cruciale. Sulla base di esperienze lavorative passate, ho identificato tre segreti che se applicati potrebbero rendere questo lavoro molto più agevole:
- Focalizzatevi sugli utenti, non sulle funzionalità
- Non cercate di risolvere tutto
- Ponete le giuste domande nella fase iniziale.
Focalizzatevi sugli utenti, non sulle funzionalità
Quando vi viene chiesto di creare un'applicazione Web, è esattamente questo il lavoro da fare: creare un'applicazione web. Non vi è stato chiesto di risolvere un problema d'affari o di far quadrare il bilancio aziendale. Dunque, vi dedicherete a realizzare una serie di funzionalità in modo da sviluppare l'applicazione che vi è stata commissionata.
Sfortunatamente, quest'ultimo è un approccio pericoloso. Focalizzando, infatti, l'attenzione sull'applicazione, l'enfasi è tutta sulle tecnologie e le funzionalità, non sulle esigenze degli utenti o sulle problematiche di fondo.
Fate un passo indietro
Un buon team di sviluppo, all'inizio del progetto, fa un passo indietro e guarda alle questioni di fondo che hanno portato alla necessità di realizzare un'applicazione.
- Trascorrete del tempo con coloro che useranno l'applicativo. Osservare come gli utenti eseguono l'attività che si sta tentando di informatizzare è più illuminante di qualsiasi documento di specifica.
- Comunicate con chi giorno dopo giorno interagirà con l'applicazione: è molto più utile che seguire ciecamente le direttive di chi ha commissionato il progetto.
Rendete lo user testing parte integrante del processo di sviluppo
Lo User testing è la chiave per conoscere l'utente. Mirate a testare l'applicazione almeno una volta al mese durante l'intero ciclo di sviluppo. Questo non porterà via molto tempo, né risulterà essere costoso. Ogni sessione richiede solo tre o quattro utenti e potrà essere completata con facilità in una mattinata. L'intero team di sviluppo può prendere parte a queste sessioni ed essere coinvolto in brevi attività di debriefing che possono svolgersi anche durante la pausa pranzo.
Punto cardine, dunque, di una applicazione web è l'utente e le sue necessità, la tecnologia esiste solo affinché queste possano essere soddisfatte.
Il che ci porta al prossimo segreto...
Non cercate di risolvere tutto
Se non si riesce a rimanere concentrati sulle esigenze degli utenti e gli obiettivi di business, le cose possono sfuggire di mano. Questo tipo di progetti tollerano davvero poco i cambiamenti incontrollati.
In genere, non appena le persone coinvolte nel progetto, vedranno un'anteprima dell'applicazione, inizieranno a suggerire idee per nuove funzionalità. Il problema è che da ogni nuova caratteristica deriva una maggiore complessità. Questo può, in ultima analisi, compromettere l'efficacia finale della stessa. Quando sviluppate un'applicazione web, spiegate ai clienti la necessità di partire con un'applicazione semplice.
- Prevedere come gli utenti risponderanno all'applicazione può essere un compito arduo e potremmo arrivare a sprecare tempo e denaro nello sviluppo di funzionalità che nessuno utilizzerà.
Tenete d'occhio gli indicatori di performance
Una volta che la vostra applicazione minimale è stata lanciata, parte la fase di monitoraggio degli indicatori chiave di performance (KPI, Key Performance Indicators). Come suggerisce il nome, i KPI aiuteranno il team a giudicare il successo dell'applicazione che si sta sviluppando.
Non esistono indicatori validi per tutti i progetti. Buona norma, dunque, sarà stabilire all'inizio del processo di sviluppo, quali saranno gli indicatori di successo della vostra applicazione. In combinazione con il feedback fornito degli utenti, questo monitoraggio fornisce un quadro più chiaro, indicandovi su che binari deve proseguire lo sviluppo. Ma attenzione, al feedback degli utenti.
Non reagite immediatamente ai feedback degli utenti
Gli utenti spesso reagiscono negativamente al cambiamento. Imparare un nuovo sistema richiede tempo, anche se in fin dei conti sarà più facile da utilizzare. Non importa. Gli utenti inevitabilmente si lamenteranno e daranno una pletora di suggerimenti.
Non reagite troppo tempestivamente a questi suggerimenti! Daniel Burka, una volta mi confessò che quando lavorava per Digg, era pratica comune lasciare trascorrere almeno due settimane prima di prendere provvedimenti e considerare il feedback degli utenti. Lasciate il tempo agli utenti di regolare l'applicazione prima di apportare correzioni.
Si pensi a quanti gruppi di protesta nascono su Facebook ogni qual volta nel social network cambia anche la cosa più banale. Questo, ovviamente, non è un invito ad ignorare le opinioni degli utenti. In realtà, si dovrebbe, per quanto consentito, raccogliere attentamente quanti più feedback possibili.
A volte la tecnologia non è la risposta
È interessante notare come molti dei suggerimenti degli stakeholder (persone interessate nella riuscita del progetto, che non sono direttamente utenti dell'applicazione) riguardino problematiche di gestione, come la presentazione, il flusso di lavoro e il monitoraggio.
Sebbene questi suggerimenti siano a volte validi, spesso, la loro soluzione ideale è di tipo manageriale, piuttosto che tecnica. Ad esempio, dei clienti mi chiesero che il loro sistema di gestione dei contenuti, non avrebbe dovuto pubblicare dei documenti senza che questi venissero prima sottoposti al nulla osta di altri funzionari dell'organizzazione. Naturalmente, questo è del tutto lecito e si implementa senza troppa difficoltà, infatti è una funzionalità già presente nella quasi totalità dei CMS presenti in commercio.
In casi come questo, però, una buona comunicazione all'interno del team di lavoro permetterebbe di risolvere la questione senza il bisogno di implementare una nuova funzionalità. Basterebbe informare coloro che pubblicano contenuti di non farlo finché un responsabile non li abbia prima controllati.
Se l'aggiunta di nuove caratteristiche si traduce in un aumento della complessità, allora non dovreste risolvere ogni problematica con una nuova funzionalità. Se davvero necessario, quest'ultima potrà essere aggiunta in un secondo momento. Come ovvio, per far ciò è necessario che l'applicazione sia facilmente espandibile.
Realizzate applicazioni espandibili
Poiché il vostro insieme iniziale di funzionalità è destinato a evolvere in base al feedback degli utenti e degli obiettivi di business, costruire una applicazione difficilmente espandibile non è una scelta saggia, soprattutto se di proposito abbiamo lanciato la stessa con un insieme minimale di funzionalità.
Realizzare un'applicazione flessibile non è ovviamente facile. La regola aurea sarebbe integrare, sin dall'inizio, un sistema che potremmo definire volgarmente "a plug-in", così facendo l'introduzione di nuove funzionalità risulterà molto più immediata. Il trucco è riconoscere nella fase di start-up del progetto se c'è bisogno di flessibilità. Il che introduce il punto successivo.
Ponete le giuste domande nella fase iniziale
Non c'è cosa più sconveniente e fastidiosa di dover gestire problematiche inaspettate nel bel mezzo dello sviluppo. Cercate, dunque, di avere piena consapevolezza di tutti i possibili scenari sin dall'inizio. Certo, non potete predire il futuro. Lo stratagemma, in queste situazioni, è conoscere quali sono le domande appropriate da fare prima ancora di iniziare a sviluppare. Troppo spesso, infatti, l'attenzione è posta su domande sbagliate, quali:
- Questa applicazione dovrà ottenere l'approvazione dall'interno?
- Come risponderà Tizio se adotteremo questo approccio?
- Questo approccio è conforme alle nostre linee guida?
- Come sarà gestito internamente questo o quel contenuto?
Concentrandovi su questioni di politica interna all'azienda, probabilmente il vostro progetto verrà approvato in tempo brevissimi, ma, altrettanto probabilmente, condurrà l'applicazione a risultati molto meno soddisfacenti. Per quanto mi riguarda, sono quattro le questioni che, quando ignorate, hanno causato problemi nel processo di sviluppo:
- Qual è l'ambiente di hosting?
Quando si ha a che fare con applicazioni Web complesse, la conoscenza dell'ambiente di hosting è un fattore importante. Ignorando la configurazione dell'hosting, non lo si potrà replicare esattamente sui server di sviluppo, questo incrementa il rischio di incompatibilità future. - Come sarà gestita l'autenticazione utente?
La maggior parte delle applicazioni Web richiede agli utenti di identificarsi. Rendersi conto troppo tardi che questa operazione andava fatta in un modo particolare può causare fastidiosi grattacapi. Molte aziende hanno un sistema centrale di autenticazione, probabilmente la vostra applicazione dovrà utilizzarlo per il controllo delle credenziali. - Come effettuare il backup dei dati?
Le applicazioni Web spesso operano con una grande mole di dati, alcuni dei quali riservati. Avere un piano di backup potrebbe essere una questione fondamentale e potenzialmente complessa. Studiate sin dall'inizio, una politica di backup efficiente, eviterete che in futuro ciò possa esser fonte di problemi. - Esistono dati legacy?
Spesso le nuove applicazioni dovranno prendere il posto di sistemi preesistenti dotati già di uninsieme di dati considerevole. Cercate di capire esattamente la natura di questi dati per poter redarre un piano di migrazione efficiente.
Imparate dai vostri stessi errori
Ogni applicazione Web presenta sfide uniche. Nel corso del tempo, si impara dai propri errori e si sviluppa un proprio metodo. Ricordate sempre di tener conto delle esigenze degli utenti, di mantenere il tutto quanto più semplice possibile e di porre le giuste domande quando serve. Questi accorgimenti saranno preziosi per il futuro.
Tuttavia, vi è anche l'occasione per imparare l'uno dall'altro. Purtroppo, molti sviluppatori spendono la vita in isolamento all'interno di grandi organizzazioni. Articoli come questo dovrebbero stimolare la discussione e incoraggiare a condividere le vostre esperienze - siano esse positive o negative - di sviluppatori di applicazioni web.