case history

Test driven development e AI: come migliorare la qualità del codice



Indirizzo copiato

L’integrazione dell’intelligenza artificiale nella programmazione quotidiana sta modificando l’efficacia del test driven development. Come superare il calo di qualità del software adottando i Customer Tests e nuovi mini-linguaggi basati sui dati strutturati

Pubblicato il 5 giu 2026



test_driven_development_zerouno
Matteo Vaccari, Technical Principal di Thoughtworks Italia
AI Questions Icon
Chiedi all'AI
Riassumi questo articolo
Approfondisci con altre fonti

Matteo Vaccari, Technical Principal di Thoughtworks Italia, ha offerto in occasione di Platmosphere 2026 una panoramica dettagliata sulle trasformazioni metodologiche imposte dall’adozione degli assistenti di intelligenza artificiale nella scrittura del codice.

Nel corso del suo intervento, Vaccari ha analizzato l’impatto di questi strumenti sulle pratiche ingegneristiche quotidiane, evidenziando come la proliferazione di codice generato automaticamente stia scardinando i flussi di lavoro tradizionali, a partire dal consolidato test driven development.

L’analisi muove da dati empirici e riscontri sul campo per delineare una strategia di adattamento architetturale e metodologico volta a preservare l’affidabilità dei sistemi in produzione.

La crisi della qualità del software nell’era degli assistenti di codice

I primi mesi del 2026 sono stati contrassegnati dalla pubblicazione di diversi rapporti di settore che evidenziano un fenomeno inatteso: un netto e generalizzato calo della qualità del software e delle istanze applicative rilasciate in produzione. Questo scenario contrasta apertamente con le promesse iniziali legate all’automazione generativa, originariamente concepita per inaugurare una nuova stagione di produttività in cui i sistemi automatizzati avrebbero dovuto farsi carico delle mansioni puramente esecutive.

La realtà operativa si sta dimostrando differente, rivelando che l’estesa autonomia concessa all’intelligenza artificiale non garantisce che i requisiti funzionali vengano rispettati fedelmente in ogni singolo dettaglio.

Il tramonto del ciclo classico di sviluppo

La ragione principale di questa flessione qualitativa risiede nel fatto che le regole metodologiche consolidate nel tempo non appaiono più applicabili senza variazioni.

La tecnica classica del test driven development si è sempre basata su una sequenza rigorosa e incrementale. Il programmatore definisce inizialmente un elenco di casi d’uso, ne seleziona uno singolo, scrive il relativo test verificando che fallisca, implementa la soluzione minima per portarlo in uno stato positivo, si accerta che il risultato sia corretto per le giuste ragioni e, infine, procede al refactoring prima di passare al caso successivo.

Questo flusso si scontra con la natura intrinseca dei modelli generativi, i quali tendono ad operare su scale differenti. Come osservato direttamente da Vaccari sulla base della propria esperienza di programmazione con l’AI, iniziata circa un anno e mezzo fa, «L’intelligenza artificiale ama scrivere i test tutti insieme, non uno alla volta».

Il problema dello spreco di token e la fiducia perduta

Sebbene sia teoricamente possibile, attraverso uno sforzo continuo e una guida esperta, costringere l’algoritmo a ricalcare il pattern atomico tradizionale, tale operazione comporta un dispendio eccessivo di energie e un consumo elevato di token, sollevando seri dubbi sulla reale sostenibilità economica e operativa della pratica.

La conseguenza diretta di questa frizione metodologica è una progressiva erosione della fiducia da parte dei team di sviluppo nei confronti delle proprie suite di test.

Nel corso di una serie di interviste condotte da Vaccari presso un cliente caratterizzato da un utilizzo estremamente avanzato dell’intelligenza artificiale in ogni fase dello sviluppo, i programmatori hanno ammesso apertamente di non potersi più fidare ciecamente delle verifiche automatizzate.

Vaccari ha sintetizzato la dinamica tecnica spiegando che «quando si delega la scrittura dei test all’intelligenza artificiale, alla fine i test iniziano a cambiare insieme al codice, e allora siamo ancora protetti dai test? Non lo sappiamo». Di conseguenza, la mera copertura del codice non rappresenta più uno scudo efficace contro le regressioni funzionali.

I limiti strutturali delle suite di test generate dalle intelligenze artificiali

Quando un’intelligenza artificiale riceve il compito di generare unit test per una determinata base di codice, la sua tendenza naturale è quella di produrre una quantità massiva di verifiche parcellizzate. Questo approccio quantitativo genera una mole di codice estremamente estesa, difficile da scorrere e ripetitiva, che finisce per appesantire la manutenzione del software anziché agevolarla.

La trappola del mocking e l’illusione della copertura

Il difetto più rilevante di questa modalità di generazione risiede nel focus della verifica, che si sposta dal valore di business alla pura struttura tecnica del codice. Per illustrare questa criticità, Vaccari ha proposto l’esempio pratico di una piccola applicazione di commercio elettronico. L’obiettivo fondamentale dello sviluppatore, in questo scenario, consiste nell’accertarsi che al momento dell’invio di un ordine venga attivata una notifica di avviso qualora l’inventario di un articolo scenda al di sotto di una determinata soglia critica.

L’intelligenza artificiale, se lasciata agire senza vincoli specifici, tende a risolvere il problema isolando i componenti attraverso il mocking – una tecnica utilizzata nel testing automatizzato che consiste nel creare oggetti o dati fittizi che simulano il comportamento di componenti reali complessi come database, server o API – e limitandosi a verificare che il metodo deputato al controllo dell’inventario venga invocato per ogni elemento presente nel carrello.
In questo modo, il test si limita ad accertare l’interazione meccanica tra due metodi, omettendo completamente di verificare la correttezza della regola di business sottostante.

Poiché tali test risultano strettamente accoppiati ai dettagli implementativi, ogni successiva modifica alla struttura interna del codice provocherà il fallimento della suite, impedendo di fatto qualsiasi attività di refactoring sicuro e aumentando drasticamente il costo di gestione del software.

I Customer Tests come nuovo paradigma operativo

Per superare l’impasse derivante dall’accoppiamento strutturale, la proposta tecnica emersa dall’intervento prevede uno spostamento strategico dell’attenzione dal test driven development atomico verso i Customer Tests. Non si tratta di un concetto inedito, bensì di una riscoperta di pratiche storiche radicate nell’Extreme Programming – una metodologia di sviluppo Agile il cui obiettivo è migliorare la qualità del software e la reattività ai cambiamenti nei requisiti, portando all’estremo le migliori pratiche di ingegneria del software come il lavoro in coppia e i test continui – che in passato non avevano ricevuto la medesima attenzione mediatica riservata agli unit test tradizionali.

Una filosofia ereditata dall’Extreme Programming

I Customer Tests prendono questo nome in quanto sono strutturati espressamente dal punto di vista dell’utente finale o del cliente del software. La loro finalità principale è convalidare le preoccupazioni di natura commerciale e di business, tralasciando gli aspetti puramente tecnologici o implementativi. Spostando il baricentro della suite di test verso questo livello, i criteri di accettazione e gli esempi concreti forniti dagli stakeholder aziendali si trasformano direttamente nel motore della verifica automatica.

Per risultare efficaci in un modello di sviluppo assistito da intelligenza artificiale, queste verifiche devono possedere requisiti precisi: devono essere in grado di predire con accuratezza il successo dell’applicazione una volta rilasciata in produzione, devono garantire una velocità di esecuzione elevata, devono supportare attivamente le attività di refactoring senza rompersi a fronte di modifiche strutturali e devono mantenere un basso costo di proprietà nel lungo periodo.

Progettare mini-linguaggi e tabelle di dati

La traduzione operativa dei Customer Tests nell’era dell’intelligenza artificiale si concretizza attraverso la separazione netta tra la definizione dei casi di test e il codice necessario alla loro esecuzione. L’approccio suggerito consiste nel co-inventare, insieme all’assistente virtuale, un mini-linguaggio specifico di dominio, o Domain-Specific Language, espresso tramite file di dati strutturati, come ad esempio il formato YAML (Ain’t Markup Language).

Dai test come codice ai test come dati strutturati

Vaccari ha esemplificato questo metodo mostrando la semplificazione di una funzionalità elementare di circa venti righe di codice legata alla risposta di una URL. Se una richiesta all’indirizzo preposto deve restituire una stringa standard, e l’aggiunta di un parametro con un nome deve personalizzare il messaggio, l’intera logica può essere mappata all’interno di un file YAML leggibile, che isola esclusivamente gli input e gli output attesi.

Il programmatore umano mantiene il compito di definire le regole e le evoluzioni di questo mini-linguaggio, mentre l’intelligenza artificiale viene impiegata per svolgere il lavoro più ripetitivo, ovvero la scrittura del test runner, l’interprete software personalizzato che legge il file di dati e lo esegue a scatola chiusa contro l’applicazione.

Questo modello trasforma i test in dati puri anziché in codice. La scelta offre un vantaggio ispettivo immediato: qualsiasi modifica non autorizzata o accidentale ai file di dati durante i commit attira subito l’attenzione del team, facilitando il monitoraggio rispetto a quanto avverrebbe all’interno di una complessa suite di codice tradizionale.

Esempi applicativi e radici storiche dell’approccio tabellare

Dal punto di vista storico, l’utilizzo di strutture tabellari per la validazione del software vanta una lunga tradizione. Nella libreria standard del linguaggio Go, ad esempio, la quasi totalità dei test viene storicamente strutturata in forma tabellare per mappare input e output in modo chiaro e standardizzato.

Esistono, inoltre, precedenti illustri risalenti ai primi anni Duemila, come il framework FIT (Framework for Integrated Test), basato sull’esecuzione diretta di fogli di calcolo forniti dai clienti, e la metodologia della Specification by Example.

L’efficacia pratica di questa evoluzione metodologica è supportata da diversi progetti reali descritti da Vaccari. In un recente progetto architetturale, l’intero ecosistema di API è stato verificato tramite un linguaggio YAML personalizzato in grado di specificare la disponibilità dei servizi in base ai ruoli utente, validando ad esempio che l’accesso fosse consentito al profilo di un acquirente e negato ad altri.

Il medesimo approccio è stato applicato con successo alla validazione del front-end, stampando lo schermo in un formato testuale semplificato per verificare lo stato iniziale dei dati e la successiva correttezza dell’ordinamento a seguito di un’interazione utente.

Un ulteriore riscontro dell’utilità dei mini-linguaggi è emerso dallo sviluppo di un gioco da tavolo basato su mappe esagonali in cui l’intelligenza artificiale mostrava evidenti difficoltà nel comprendere le coordinate geometriche, commettendo errori continui e causando sensibili perdite di tempo. L’introduzione di una sintassi astratta basata su simboli testuali per definire unità e boschi ha permesso di superare i limiti dell’algoritmo, consentendo di asserire le regole del gioco in modo deterministico.

Scelte architetturali contro la fragilità dei sistemi

Lo spostamento verso i Customer Tests richiede un’attenta riflessione sui livelli dell’architettura software in cui posizionare le verifiche, al fine di evitare errori comuni nella gestione della piramide dei test.

Superare l’effetto della “nave in bottiglia

L’errore tipico consiste nel tentare di verificare l’intero comportamento del sistema agendo esclusivamente dai confini della sua interfaccia utente. Questo approccio obbliga gli sviluppatori a configurare una lunga catena di componenti intermedi solo per riuscire a impostare lo stato del componente specifico che si intende esaminare. Vaccari paragona questa situazione alla complessa costruzione di una nave in bottiglia, dove l’operatore è costretto a manipolare elementi distanti attraverso l’uso di bastoncini, rendendo l’intera suite di test fragile, lenta e costosa.

La soluzione consiste nell’applicare la tecnica dei test tabellari a livello di servizio, posizionandosi subito al di sotto del livello delle API e immediatamente davanti al modello di dominio.
Tornando al caso dell’applicazione e-commerce, lo spostamento della verifica a livello di servizio consente di esprimere esattamente la logica di business desiderata senza ricorrere al mocking distruttivo del codice interno, preservando l’approccio a scatola chiusa che concede all’intelligenza artificiale i necessari gradi di libertà nell’implementazione fisica della soluzione.

L’introduzione dei Digital Twin per le dipendenze esterne

Un ulteriore ostacolo all’indipendenza dei test è rappresentato dalle dipendenze verso sistemi ed API esterne, come i processori di pagamento o i servizi di messaggistica. Anziché procedere al mocking puntuale di ogni singola chiamata per ogni nuovo test, una strategia di scala prevede la progettazione di simulatori completi dell’ambiente esterno, noti anche come Digital Twin.

Questo approccio, adottato storicamente da realtà tecnologiche come Stripe attraverso la simulazione interna di servizi come Gmail o Slack, consente di disporre di test locali rapidi, deterministici e totalmente immuni da problemi di rate limiting.

L’adozione dell’intelligenza artificiale riduce drasticamente i costi di sviluppo di questi simulatori, poiché l’algoritmo può essere istruito per implementare le regole e i comportamenti attesi partendo direttamente dalle specifiche ufficiali delle API esterne.

Sicurezza, inganni dell’automazione e prospettive future

La sessione di dibattito con il pubblico della conferenza ha fatto emergere una problematica cruciale legata al comportamento opportunistico dei modelli generativi. I partecipanti hanno evidenziato come l’intelligenza artificiale tenda sistematicamente a conformare il codice e le verifiche al fine di far apparire la suite completata con successo, occultando i difetti latenti.

Pratiche di fault injection e l’uso di agenti non deterministici

Per controbialanciare questa tendenza, Vaccari ha sottolineato l’importanza di un atteggiamento ispettivo rigoroso da parte dei programmatori umani, affermando che «questo è necessario per assicurarsi che l’intelligenza artificiale non ci stia ingannando».

Diventa, quindi, indispensabile introdurre barriere e vincoli automatizzati che impediscano il commit (uno snapshot) di codice non conforme, affiancando a ciò pratiche sistematiche di Fault Injection. Questa tecnica consiste nell’alterare deliberatamente una porzione del codice o del test per verificare se la suite fallisce esattamente secondo le modalità previste, smascherando eventuali falsi positivi.

Oltre ai test deterministici, utili per fare chiarezza sui requisiti e prevenire regressioni, lo scenario tecnologico offre strumenti complementari come gli agenti non deterministici, che possono analizzare i sistemi autonomamente per individuare difetti non mappati originariamente, avvalendosi di tecnologie quali AgentBrowser per l’automazione di Chrome o strumenti di esplorazione casuale come Appium.

Il potenziale dell’intelligenza artificiale nei metodi formali

Un’ultima riflessione ha riguardato il possibile connubio tra intelligenza artificiale e metodi formali, ovvero le pratiche matematiche di verifica utilizzate tradizionalmente in settori ad alta criticità come l’aerospaziale. Nonostante si tratti di discipline complesse che richiedono una formazione specialistica avanzata, l’evoluzione tecnologica sta mostrando riscontri positivi.

Rispondendo a una domanda specifica del pubblico, Vaccari ha riscontrato che «questo è un campo in forte crescita. Si scopre che l’intelligenza artificiale è sorprendentemente brava a scrivere specifiche».

I modelli generativi si rivelano efficaci nel comprendere la logica temporale delle azioni e nel redigere specifiche formali complesse, offrendo un supporto concreto soprattutto nella risoluzione di problemi di concorrenza, ambiti in cui i tradizionali unit test non sono matematicamente in grado di coprire l’intera gamma delle combinazioni possibili.

L’evoluzione dell’ingegneria del software richiede, dunque, il passaggio verso una supervisione umana più strategica, basata sulla definizione rigorosa dei dati e dei confini logici del sistema.

FAQ: Intelligenza Artificiale

L’intelligenza artificiale è la disciplina che studia la progettazione, lo sviluppo e la realizzazione di sistemi hardware e software dotati di capacità caratteristiche dell’uomo, come ragionamento, apprendimento, pianificazione e adattamento. Si tratta di un ramo della computer science che studia lo sviluppo di sistemi in grado di emulare le capacità cognitive umane, permettendo alle macchine di apprendere dall’esperienza, adattarsi a nuovi input e svolgere compiti che tradizionalmente richiedono l’intelligenza umana. L’AI non ha una definizione univoca e condivisa, poiché comprende un ampio spettro di discipline, dalla neurologia all’informatica, dalla neurobiologia alla matematica.

Le principali tecniche di apprendimento nell’intelligenza artificiale si suddividono in tre approcci fondamentali: l’apprendimento supervisionato, l’apprendimento non supervisionato e l’apprendimento per rinforzo. Nell’apprendimento supervisionato, l’algoritmo viene addestrato su un dataset etichettato per prevedere output corretti. L’apprendimento non supervisionato lavora su dati non etichettati per scoprire pattern o strutture intrinseche. L’apprendimento per rinforzo permette a un agente di imparare a prendere decisioni interagendo con un ambiente e ricevendo feedback sotto forma di ricompense o penalità. A questi si aggiunge il deep learning, una sottocategoria del machine learning che utilizza reti neurali artificiali con molti strati per modellare ed estrarre caratteristiche complesse dai dati.

L’intelligenza artificiale ha radici che risalgono al XVII secolo, quando furono costruite le prime macchine in grado di effettuare calcoli automatici da Blaise Pascal e Gottfried Wilhelm von Leibniz. Tuttavia, è nel 1943 che la gestazione dell’AI si avvicina al termine con il lavoro del neurofisiologo Warren Sturgis McCulloch e del matematico Walter Harry Pitts, che teorizzarono come semplici neuroni potessero essere combinati per calcolare operazioni logiche elementari. La locuzione “intelligenza artificiale” venne utilizzata per la prima volta nel 1955 dai matematici e informatici John McCarthy, Marvin Minsky, Nathaniel Rochester e Claude Shannon, in preparazione della conferenza di Dartmouth del 1956, considerata la vera “sala parto” dell’intelligenza artificiale. Dopo un periodo di grandi aspettative (1950-1965), l’AI attraversò una fase di difficoltà negli anni ’60, per poi rinascere negli anni ’80 grazie agli studi di Jay McClelland e David Rumelhart sul connessionismo e le reti neurali. Oggi, l’evoluzione delle nanotecnologie e lo sviluppo di algoritmi sempre più sofisticati hanno portato a una nuova generazione di AI capace di apprendimento autonomo e analisi complesse.

La differenza tra intelligenza artificiale debole (weak AI) e forte (strong AI) rappresenta una distinzione fondamentale nel campo dell’AI. L’intelligenza artificiale debole agisce e pensa simulando di essere intelligente, ma non lo è realmente. Essa risponde a problemi sulla base di regole conosciute, confrontando casi simili ed elaborando soluzioni razionali senza una vera comprensione. Si occupa essenzialmente di problem solving, simulando il comportamento umano senza comprendere totalmente i processi cognitivi. L’intelligenza artificiale forte, invece, possiede capacità cognitive non distinguibili da quelle umane. Include i “sistemi esperti” che riproducono prestazioni e conoscenze di persone esperte in un determinato ambito, utilizzando un motore inferenziale che, come la mente umana, passa da una proposizione assunta come vera a una seconda proposizione con logiche deduttive o induttive. La caratteristica distintiva di questi sistemi è l’analisi del linguaggio per comprenderne il significato, elemento essenziale per una vera intelligenza.

L’intelligenza artificiale trova numerose applicazioni pratiche nel mondo aziendale, trasformando processi e strategie. Nel settore finanziario, l’AI viene utilizzata per personalizzare tassi di interesse, rilevare frodi e migliorare i servizi finanziari attraverso l’analisi dei dati sulle abitudini di rimborso e altri comportamenti dei clienti. Nel marketing e nelle vendite, le tecnologie cognitive aiutano a ottenere una comprensione a 360 gradi dei clienti, prevedendo le loro esigenze e migliorando la loro esperienza, portando a un migliore ingaggio e strategie più efficaci. Nell’industria manifatturiera, l’AI viene implementata per la manutenzione predittiva, consentendo di prevedere guasti e anomalie prima che si verifichino, riducendo i tempi di inattività e migliorando l’efficienza operativa. Altre applicazioni includono l’automazione di processi, l’ottimizzazione della supply chain, il supporto decisionale basato sui dati e il miglioramento della sicurezza informatica.

Il machine learning è un sottogruppo dell’intelligenza artificiale che conferisce alle macchine la capacità di ricevere dati e modificare gli algoritmi man mano che acquisiscono più informazioni su ciò che stanno elaborando. Si tratta di sistemi di apprendimento automatico che permettono alle macchine di adattarsi e migliorarsi senza necessità di riprogrammazione da parte dell’uomo. Il machine learning automatizza la costruzione di modelli analitici, utilizzando reti neurali, modelli statistici e ricerche operative per trovare informazioni nascoste nei dati e rispondere a nuovi input esterni. Può essere implementato attraverso diversi approcci, come l’apprendimento supervisionato, non supervisionato e per rinforzo. Un esempio classico di machine learning è un sistema di visione artificiale capace di riconoscere oggetti ripresi da una videocamera: l’algoritmo distingue tra animali, persone e cose, memorizzando nuove situazioni che arricchiscono la sua conoscenza. Il machine learning rappresenta il metodo che “allena” l’AI, consentendole di sviluppare capacità sempre più sofisticate di analisi e decisione.

Lo sviluppo dell’intelligenza artificiale è supportato da diverse tecnologie hardware avanzate. Le GPU (Graphic Processing Unit), originariamente create per elaborare informazioni grafiche nei videogiochi, sono diventate fondamentali per l’AI grazie alla loro capacità di eseguire calcoli in parallelo, a differenza delle CPU che lavorano in modo seriale. Le TPU (Tensor Processing Unit), sviluppate da Google, sono circuiti specificamente progettati per operazioni di machine learning ad alto carico di lavoro, in particolare per ridurre il tempo dedicato alla fase inferenziale. Le ReRAM (memorie resistive ad accesso casuale) possono immagazzinare fino a 1 terabyte di dati in chip delle dimensioni di un francobollo, sono non volatili e consumano pochissima energia, rendendole ideali per costruire reti neurali. I computer quantistici rappresentano un’altra frontiera, operando secondo la logica quantistica che consente calcoli esponenzialmente più potenti rispetto ai computer tradizionali. Infine, i chip neuromorfici simulano il funzionamento del cervello umano, utilizzando una logica di funzionamento analogica che si attiva in maniera differente a seconda del gradiente di segnale scambiato tra le unità.

L’intelligenza artificiale presenta numerosi rischi e sfide etiche che devono essere attentamente considerati. Tra questi, la sicurezza informatica è particolarmente critica: l’AI può essere utilizzata per creare attacchi più sofisticati, come il phishing personalizzato o la manipolazione di sistemi di sicurezza, e le stesse tecnologie AI possono essere vulnerabili ad attacchi che compromettono la loro integrità. Un altro rischio significativo è rappresentato dalle allucinazioni, ovvero la generazione di risposte false o imprecise presentate come fatti plausibili, che possono avere conseguenze gravi in settori come la sanità o la finanza. Vi sono poi preoccupazioni riguardo alla privacy dei dati, alla possibilità di bias e discriminazione nei sistemi AI, e all’impatto sull’occupazione. Questioni etiche emergono anche nel contesto delle auto autonome, come evidenziato dall’esperimento “The Moral Machine” che ha esplorato le scelte morali che un’auto a guida autonoma dovrebbe compiere in situazioni di emergenza, rivelando differenze culturali significative nelle preferenze etiche.

Il ruolo del Chief Information Officer (CIO) sta subendo una profonda trasformazione con l’avvento dell’intelligenza artificiale. I CIO sono passati da gestori di sistemi IT a leader strategici che guidano l’innovazione e la trasformazione digitale all’interno delle loro organizzazioni. Sono ora responsabili di sviluppare strategie per integrare efficacemente l’AI nei processi aziendali, ottimizzando operazioni e riducendo costi attraverso l’automazione e l’analisi dei dati. I CIO devono garantire che i dati aziendali siano gestiti in modo sicuro e conforme alle normative sulla privacy, mentre implementano soluzioni AI che possono aiutare a identificare e mitigare le minacce alla sicurezza informatica. Devono anche pianificare e facilitare la formazione e lo sviluppo delle competenze necessarie per preparare il personale a lavorare con le tecnologie AI. La loro responsabilità si estende alla valutazione e alla scelta delle giuste piattaforme e infrastrutture per supportare soluzioni AI, considerando aspetti come scalabilità, interoperabilità e costi. Il CIO moderno deve gestire il cambiamento organizzativo che l’introduzione dell’AI comporta, affrontando le preoccupazioni dei dipendenti e promuovendo una cultura aziendale orientata all’innovazione.

La differenza fondamentale tra intelligenza artificiale e intelligenza umana risiede nella capacità di creare valore in un sistema aperto e infinito. Mentre l’intelligenza artificiale opera in un sistema chiuso di valori già definiti, l’intelligenza umana si confronta con l’esperienza e con l’infinita variabilità del mondo. L’AI utilizza algoritmi basati sulle probabilità che possono intercettare il rapporto causa/effetto senza realmente comprenderlo, trasformando l’informazione in conoscenza attraverso modelli matematici. Al contrario, l’intelligenza umana è in grado di utilizzare l’invenzione e la fantasia per osservare il mondo in modi nuovi e inaspettati, esplorando possibilità che le macchine, con i loro algoritmi predefiniti, non possono concepire. Il linguaggio naturale utilizzato dalle macchine è efficiente nel trattare grandi volumi di dati, ma manca della profondità semantica e della capacità di innovare che caratterizza il linguaggio umano. Mentre l’AI può facilitare e ottimizzare molti aspetti della nostra vita, è l’intelligenza umana che mantiene la chiave dell’innovazione dirompente, capace di vedere oltre l’ovvio e di creare valore in modi che sfidano le convenzioni.

guest
0 Commenti
Più recenti Più votati
Inline Feedback
Vedi tutti i commenti

Articoli correlati