La prototipazione del software
Perché è fondamentale per sviluppare un servizio solido e consistente
Di Niccolò Maria Menozzi
Prima di sviluppare una qualunque applicazione, che sia web o mobile, è sempre bene dedicare il giusto tempo alla fase dei prototipi: quindi, a cosa serve e come è strutturata la prototipazione di un software? E perché è importante? Scopriamolo in 4 punti.
1. La prototipazione non è solo qualche interfaccia, è un processo
Realizzare il prototipo di un software, contrariamente all’opinione dei meno informati, non è solamente l’assemblaggio di una serie di interfacce destinate a valutare quanto sarà accattivante, una volta finita la produzione. È molto di più: la prototipazione – o progettazione, se vogliamo usare un termine di più ampio respiro – è il processo che definisce con quali dinamiche funzionerà il software e con quali accorgimenti saranno garantite agli utenti usabilità e utilità. È un aspetto cruciale per ottenere dei buoni risultati.
La produzione del software vero e proprio – quello scritto in codice e funzionante, per intenderci – è imprescindibile, ma resta la messa in atto di scelte precedenti. Il vero cuore del workflow di un progetto resta la fase preliminare di prototipazione: in quel frangente vengono prese tutte le decisioni più importanti che influenzeranno il lavoro dei programmatori.
Di solito, la produzione del software viene preceduta e articolata in queste 3 fasi principali:
- Analisi dei requisiti: il team di progetto raccoglie tutte le specifiche e i requisiti che il software dovrà soddisfare una volta operativo.
- Sketch strutturali: lo UI designer abbozza, spesso su carta, lo scheletro di base che definirà la disposizione e il funzionamento degli elementi delle interfacce.
- Mockup: lo UI designer traduce gli sketch in una serie di interfacce grafiche che prefigurano, con un elevato grado di accuratezza, come si presenterà il software agli occhi dell’utente.
Durante questo processo, il cliente può valutare le scelte assieme ai progettisti e maturare maggiore consapevolezza riguardo alle specifiche e ai criteri adottati per renderlo uno strumento efficace da offrire agli utenti finali.
«I prototipi sono inutili; ma la prototipazione è essenziale.»
Ben Nadel, cofondatore di InVisionApp Inc.
In un suo articolo, Ben Nadel sottolinea la natura imperfetta dei prototipi, soggetti a un’evoluzione progressiva e intrinseca nel processo.
Sempre secondo Nadel arriviamo all’ipotesi migliore con la sperimentazione, l’introspezione e – molto più importante – attraverso un profondo ragionamento sul prodotto e i requisiti dell’utente.
Insomma, il processo di prototipazione è più importante di ogni singolo step che lo costituisce e conduce i progettisti lungo un percorso di raffinamento del software, in cui gli sketch e i mockup, più che un traguardo, sono un mezzo pratico in divenire, utile per sviluppare soluzioni vincenti.
In questo senso, i clienti dovrebbero abbracciare la prototipazione come un momento di potenziamento del software che porterà grandi benefici al risultato finale, anziché accoglierla con scetticismo, come a volte accade, ritenendola una perdita di tempo.
2. I prototipi fanno risparmiare tempo
Uno dei grandi vantaggi dei mockup grafici è che possono essere modificati in relativa facilità. Certo, non tutte le richieste del cliente sono di rapida esecuzione; dipende dall’entità dell’intervento.
Al contrario, agire direttamente sul codice può comportare tempi più lunghi e meno immediatezza nel fornire al cliente le interfacce aggiornate.
Negli ultimi anni, con software come Sketch o Adobe XD (fra gli altri), la prototipazione web ha fatto passi da gigante, distanziandosi da strumenti di design datati e meno efficienti, come Photoshop o Dreamweaver di Adobe.
In particolare, la possibilità di creare grandi librerie di componenti personalizzabili, permette di assemblare agevolmente un’interfaccia grafica di prova, mentre servizi come Zeplin o InVision facilitano la condivisione dei materiali con il cliente.
Inoltre, con la supervisione dei programmatori, è possibile individuare subito le soluzioni che potrebbero rivelarsi di difficile implementazione, già durante la fase di analisi dei requisiti. Risolvere questi problemi prima ancora di andare in produzione significa risparmiare tempo e budget.
3. I prototipi fanno da planimetria per i programmatori
Quando un progetto entra nella fase di sviluppo, ovvero quando viene dato in mano ai programmatori per essere tradotto in codice vero e proprio, serve della documentazione alla quale fare riferimento.
Questa documentazione sono i mockup e l’eventuale prospetto che definisce i comportamenti animati delle interfacce.
Sviluppare un software senza fase di prototipazione equivale a costruire un edificio senza le planimetrie di un architetto: arrivano le gru, ecco le ruspe, i mattoni, il cemento, c’è anche l’elettricista e l’addetto all’impianto idraulico; non manca niente, ma adesso che si fa esattamente, ragazzi? Da dove si parte, che edificio bisogna mettere in piedi?
Esatto: è un casino. Serve sempre una traccia che consenta di passare alla produzione in modo razionale e ordinato, vale a dire prefigurando, pezzo per pezzo, ogni parte del software e le relazioni che devono sussistere fra di loro.
Il programmatore deve poter accedere autonomamente a una lunga serie di informazioni: i codici colore delle grafiche, gli stili dei font, le librerie di icone, la dimensione in pixel degli elementi, le distanze e i padding che li separano, i cambiamenti che sussistono fra interfacce per desktop e per dispositivi mobile, ecc.
Dopotutto, l’alternativa più rapida, efficiente ed economica a questo processo, benché complesso, quale dovrebbe essere?
Sedersi alla scrivania a fianco del programmatore, accendere il computer, e indicargli passo passo, in tempo reale, come si desiderano le interfacce e come farle?
Oppure annotare alla veloce, con carta e penna, la descrizione di come si dovrà comportare il software e consegnarla al programmatore? Sperando che quello che abbiamo scritto sia sufficientemente esaustivo e inequivocabile.
È abbastanza evidente che non può funzionare: sono tutti metodi altamente inefficienti e che lasciano spazio a troppe approssimazioni e incertezze.
Le informazioni che servono al programmatore per poter sviluppare il software devono sempre arrivare, in un modo o nell’altro. Questo passaggio di informazioni porta via del tempo e non c’è verso di evitarlo; l’unica cosa che si può fare per non incorrere in lungaggini o conseguenze indesiderate è procedere seguendo un iter ordinato e rodato, predisponendo tutto l’occorrente a beneficio della produzione.
4. Dopotutto, la prototipazione è un processo fluido
Quanto detto non deve indurre a pensare alla prototipazione come a un processo lineare e compartimentato in cui ogni step, una volta concluso, resta impermeabile a qualsiasi modifica fino alla fase di produzione.
Il team di progetto cerca sempre di rispettare il più possibile il workflow stabilito a monte, per lavorare in modo standard – quindi più efficiente – ma, per quanto questo possa velocizzare il lavoro, il contesto entro il quale si muove il team non è mai esattamente lo stesso.
Finché non è approvato in via definitiva e affidato alla produzione, il software resta aperto a molte modifiche e ripensamenti, che possono presentarsi in modo frammentario, senza ordine prestabilito. Talvolta i progettisti tornano sui propri passi, con la conseguenza che analisi dei requisiti, sketch e mockup vengono rivisti, generando un intreccio di operazioni più fluide, secondo un tracciato non lineare.
Dopotutto, questo fa parte della sfida di ogni nuovo progetto e può essere visto come uno dei motivi che spingono Nadel a parlare di prototipi imperfetti.
Le necessità organizzative del cliente, i vincoli che pone (in termini di budget, di tempo, ecc.) e la complessità del progetto possono obbligare il team ad adottare misure più flessibili che finiscono immancabilmente per modificare l’iter progettuale.
Giusto per fare due esempi, può dipendere da fattori imprevedibili come: un ripensamento del cliente, o una scelta di difficile implementazione a livello di codice, che si scopre solo qualche tempo dopo essere stata avallata.
Concludendo: per ogni soggetto coinvolto nella realizzazione di un progetto digitale è fondamentale comprendere che le premesse di un buon software nascono durante la fase di prototipazione. Nonostante le sue eventuali tortuosità.
Altresì, la programmazione è indispensabile per ottenere il servizio concretamente e per garantire delle buone performance, ma tutto il resto viene molto prima.
Se vuoi saperne di più sulla prototipazione, o se vuoi una consulenza, contattaci, noi della Dreamonkey siamo qui per questo.