Negli ultimi mesi, guardando le problematiche tecniche che emergono da chi gestisce siti e applicativi, ho notato una cosa: non è tanto il numero dei problemi a essere cambiato, quanto la loro natura. Le questioni che vediamo oggi sono più complesse di quelle di due anni fa, e nascono spesso proprio da come si scrive software adesso. È lì che ho iniziato a farmi la domanda che ha dato origine a questo articolo.
Cosa significa, di base, mantenere un software
Prima di parlare di AI, vale la pena fare un passo indietro. Quando si dice “manutenzione del software” si intende in realtà un insieme di attività molto diverse tra loro, che nell’ingegneria del software si distinguono tradizionalmente in quattro categorie.
La manutenzione correttiva è quella più intuitiva: si interviene quando qualcosa si rompe, un bug che emerge in produzione, una funzionalità che smette di funzionare dopo un aggiornamento di sistema. È reattiva per natura, e in genere è quella più visibile al cliente perché coincide con un disservizio.
La manutenzione adattiva riguarda invece i cambiamenti dell’ambiente esterno al software stesso: una nuova versione di PHP che il sito deve supportare, un plugin che cambia le proprie API, un sistema operativo mobile che aggiorna le regole di pubblicazione sugli store. Il codice non è “rotto”, ma il mondo intorno cambia e il software deve adattarsi per continuare a funzionare.
La manutenzione perfettiva è quella meno urgente e più facile da rimandare: migliorare le performance, ottimizzare una query lenta, rendere più leggibile un modulo che con il tempo è diventato complesso da gestire. Non risolve un problema immediato, ma evita che i problemi immediati diventino più frequenti.
Infine c’è la manutenzione preventiva, forse la più sottovalutata: aggiornare librerie prima che una vulnerabilità nota venga sfruttata, monitorare log e metriche per intercettare un’anomalia prima che diventi un incidente, tenere sotto controllo certificati, backup, scadenze. È il lavoro che, fatto bene, non produce mai una notizia, perché il problema semplicemente non arriva mai a manifestarsi.
Per un sito web, questo si traduce concretamente in aggiornamenti di CMS e plugin, patch di sicurezza, controlli sulle performance, backup verificati e non solo programmati, monitoraggio degli errori e della disponibilità del servizio. È un lavoro continuo, spesso invisibile, che si nota soprattutto quando manca.
Il paradosso dell’AI
È in questo quadro che entra l’intelligenza artificiale, e qui la questione si fa interessante: l’AI non rende la manutenzione più facile e basta, e non la rende più difficile e basta. Fa entrambe le cose insieme, e la sfida vera è capire dove si sposta il lavoro, non se ce n’è di più o di meno.
Sul fronte del controllo, i vantaggi sono reali e misurabili. I sistemi di monitoraggio oggi analizzano il traffico in tempo reale, riconoscono pattern d’attacco noti come DDoS o tentativi di SQL injection, e reagiscono prima che diventino un incidente. Quello che un tempo richiedeva un controllo manuale periodico, oggi succede in continuo, senza che nessuno debba ricordarsi di farlo. Buona parte della manutenzione preventiva descritta sopra, in altre parole, si sta automatizzando davvero: non solo la segnalazione dell’anomalia, ma in alcuni casi anche la prima risposta.
Il rovescio della medaglia è meno raccontato, ma i numeri sono netti. Secondo il report Veracode sulla sicurezza del codice generato da AI, circa il 45% di quel codice contiene falle di sicurezza. Un benchmark di Armis Labs su diciotto modelli ha trovato un tasso di fallimento del 100% nella generazione di codice sicuro nei contesti critici testati. E il Vibe Security Radar del Georgia Tech ha censito 78 vulnerabilità collegate a strumenti di generazione del codice, 43 delle quali classificate come critiche o alte, in un solo trimestre.
Non è un problema di AI cattiva. È un problema di velocità: si scrive più codice, più in fretta, e la revisione umana non sempre tiene il passo. Quella riga che sembra “già fatta” perché l’ha scritta un modello linguistico è spesso proprio quella che andrebbe letta con più attenzione, non con meno. Nello stesso tempo, la barriera d’ingresso si abbassa anche per chi attacca: gli strumenti generativi rendono più semplice trovare e sfruttare falle note su CMS e plugin non aggiornati, prima ancora che chi gestisce il sito se ne accorga. La manutenzione adattiva e quella correttiva, quindi, non spariscono: cambiano forma, e in certi casi diventano più frequenti proprio a causa del ritmo con cui oggi si produce codice.
Cosa cambia davvero
Fare manutenzione oggi non significa più solo “tenere tutto aggiornato”. Significa capire cosa si può lasciare all’automazione, con fiducia, e cosa invece ha ancora bisogno di un occhio umano che si fermi a chiedersi perché quella parte di codice è lì, e chi l’ha scritta davvero. È una distinzione che vale per chi sviluppa e per chi commissiona: chi paga un software spesso non ha modo di sapere quanto di quello che riceve sia stato scritto da una persona e quanto da un modello, e quanto di quello sia stato poi effettivamente controllato.
Più ci penso, più mi convinco che il rischio più grande non sia l’AI che sbaglia. È la fiducia che ci mette a dormire mentre continua a scrivere codice.
Luca Finocchiaro

