Sei interessato ai nostri servizi di consulenza?

1 Clicca nella sezione contatti
2 Compila il form
3 Ti ricontattiamo

Se hai bisogno urgente del nostro intervento puoi contattarci al numero 370 148 9430

RENOR & Partners

I nostri orari
Lun-Ven 9:00AM - 18:PM

“Ci vuole l’AI!” – Quando basterebbe una if()

by Simone Renzi / Giugno 9, 2025
Post Image

This post is also available in: English (Inglese)

L’epoca dell’AI washing

L’intelligenza artificiale è, senza ombra di dubbio, una delle più importanti evoluzioni tecnologiche e “scoperte” del nostro tempo. Uso il termine “scoperte” tra virgolette perché in realtà, la teoria alla base dell’AI risale addirittura al 1956, anno della celebre conferenza di Dartmouth che ne sancì la nascita ufficiale.
Eppure, solo negli ultimi anni, l’AI ha fatto irruzione nell’universo consumer e manageriale, diventando una parola magica buona per ogni contesto: marketing, prodotti, slide per gli investitori, report aziendali, ecc.

Il punto è che, se ieri la moda era l’iPhone, oggi la moda è l’intelligenza artificiale. Tutti vogliono inserirla ovunque, anche dove non c’è nessuna necessità di integrarla. A volte infatti, non è solamente inutile: è meno efficiente, più fragile e più costosa da mantenere rispetto ad un classico algoritmo a stati finiti. Ma poco importa: l’importante è dire che c’è l’AI.

Per spiegare meglio cosa intendo, voglio partire da un esempio lampante e assolutamente reale.

AI? No, basta un while: il caso del PDF intelligente

Poco tempo fa per una società di somministrazione che abbiamo come cliente, mi è stato chiesto di sviluppare qualcosa che li aiutasse ad inviare tutte le CU. Parlando di migliaia di dipendenti potete immaginare il tempo che avrebbe tolto ai poveri operatori amministrativi, spacchettare manualmente un PDF contenente tutte le CU di tutti i dipendenti, ed inviarle una ad una manualmente.

Immaginiamo quindi di avere un PDF testuale, contenente migliaia di Certificazioni Uniche, di ogni dipendente. Migliaia di documenti multipli di utenti consecutivi. Ogni utente ha la sua CU che può avere 8, 10, 12 pagine e noi vogliamo dividerlo in tanti PDF quanti sono i dipendenti presenti.

Uno sviluppatore cosa farebbe?
Per prima cosa aprirebbe il file da dividere, lo analizzerebbe, e si accorgerebbe che la prima pagina di ogni CU di ogni utente contiene in intestazione il codice fiscale. Bene: c’è un pattern!
Cosa pensa allora?

“Fantastico! Scrivo uno script con una while che mi cicla ogni pagina del documento partendo dalla prima fino all’ultima, all’interno del ciclo inserisco una regex che mi cerchi un codice fiscale, lo valido per essere certo che quello che mi ha pescato sia effettivamente un codice fiscale e se la validazione va a buon fine, segno quella pagina come inizio di una nuova CU del dipendente. Proseguendo nell’elaborazione delle altre pagine, appena ne trovo un altro, salvo tutto il blocco precedente in un nuovo PDF e lo invio in allegato ad una mail estraendo dal DB i dati del dipendente utilizzando come parametro di ricerca proprio il codice fiscale che ho nella mia bella variabile e proseguo così fino alla fine”.

Soluzione elegante. Lineare. Leggibile. Affidabile e soprattutto molto veloce!
Nessuna AI. Solo logica strutturata, programmazione deterministica e analisi del pattern.

Eppure volevano l’AI: “Ma non possiamo usare l’AI per individuare automaticamente dove inizia ogni documento?”.

Certo che puoi utilizzare l’AI, ma utilizzare l’AI per capire da quale pagina a quale pagina inizi e finisca una CU è come dotarsi di un cannone laser per uccidere una formica. Inoltre l’AI ha tempi molto lunghi di inferenza, rispetto all’algoritmo deterministico che processa enormi moli di dati in pochi secondi.

Ma i costi?

Certamente! Ci sono anche i costi!
Processare un documento con migliaia di CU dei dipendenti e decine di migliaia di pagine oltre a richiedere tempi lunghi ha costi che possono essere tutt’altro che indifferenti. A seconda del modello si potrebbero spendere anche più di 500 euro per processare decine di migliaia di pagine PDF.

Determinismo vs. AI: due approcci a confronto

Una volta chiarito che nel nostro esempio del PDF la soluzione più semplice ed efficace è deterministica, vale la pena riflettere più in generale su quando conviene usare un approccio logico e prevedibile e quando invece può aver senso introdurre un layer di intelligenza artificiale.

L’approccio deterministico

Logico, trasparente, tracciabile

Un algoritmo deterministico è composto da regole esplicite e comportamenti prevedibili. Per ogni input noto, l’output è garantito e replicabile. Non impara, ma fa esattamente ciò che gli dici di fare.

Nel caso del nostro PDF la struttura è chiara perché abbiamo il pattern fisso del codice fiscale, la variabilità è praticamente nulla e l’obiettivo è definibile logicamente. In questi casi l’approccio deterministico ha enormi vantaggi: ha molta efficienza computazionale e può quindi girare con successo anche su dispositivi con risorse minime. È affidabile, facilmente testabile ed è possibile effettuare debug immediato. L’intero flusso è comprensibile anche da un team non esperto di Machine Learning. Ed è per questo che andare oltre questa soluzione perché vogliamo l’AI è oltre che ingiustificato anche controproducente.

L’approccio AI-driven

Flessibile ma scarsamente prevedibile, costoso e non sempre giustificabile.

Quando si parla di AI s’intendono spesso sistemi capaci di apprendere da esempi (machine learning), generalizzare pattern anche in contesti non perfettamente definiti, gestire ambiguità e rumore nei dati. Tutto questo è utile se e solo se i dati non seguono pattern rigidi o non noti a priori, il contesto è caotico, ad esempio OCR su foto scattate da smartphone che hanno una variabilità di qualità imprevedibile oppure per ultimo la logica esplicita fallisce perché i casi limite sono infiniti o comunque imprevedibili.

Nel nostro esempio del PDF, non ci sono ambiguità, non c’è rumore: usare una rete neurale per individuare il codice fiscale è uno spreco, sia tecnica che economico.

Tutto ciò però non impedisce a certe aziende, guidate più dalla moda che dall’ingegneria, di proporre soluzioni tipo: “addestriamo un modello NLP per riconoscere le intestazioni oppure usiamo GPT per segmentare i documenti, o ancora usiamo un classificatore supervisionato per capire se un documento è l’inizio o no… tutto ciò per… Fare quello che un preg_match() risolve in una riga di codice.

Ritorniamo coi piedi per terra e ricordiamoci che l’AI per quando impressionante è solo uno strumento. Non esiste o comunque, almeno per uno sviluppatore, non dovrebbe esistere una guerra tra approccio deterministico e AI. Sono entrambi strumenti… Ma la logica ingegneristica ci insegna a scegliere lo strumento più semplice, efficace e giustificato per il problema che deve risolvere. L’AI ha senso dove il determinismo non arriva: visione artificiale su immagini sfocate, riconoscimento del parlato, predizioni basate su serie storiche complesse, analisi semantica profonda. Ma laddove esiste una regola, una struttura prevedibile, una logica valida, l’intelligenza artificiale non è solo inutile: è rumore, complicazione e costo.

L’intelligenza non è artificiale, è progettuale

L’intelligenza artificiale è uno strumento straordinario ma come tutti gli strumenti potenti, va maneggiata con giudizio. Non è una bacchetta magica da agitare sopra ogni problema, né una chiave da infilare nei pitch per far colpo sugli investitori.

C’è una differenza sostanziale tra fare innovazione e fare finta innovazione. Oggi, troppe soluzioni vengono pensate partendo dallo strumento e non dal problema.
Il risultato sono sistemi sovra-ingegnerizzati, costosi, fragili, spesso anche poco reattivi e in definitiva inutili.

Scusate tanto, ma se entrate in un’azienda per risolvergli dei problemi ed efficientarla tecnologicamente la prima cosa che fate qual’è? Vedere dove si può applicare l’Intelligenza Artificiale? Oppure comprendere da dove nasce il dato, come si muove, studiare come lavora l’azienda, identificare i processi macchinosi che possono essere automatizzati e poi proporre delle soluzioni in base ai problemi riscontrati?

Direi ad occhi chiusi la seconda!

Nel mondo reale, l’ingegneria buona è quella che risolve il problema nel modo più semplice, elegante e sostenibile possibile. Anche se non fa notizia. Anche se non c’è scritto “AI-powered”.

Il futuro dell’informatica non sarà dominato da chi infila modelli neurali ovunque, ma da chi sa scegliere quando serve davvero. Da chi ha il coraggio di dire: “No, qui basta una if()”.

Forse proprio da questa sobrietà tecnica potrà rinascere un’idea nuova di competenza: una che non si misura in buzzwords, ma in chiarezza progettuale, efficienza e responsabilità.

Scegli un'area

CONTATTACI

Ti risponderemo entro 24 ore

TORNA SU