Il giorno in cui il software va in produzione, inizia una fase diversa di costi. I costi di manutenzione software sono spesso sottovalutati: la maggior parte dei business plan prevede una voce "sviluppo" con un importo e una data di fine, come se dopo quella data i costi sparissero.
Si trasformano. E spesso, nel tempo, quello che spendi dopo il lancio supera quello che hai speso per costruire.
Se non lo sai prima di iniziare, ti ritrovi con un prodotto che funziona ma che non hai previsto di mantenere.
Perché il software non è mai davvero “finito”
Un edificio, una volta costruito, sta in piedi da solo. Il software no. Vive in un ecosistema che cambia continuamente, e se non cambia insieme a quell’ecosistema, inizia a degradarsi.
Aggiornamenti di sicurezza
Framework, linguaggi, sistemi operativi, database: tutto riceve aggiornamenti di sicurezza costanti. Ignorarli significa accumulare vulnerabilità nel tempo. Come ho scritto parlando di sicurezza nel backend, un sistema non aggiornato diventa progressivamente più esposto.
Dipendenze e librerie
Il tuo codice dipende da decine di librerie esterne. Alcune vengono aggiornate, altre deprecate, altre abbandonate. Quando una dipendenza cambia o smette di essere supportata, qualcuno deve intervenire. Ed è qui che emerge il costo nascosto delle dipendenze open source.
Infrastruttura
Certificati che scadono, database che crescono, costi cloud che cambiano, monitoraggio da mantenere attivo. L’infrastruttura non è statica e richiede attenzione continua.
Bug e comportamenti inattesi
I bug reali emergono con l’uso reale. Con utenti veri, volumi veri e casi d’uso che nessuno aveva previsto in fase di sviluppo.
Il numero che spesso sorprende: la maggior parte del costo è dopo
In molti studi sul ciclo di vita del software, si osserva che la parte più consistente del costo totale non è nello sviluppo iniziale ma negli anni successivi, tra manutenzione, aggiornamenti e adeguamenti.
Tradotto in pratica: un software che è costato 100.000 euro per essere sviluppato può richiedere, nei cinque anni successivi, un investimento simile o superiore solo per rimanere sicuro, compatibile e funzionante.
Solo per mantenere ciò che esiste, senza aggiungere nulla di nuovo.
Se nel business plan la voce “software” è considerata una spesa una tantum, quel piano è incompleto.
Il paragone con gli asset fisici
Quando compri un immobile, prevedi manutenzione, rifacimenti, adeguamenti. Con il software spesso questo non succede perché è invisibile: non vedi il degrado finché qualcosa non smette di funzionare.
La differenza è che un immobile si degrada lentamente. Un software può rompersi all’improvviso: un aggiornamento del browser, una vulnerabilità, un’API esterna che cambia comportamento.
Il costo di non mantenere
Ignorare la manutenzione non elimina il costo. Lo rimanda, moltiplicandolo.
Il debito tecnico cresce con il tempo. Dopo anni senza aggiornamenti, un upgrade diventa complesso e rischioso. A volte si arriva alla tentazione di riscrivere tutto da zero, che raramente è la scelta più economica.
Le vulnerabilità restano aperte. I problemi di compatibilità aumentano. E il giorno in cui qualcosa si rompe, l’intervento d’emergenza costa molto più di una manutenzione costante.
Come pianificare in modo realistico
Prevedi un budget annuo di manutenzione
Una regola pratica diffusa è considerare ogni anno un budget di manutenzione nell’ordine del 15–20% del costo iniziale di sviluppo. Non è una cifra esatta, ma un riferimento utile per evitare sorprese.
Distingui manutenzione da evoluzione
Bug fix, sicurezza, aggiornamenti e compatibilità sono manutenzione. Nuove funzionalità sono evoluzione. Sono due voci diverse e vanno pianificate separatamente.
Automatizza dove possibile
Test automatici, deploy automatici, monitoraggio. Ogni attività manuale ripetuta nel tempo è un costo che può essere ridotto. Anche l’uso dell’AI nello sviluppo può velocizzare molte attività di manutenzione ordinaria.
Scegli tecnologie con un ecosistema stabile
Framework maturi e con cicli di rilascio prevedibili tendono a costare meno nel tempo rispetto a tecnologie emergenti con futuro incerto.
Pianifica gli aggiornamenti importanti
Ogni piattaforma ha un ciclo di vita. Pianificare gli aggiornamenti con anticipo riduce drasticamente il rischio e il costo degli interventi urgenti.
Il cambio di mentalità
Il software funziona più come un servizio continuo che come un acquisto una tantum.
Puoi ottimizzare i costi con scelte architetturali corrette e buone pratiche, ma non puoi eliminarli. Ignorarli è il modo più rapido per trasformare un investimento in un problema.
Vale la pena chiedersi: stiamo spendendo abbastanza per proteggere l’investimento che abbiamo già fatto?
Simone Giusti
Consulente software strategico



