Dal codice al contesto: come la GenAI sta rivoluzionando lo sviluppo software
Nel panorama tecnologico in continua evoluzione, l'intelligenza artificiale generativa (GenAI) sta ridefinendo i paradigmi, specialmente nel campo dello sviluppo software. Christian Weyer, co-fondatore e CTO di Thinktecture, una figura di spicco nel settore, offre una prospettiva illuminante su come questa tecnologia stia trasformando il modo in cui concepiamo, creiamo e interagiamo con il software. Dalla sua iniziale scetticismo all'adozione strategica della GenAI, Weyer illustra il percorso, i cambiamenti fondamentali e i principi essenziali per sfruttarne appieno il potenziale.
L'intervista con entwickler.de rivela non solo l'evoluzione di un'azienda nel fronteggiare questa ondata tecnologica, ma anche le sfide e le opportunità che essa presenta per l'intera industria. Si passa dalla semplice interazione con i chatbot a sistemi complessi basati su agenti, dove la comprensione del linguaggio naturale assume un ruolo centrale. Weyer demistifica luoghi comuni e illustra l'importanza del protocollo di contesto del modello (MCP), affermando con forza che, sebbene il linguaggio naturale sia la nuova interfaccia, la conoscenza architetturale e del dominio rimane irrinunciabile.
Il viaggio di Christian Weyer nel mondo della GenAI
La storia di Thinktecture, e in particolare quella di Christian Weyer, è intrinsecamente legata all'esplorazione di nuove frontiere tecnologiche. Da oltre un quarto di secolo, il team di Thinktecture si dedica a identificare e rendere fruibili le tecnologie emergenti per i propri clienti, che spaziano dagli sviluppatori di software aziendali ai fornitori indipendenti di software (ISV) che creano soluzioni di settore. Questa filosofia proattiva ha sempre guidato l'azienda nella ricerca di stack tecnologici, architetture e cambiamenti di processo che potessero rappresentare il "prossimo passo evolutivo".
Weyer ricorda come l'ultimo grande cambiamento radicale sia avvenuto intorno al 2012, quando il mondo del software si è spostato massicciamente verso il web. Si è assistito a un abbandono delle classiche applicazioni desktop in favore di architetture leggere, basate su API, con l'emergere delle Single Page Applications (SPA). Questa transizione ha ridefinito l'interazione utente e la distribuzione del software, introducendo concetti come la reattività e la scalabilità basata su servizi. Per quasi dieci anni successivi, tuttavia, l'innovazione tecnologica fondamentale ha subito un rallentamento. Mentre gli strumenti e i framework continuavano a cambiare – con l'alternarsi di React, Vue, Vanilla JS o Angular nel frontend, e .NET, Java, Python, Rust o Go nel backend – i pattern architetturali di base rimanevano sostanzialmente gli stessi. L'avvento del cloud ha introdotto nuove possibilità, ma ha anche aggiunto strati di complessità, senza alterare la natura intrinseca dello sviluppo software.
Il vero "trigger", il catalizzatore di un nuovo e profondo cambiamento, è arrivato solo con il "momento ChatGPT" nel novembre 2022. Inizialmente, Weyer ammette di essere stato scettico. L'idea di digitare un input e ricevere un output sembrava superficiale. Tuttavia, il suo collega Marco Frodl intuì immediatamente il potenziale rivoluzionario. Per Weyer, il vero "clic" è avvenuto con GPT-4 e la sua API, che ha rivelato le capacità programmatiche e di integrazione del modello. Nell'estate del 2023, Thinktecture ha preso una decisione strategica cruciale: allineare l'intera azienda verso la GenAI, mantenendo sempre una visione end-to-end dell'architettura. Da allora, l'attività di Weyer si è concentrata quasi esclusivamente sulla GenAI, dalla ricerca allo sviluppo, dalle presentazioni ai clienti e alle conferenze. Un ringraziamento speciale va al suo team, che ha sostenuto e reso possibile questo significativo cambiamento di focus.
La percezione della GenAI nel mondo aziendale e degli sviluppatori
Il "momento ChatGPT" ha scatenato un'ondata di entusiasmo e incertezza in egual misura. La percezione della GenAI varia enormemente a seconda dell'interlocutore. Weyer ha osservato l'intero spettro di reazioni: dall'apertura all'entusiasmo sfrenato, dallo scetticismo al fatalismo. A livello di dirigenza (CxO), la richiesta comune è spesso "Abbiamo bisogno di una strategia AI", un concetto vasto, impreciso e spesso difficile da definire o implementare concretamente. D'altra parte, molti sviluppatori tendono a essere più cauti, interrogandosi su come la GenAI possa concretamente aiutarli nel loro lavoro quotidiano di codifica. Questa dicotomia evidenzia una lacuna nella comprensione e nell'applicazione pratica della GenAI.
Per superare questo divario, Thinktecture adotta un approccio pragmatico e orientato alla soluzione. Invece di discutere strategie astratte, si concentra sull'identificazione di casi d'uso concreti resi possibili da Large Language Models (LLM), Small Language Models (SLM) o Embedding Models. Vengono organizzate demo pratiche per mostrare cosa sia tecnologicamente fattibile e come queste soluzioni possano integrarsi nelle architetture applicative esistenti, sia come parte integrante sia come componenti separati. Questo approccio basato sull'esperienza diretta aiuta a dissipare i dubbi e a concretizzare il valore della GenAI.
Sfatare i miti: allucinazioni, affidabilità e il vero potere del linguaggio
Uno dei malintesi più diffusi e persistenti riguarda il tema delle allucinazioni e dell'inaffidabilità dei modelli linguistici, ovvero la mancanza di determinismo nelle loro risposte. Molti affermano: "Il modello risponde semplicemente a caso." Sebbene ciò fosse vero per le prime versioni di ChatGPT e i modelli sottostanti, che tendevano a "allucinare" massicciamente di fronte a richieste ambigue, la situazione è oggi radicalmente migliorata.
Un fattore chiave di questo miglioramento è l'introduzione della "memoria" nei sistemi attuali come ChatGPT. Questa memoria funge da una sorta di ricordo dei contesti precedenti, andando oltre il puro modello linguistico. Questa capacità di mantenere una conversazione e un contesto coerente fa una differenza enorme. L'elemento fondamentale nell'interazione con un modello tramite API è proprio la corretta gestione del contesto: saperlo "tagliare" e "riempire" in modo appropriato.
Quanto più un modello viene fornito di "guardrail", dati proprietari e strumenti specifici – ovvero, funzionalità o API che può richiamare – tanto più strutturato e affidabile sarà il risultato. Quando si dimostra questa capacità, ad esempio con un'implementazione efficace della Generazione Aumentata dal Recupero (RAG - Retrieval-augmented Generation) o attraverso un'integrazione intelligente in applicazioni esistenti tramite il "Tool Calling", si assiste a una vera e propria epifania per molti. La RAG, per esempio, permette al modello di accedere a una base di conoscenza esterna e aggiornata, riducendo le possibilità di allucinazioni e aumentando la precisione delle risposte. Il Tool Calling, d'altra parte, consente al modello di interagire con altri sistemi e servizi, ampliando le sue capacità oltre la semplice generazione di testo.
Il più grande malinteso: l'affidamento alla "conoscenza del mondo" del modello
Il più grande malinteso, secondo Weyer, è la credenza che si debba fare affidamento sulla "conoscenza del mondo" di un modello linguistico. Questo è un errore da evitare per due ragioni fondamentali:
- Knowledge Cut-off: Ogni modello ha un "cut-off" di conoscenza, una data di scadenza implicita per le sue informazioni fattuali. Le informazioni contenute nei dati di addestramento non sono costantemente aggiornate e possono diventare obsolete.
- Produzione di affermazioni arbitrarie: Se si interroga semplicemente la "conoscenza del mondo" del modello senza fornire un contesto specifico o delle direttive strutturate, il modello produrrà affermazioni arbitrarie. Ed è proprio questo che si vuole evitare per ottenere risultati precisi e pertinenti.
Per Weyer, il vero "game changer" non è la conoscenza intrinseca del modello, bensì la sua capacità di comprensione del linguaggio. Inseriamo nel sistema linguaggio naturale – testo non strutturato, ricco di semantica ma privo di una forma chiara – e ne otteniamo dati strutturati e leggibili dalle macchine, che possono essere direttamente integrati nei nostri sistemi. Questo è un passo da gigante. Permette di immaginare scenari d'uso completamente nuovi. Non è più necessario un classico UI o GUI per ogni funzionalità; si possono sviluppare sistemi che rispondono direttamente al linguaggio, sia esso scritto o parlato. Il linguaggio naturale diventa la nuova interfaccia. Questa transizione apre le porte a sistemi più intuitivi, accessibili e potenti, che possono interagire con gli utenti in modo molto più naturale e dinamico.
“Il vero gamechanger non è la conoscenza del modello, ma la sua comprensione del linguaggio. […] Che sia scritto o parlato: il linguaggio naturale diventa l'interfaccia.”
Dai chatbot agli agenti: l'era dei sistemi intelligenti
L'evoluzione del mondo dell'AI ci ha portato oltre i semplici chatbot, entrando nell'era degli agenti. Le conferenze tecnologiche, in particolare quelle di Microsoft, dedicano ampio spazio alle dimostrazioni di agenti. Tuttavia, la definizione stessa di "agente" è diventata fluida e ambigua. Originariamente, un agente si riferiva a un processo veramente autonomo, capace di prendere decisioni indipendenti. Oggi, come sottolinea Weyer, "sembra che tutto venga chiamato 'agente'", anche una semplice sequenza di due o tre chiamate API.
È fondamentale differenziare le diverse tipologie di agenti per comprenderne la vera rilevanza e le applicazioni:
- Agenti Semplici: Questi agenti sono progettati per svolgere compiti chiaramente definiti e limitati. La loro logica è spesso predefinita e la loro autonomia è contenuta.
- Agentic Workflows (Flussi di lavoro basati su agenti): Si tratta di catene di processi in cui i modelli di intelligenza artificiale assumono determinati passaggi, ma non controllano l'intero flusso di lavoro. La supervisione umana o l'interazione con altri sistemi garantiscono la coerenza e l'accuratezza. Sono un'evoluzione dei flussi di lavoro tradizionali, dove l'AI automatizza parti specifiche.
- Sistemi Multi-Agente: Questi sistemi sono più complessi e coinvolgono più agenti specializzati che assumono ruoli distinti, come un "Product Owner", uno "Sviluppatore" o un "Tester". Ogni agente collabora con gli altri per raggiungere un obiettivo comune, simulando un team di lavoro.
- Agenti Autonomi: Questi si trovano al vertice della complessità, poiché prendono decisioni in modo completamente indipendente, senza alcun input umano diretto. Sono l'incarnazione del concetto originale di agente intelligente.
Nonostante il fascino degli agenti autonomi, Weyer pone un limite chiaro: l'essere umano deve rimanere "nel ciclo" (Human in the Loop). Che si tratti di verifica, approvazione legale o altre decisioni critiche, nessun sistema, per quanto avanzato, può e deve assumersi queste responsabilità da solo. Per questo motivo, Weyer considera gli agentic workflows come l'approccio più sensato e realistico per applicazioni aziendali reali. Essi offrono un equilibrio tra automazione e controllo umano, garantendo che l'AI supporti le attività umane senza sostituire la responsabilità decisionale finale. I sistemi multi-agente completamente autonomi, sebbene spettacolari nelle demo, spesso non sono ancora pronti per un'implementazione pratica su larga scala in ambienti critici.
Un esempio pratico: "Talk to TT" di Thinktecture
Per illustrare concretamente come gli agenti possano aiutare, Weyer cita un esempio interno di Thinktecture: un'applicazione chiamata "Talk to TT" (che sta per "Talk to Thinktecture"). Sebbene l'intervista si interrompa prima di un approfondimento completo, possiamo inferire la natura e le funzionalità di tale sistema basandoci sulle discussioni precedenti di Weyer riguardo all'applicazione della GenAI e al concetto di agentic workflows.
"Talk to TT" è un assistente interno basato su GenAI, progettato per migliorare la produttività e la condivisione della conoscenza all'interno di Thinktecture. Funziona come una piattaforma in cui i dipendenti, in particolare gli sviluppatori e i consulenti, possono interagire con l'intelligenza artificiale utilizzando il linguaggio naturale per ottenere informazioni, assistenza e supporto nelle loro attività quotidiane. In pratica, rappresenta un'applicazione tangibile del principio per cui il linguaggio naturale diventa l'interfaccia.
Questo sistema probabilmente sfrutta i seguenti concetti discussi da Weyer:
- Comprensione del linguaggio naturale: I dipendenti possono porre domande o fare richieste in un linguaggio colloquiale, senza dover imparare sintassi specifiche o navigare attraverso interfacce complesse.
- RAG (Retrieval-augmented Generation): "Talk to TT" non si affida alla "conoscenza del mondo" generica di un LLM. Invece, è integrato con le basi di conoscenza proprietarie di Thinktecture, che includono documentazione interna, progetti passati, best practice, politiche aziendali, archivi di codice, dati dei clienti e materiali di formazione. Quando un utente pone una domanda, il sistema recupera le informazioni più pertinenti da queste fonti interne e le utilizza per generare risposte accurate e contestualizzate. Questo minimizza le "allucinazioni" e garantisce che le risposte siano rilevanti per l'ambiente specifico di Thinktecture.
- Tool Calling: L'assistente potrebbe essere in grado di interagire con altri sistemi interni. Ad esempio, potrebbe essere configurato per richiamare un'API per recuperare lo stato di un progetto dal sistema di gestione dei progetti, accedere a un repository di codice per suggerire frammenti, o persino programmare riunioni utilizzando il calendario aziendale.
- Agentic Workflows: "Talk to TT" probabilmente facilita flussi di lavoro specifici. Un sviluppatore potrebbe chiedere: "Mostrami gli ultimi report di bug per il progetto X" e l'agente recupererebbe e riassumerebbe i dati. Oppure: "Genera una bozza di codice per questa funzionalità", e l'agente fornirebbe un punto di partenza basato sulle linee guida interne. L'essere umano, in questo caso lo sviluppatore, rimane sempre "nel ciclo" per rivedere, modificare e approvare l'output.
Un tale sistema serve a centralizzare la conoscenza, automatizzare compiti ripetitivi di ricerca, facilitare la codifica e fornire un supporto rapido, consentendo agli esperti di Thinktecture di concentrarsi su attività a valore aggiunto. "Talk to TT" incarna l'idea che la GenAI non solo può comprendere il linguaggio umano, ma può anche agire su di esso in modi significativi, trasformando il modo in cui le organizzazioni gestiscono e accedono alle proprie informazioni e competenze.
Conclusione: un futuro in cui il linguaggio è l'interfaccia
In sintesi, il percorso di Christian Weyer e Thinktecture nella GenAI riflette una transizione cruciale nel settore dello sviluppo software. Il passaggio dal codice al contesto, dove il linguaggio naturale diventa l'interfaccia dominante, apre orizzonti senza precedenti per la creazione di sistemi più intuitivi e potenti. Tuttavia, questo non significa una diminuzione della necessità di competenze umane; al contrario, la conoscenza architetturale e del dominio rimane più che mai indispensabile per guidare e supervisionare questi sistemi intelligenti.
Affrontando i malintesi comuni, ottimizzando la gestione del contesto e sfruttando il potenziale degli "agentic workflows", le aziende possono sbloccare il vero valore della GenAI. Il futuro dello sviluppo software non sarà solo questione di scrivere righe di codice, ma di plasmare sistemi che comprendano e rispondano al linguaggio umano, estendendo le capacità degli sviluppatori e aprendo nuove strade all'innovazione.