Un software è per sempre?
Garantirsi uno strumento sempre efficiente e funzionante
Di Niccolò Maria Menozzi
Il cliente commissiona un software: si raccolgono le specifiche, si progetta il prototipo, viene approvato e si passa allo sviluppo. Al termine del processo il software è pronto all’azione, ma chiudere il progetto significa davvero garantirsi un prodotto finito e funzionante “per sempre”?
Sappiamo che gli pneumatici dell’auto si usurano e vanno cambiati, che una volta preso un gatto dobbiamo anche dargli da mangiare e che la moka senza caffè non serve a niente.
Spesso acquistiamo dei beni che prevedono un “extra” per far sì che il nostro investimento continui a garantirci i suoi benefici.
Pur avendo un costo accessorio, la cosa non ci tocca particolarmente perché sappiamo che fa parte del “pacchetto”. Purtroppo questi costi comprendono anche l’albero di Natale distrutto dal gatto.
Anche commissionare la progettazione di un software significa provvedere a uno strumento che non nasce per essere lasciato a se stesso.
Il fatto che questo tipo di bene sia impalpabile non deve trarre in inganno: l’assenza di qualcosa di fisico non implica immunità a problemi e “usura”.
La convinzione che, una volta chiuso il progetto, il software manterrà tutte le sue qualità a prescindere dal tempo dedicato alla manutenzione e al suo miglioramento è molto pericolosa.
La manutenzione del software è fondamentale
Un software pronto e operativo fa il suo lavoro e lo fa bene, ma allo stesso tempo non è uno strumento cristallizzato in un perenne stato di efficienza, privo di problemi.
Questo non a causa di una cattiva progettazione, ma perché la tecnologia è in perenne evoluzione.
Il mondo digitale cambia molto rapidamente: sistemi operativi e browsers che vengono aggiornati periodicamente, nuovi frameworks che aprono altre possibilità, nuovi standard di sicurezza e hardware sempre più performanti… Pensa solo a quanto rapidamente muta il mondo degli smartphone di anno in anno!
Garantire performance del software inalterate nel tempo significa stare al passo con l’innovazione ed evitare che cada vittima di una inesorabile obsolescenza. Per farlo è fondamentale assicurarsi che il codice che è stato scritto mantenga la sua compatibilità con l’ambiente nel quale dovrà funzionare (es. i browsers o i sistemi operativi).
Addirittura, una manutenzione continuativa può portare un miglioramento delle performance, laddove quella più saltuaria si limita solo a mantenere stabile il software.
Se qualche parte si “rompe” a causa di questi cambiamenti tecnologici, bisogna aggiustarla dedicando un po’ di tempo alle riparazioni.
In altri casi può accadere che l’aggiunta di nuove funzionalità generi alcuni bug di incompatibilità; per fortuna, se integrati preventivamente nel codice, si può ricorrere a test automatici che rilevano questi malfunzionamenti, consentendo di effettuare la manutenzione periodica in modo più efficiente e con meno dispendio di tempo.
I software evolvono con le necessità
Bisogna anche considerare che le esigenze che portano alla progettazione di un software possono evolvere col passare del tempo: le aziende crescono e cambiano, emergono nuove necessità e bisogna far fronte a problemi che prima non esistevano.
Il bisogno di aggiungere strumenti di supporto al software può nascere in modo spontaneo. Quando lo sviluppo volge al termine e il nuovo strumento viene ufficialmente inserito in azienda, inizia un periodo molto importante in cui viene messo alla prova il lavoro svolto.
I destinatari del software lo utilizzano e possono rendersi conto autonomamente di quello che necessita ancora di qualche perfezionamento (a tal proposito forse ti interessa sapere perché la user interface è una questione di aspetti funzionali e non di gusto personale).
«questa funzionalità è poco intuitiva», «questa procedura porta via troppo tempo», «sarebbe utile poter fare anche questa cosa» ecc… I feedback iniziano ad arrivare e il progetto entra in una fase nuova di raffinamento.
Ammesso che il software non sia nato con uno scopo estremamente specifico che lo rende ermetico a grandi cambiamenti, è probabile che nascano desideri di integrare nuove funzionalità. È il caso, ad esempio, di web app o app mobile aziendali con funzione gestionale, che tendono a raccogliere molti strumenti di monitoraggio ed elaborazione che crescono in numero col passare del tempo. Ogni nuovo “tassello” lo arricchisce e ne espande il campo d’azione, migliorando ulteriormente altri processi e mansioni.
Naturalmente ogni correzione e ogni nuova integrazione presuppone un po’ di lavoro per validare la fattibilità, per sincerarsi che la funzionalità sia davvero utile e per far sì che non si creino conflitti di natura tecnica o di UX (se vuoi puoi leggere la nostra panoramica sulla user experience) con quanto è già stato sviluppato in precedenza.
Il software è un bene da curare
Avrai intuito che c’è sempre un po’ di fermento attorno a un software, fin dal momento in cui diventa effettivamente operativo.
È un bene del quale avere cura: finché il software viene mantenuto in buono stato ci consente di beneficiare dei suoi vantaggi restando un investimento utile. Trascurandolo invece, diventa presto obsoleto oltre che una spesa dai pochi benefici.
Per fortuna, con questa consapevolezza puoi delegare le incombenze di manutenzione a un team di sviluppo professionale senza doverti preoccupare degli aspetti tecnici più complessi. Sarà il team a occuparsi degli aggiornamenti e della gestione delle nuove funzionalità delle quali potresti avere bisogno.
Preoccupati delle condizioni di salute del tuo software ed eviterai brutte sorprese quando sarà già troppo tardi.
È lento? Mostra spesso messaggi di errore o presenta malfunzionamenti indesiderati? Chi lo usa si lamenta di non trovare i comandi o le informazioni che cerca? Sono tutti segnali che indicano che è già ora di intervenire.
Se ti occorre una consulenza prima di intraprendere un nuovo investimento per rinnovare il tuo software o crearlo da zero, contattaci e parliamone.