Intelligenza artificiale e incertezza nei progetti software

Autore: Valeriano Sandrucci 

L’illusione della certezza

Negli ultimi anni l’intelligenza artificiale è diventata uno dei temi tecnologici più discussi. Non è difficile capire perché: ha il potenziale di cambiare profondamente il modo in cui viviamo, lavoriamo e sviluppiamo software.

La diffusione dell’AI ha però generato anche un fenomeno ricorrente: l’illusione della certezza. Molte organizzazioni cercano risposte definitive su come adottarla, come se esistessero modelli già consolidati e universalmente applicabili.

Un episodio recente rende bene questa dinamica. Un dirigente ci chiedeva di trovare un esperto con cinque anni di esperienza su una tecnologia relativamente nuova. Il dettaglio curioso era che quella tecnologia era stata introdotta appena tre anni prima.

L’episodio può sembrare aneddotico, ma evidenzia un punto importante: la percezione di competenza e maturità tecnologica spesso non coincide con la realtà. Questo vale per singole tecnologie e per interi trend tecnologici, che tendono a generare aspettative più rapide della loro effettiva maturazione.

Una tecnologia destinata a restare 

L’intelligenza artificiale non è semplicemente un’altra moda tecnologica. È destinata a trasformare profondamente il software e molti altri settori.

Allo stesso tempo, anche tra gli esperti più preparati esiste ancora molta incertezza su come evolverà il suo utilizzo nei sistemi reali. Le previsioni sul lungo periodo restano inevitabilmente sfumate e le posizioni più sicure spesso riflettono una comprensione ancora parziale del fenomeno.

Per chi lavora nell’ingegneria del software questo significa accettare l’incertezza come una variabile strutturale. L’obiettivo non è eliminarla, ma riconoscerla e gestirla in modo esplicito.

Due modi diversi di usare l’AI

L’esperienza ci ha mostrato che l’intelligenza artificiale entra nei progetti software in due modi sostanzialmente diversi.

AI per supportare lo sviluppo software (AI4SE). In questo scenario l’AI agisce come acceleratore: uno strumento per scrivere codice, generare test o creare prototipi rapidi. L’impatto principale è organizzativo. L’AI rende possibile un ciclo di sviluppo più veloce, con iterazioni successive che aiutano a ridurre l’incertezza funzionale e tecnica senza compromettere la qualità. È l’equivalente di una leva tecnica che aumenta la capacità del team senza trasformare radicalmente gli obiettivi del sistema.

AI come elemento funzionale nelle applicazioni (SE4AI). In questo scenario l’AI diventa parte integrante del prodotto: sistemi di raccomandazione, riconoscimento di pattern complessi, analisi predittiva o interfacce intelligenti che prima erano impensabili. Qui l’incertezza cresce. I requisiti evolvono rapidamente, i confini di responsabilità si spostano e la governance tecnica diventa critica. Le decisioni iniziali possono avere impatti profondi sul futuro del sistema, richiedendo un approccio progressivo e incrementale coerente con i principi del Risk Aware Software Engineering.

Nuove sfide progettuali

Quando l’AI entra nella progettazione di un sistema emergono sfide specifiche che meritano di essere affrontate in modo esplicito.

Una delle prime riguarda la definizione dei requisiti. I sistemi basati su AI producono risultati che dipendono fortemente dai dati e dal contesto, per cui non sempre è possibile definire fin dall’inizio un elenco completo e stabile di funzionalità. La progettazione diventa quindi un processo di priorità e revisione continua.

Un secondo tema riguarda la governance tecnica. I modelli di AI non sono strumenti neutrali e la loro adozione introduce decisioni su come validare i risultati, come monitorare il comportamento del sistema e come gestire possibili distorsioni nei dati.

Un altro aspetto riguarda i confini di responsabilità. Quando un comportamento imprevisto deriva da un sistema probabilistico, diventa necessario chiarire come tracciare le decisioni, come garantire verificabilità e come distribuire le responsabilità operative.

Anche il testing richiede un adattamento. L’approccio tradizionale basato su specifiche deterministiche non è sempre sufficiente. Diventano importanti prototipi, validazioni progressive e metriche capaci di valutare risultati probabilistici. 

Un approccio progressivo

Affrontare queste sfide richiede pragmatismo, esperienza e un modello di ingegneria consapevole dell’incertezza. Non è sufficiente conoscere le tecnologie più recenti o i modelli LLM più avanzati: occorre strutturare il lavoro in fasi progressive, ridurre l’incertezza prima di impegnarsi pesantemente e costruire sistemi sostenibili piuttosto che inseguire risultati rapidi e apparenti.

Un esempio tipico riguarda lo sviluppo di un prototipo per un’applicazione interna. La prima fase può essere un proof of concept limitato a uno scenario controllato, utile per comprendere come l’algoritmo reagisce ai dati reali. Solo dopo questa fase diventa sensato trasformare il prototipo in un sistema più stabile, affrontando temi come governance, monitoraggio e responsabilità operativa.

Questo tipo di approccio consente di massimizzare il valore dell’investimento riducendo il rischio di costruire sistemi complessi prima di aver compreso i limiti della tecnologia.

Gestire l’incertezza

L’intelligenza artificiale introduce opportunità importanti, ma anche nuove forme di incertezza. Il rischio non può essere eliminato completamente, ma può essere affrontato in modo esplicito.

Accettare che alcune risposte emergeranno solo durante il progetto, ridurre progressivamente le ambiguità e calibrare gli investimenti sul livello di conoscenza disponibile sono elementi fondamentali per utilizzare l’AI in modo efficace.

Quando questo approccio viene adottato, l’intelligenza artificiale smette di essere una promessa astratta e diventa uno strumento reale per costruire sistemi utili e sostenibili.

Autore: Valeriano Sandrucci 

Torna all'indice