Come l'intelligenza artificiale generativa sta trasformando lo sviluppo software

La rivoluzione dell'intelligenza artificiale generativa ha iniziato a cambiare fondamentalmente il modo in cui sviluppiamo software. Non si tratta semplicemente di uno strumento aggiuntivo nella cassetta degli attrezzi dello sviluppatore, ma piuttosto di una trasformazione strutturale di come concepiamo, progettiamo e implementiamo le applicazioni moderne. Christian Weyer, co-fondatore e Chief Technology Officer di Thinktecture, offre una prospettiva unica su questo cambiamento, basata su più di 25 anni di esperienza nel tracciare i percorsi delle nuove tecnologie e sulla sua recente immersione profonda nel mondo della GenAI.

Il percorso di Christian Weyer verso la GenAI

La storia di Christian Weyer con l'intelligenza artificiale generativa inizia con una postura di sano scetticismo. Weyer e il suo team presso Thinktecture hanno sempre mantenuto uno sguardo vigile sulle nuove tecnologie, con l'obiettivo specifico di renderle significativamente utili per i loro clienti. I clienti di Thinktecture sono principalmente sviluppatori software, sia nell'ambiente enterprise che presso gli Independent Software Vendors (ISV) che sviluppano soluzioni specifiche per settori industriali.

Per oltre un quarto di secolo, Weyer ha continuamente cercato tech stack, architetture e cambiamenti di processo che rappresentassero il prossimo grande passo evolutivo. L'ultimo grande cambiamento era avvenuto intorno al 2012, quando il settore intero ha subito una transizione dal tradizionale sviluppo desktop alle applicazioni leggere basate su API, con le Single Page Applications come protagoniste. Durante i dieci anni successivi, poco di fondamentale era cambiato dal punto di vista tecnologico. Gli strumenti e i framework evolvevano costantemente—React, Vue, Vanilla JavaScript e Angular nel frontend; .NET, Java, Python, Rust e Go nel backend—ma i pattern architetturali fondamentali rimanevano essenzialmente gli stessi. Il cloud computing aveva portato nuove possibilità, ma anche una complessità aggiunta. Il vero catalizzatore della prossima ondata di innovazione arrivò nel novembre 2022, con il famoso lancio di ChatGPT.

Weyer racconta con onestà che inizialmente era scettico. Il suo primo istinto fu: "Che cosa assurda—digito qualcosa e il sistema sputa fuori un'altra cosa." Era il suo collega Marco Frodl a essere convinto dai primi giorni che si trattasse di qualcosa di straordinario. Per Weyer il momento decisivo arrivò con GPT-4 e la sua API. Nel corso dell'estate del 2023, Thinktecture prese una decisione strategica: riorientare completamente l'azienda verso la GenAI, mantenendo naturalmente l'approccio end-to-end dell'architettura software. Il primo discorso pubblico di Weyer su questo tema fu nel agosto 2023 al .NET Day Switzerland di Zurigo, da quel momento la sua attenzione si è focalizzata quasi interamente su ricerca, sviluppo, e conferenze relative alla GenAI.

Il paradosso della percezione aziendale della GenAI

Quando esaminiamo come le aziende e i clienti stanno affrontando il fenomeno del ChatGPT e della GenAI in generale, emerge un'interessante dicotomia. Da un lato, molte organizzazioni aziendali sentono un'urgenza quasi irresistibile di implementare soluzioni di intelligenza artificiale, spesso senza una visione chiara di come integrarle nel loro contesto specifico. Gli executive di alto livello spesso dichiarano: "Abbiamo bisogno di una strategia di intelligenza artificiale", una dichiarazione che, per quanto comprensibile, è vaga, ampia e spesso difficile da attuare concretamente.

D'altro lato, molti sviluppatori software mantengono un atteggiamento più scettico e pragmatico. Chiedono domande pratiche come: "Come mi aiuta questo nel mio lavoro quotidiano di programmazione?" Questa dicotomia è uno dei fenomeni più interessanti nel panorama tecnologico contemporaneo, e Weyer ha osservato direttamente questo spettro completo di reazioni: dall'entusiasmo sfrenato, al supporto misurato, allo scetticismo costruttivo, fino al fatalismo tecnologico.

La soluzione proposta da Thinktecture consiste nell'esaminare insieme ai clienti i casi d'uso concreti che sono resi possibili da Large Language Models, Small Language Models o Embedding Models. L'azienda conduce dimostrazioni hands-on, mostra che cosa sia tecnologicamente possibile, e analizza come queste soluzioni potrebbero integrarsi nell'ecosistema applicativo esistente di un cliente, sia che si tratti di integrazioni dirette che di soluzioni costruite separatamente accanto ai sistemi esistenti.

I principali malintesi sulla GenAI

Le allucinazioni e la questione dell'affidabilità

Uno dei malintesi più comuni che Weyer incontra regolarmente riguarda il tema delle allucinazioni e dell'affidabilità generale dei modelli linguistici. Molti stakeholder affermano con preoccupazione: "Il modello semplicemente risponde qualsiasi cosa", e in realtà, nel passato recente, questa era una caratterizzazione piuttosto accurata. Le prime versioni di ChatGPT con i modelli sottostanti producevano infatti allucinazioni massicce ogni volta che si trovavano di fronte a una query ambigua o mal definita.

Tuttavia, la situazione è migliorata significativamente. Un fattore cruciale in questo miglioramento è il fatto che i sistemi attuali come ChatGPT ora utilizzano Memory—una sorta di ricordo del contesto precedente che va oltre il semplice modello linguistico. Questo rappresenta una differenza sostanziale. Infatti, il principio fondamentale nell'interazione con un modello attraverso un API è tagliare e riempire correttamente il contesto.

Più linee guida fornisci al modello, più dati proprietari gli conferisci, e più strumenti—definiti come "tools"—metti a sua disposizione, più strutturata e affidabile diventa la risposta generata. Quando questo concetto viene dimostrato concretamente, ad esempio attraverso un'integrazione RAG (Retrieval-Augmented Generation) ben implementata o attraverso un'intelligente incorporazione nei sistemi di applicazione esistenti tramite Tool Calling, il momento dell'illuminazione arriva per molti stakeholder.

Il malinteso più grande: fare affidamento sulla conoscenza generale del modello

Probabilmente il malinteso più ampio riguarda la convinzione che si dovrebbe fare affidamento sulla conoscenza generale di un Language Model. Questo è precisamente ciò che non dovremmo fare, e per ragioni ben fondate.

In primo luogo, ogni modello ha un "knowledge cut-off"—una data di scadenza incorporata rispetto ai dati fattici su cui è stato addestrato. In secondo luogo, se interroghi semplicemente la "World Knowledge" del modello senza fornire il tuo contesto specifico o indicazioni strutturanti, il modello produce ancora una volta affermazioni arbitrarie—e questo è precisamente ciò che vogliamo evitare.

Per Weyer, il vero "game changer" non è la conoscenza generale del modello, bensì la sua capacità di comprensione del linguaggio. Introduciamo linguaggio naturale nel sistema—testo non strutturato, ricco di semantica ma senza una forma chiara—e otteniamo in cambio dati strutturati e leggibili dalla macchina che possiamo incorporare direttamente nei nostri sistemi.

Questa capacità è enorme. Consente di pensare a scenari di utilizzo completamente nuovi. Non hai più bisogno di una GUI o interfaccia utente classica per tutto, ma puoi sviluppare sistemi che rispondono direttamente al linguaggio. Indipendentemente dal fatto che sia scritto o parlato: il linguaggio naturale diventa l'interfaccia.

Come sintetizza Weyer stesso: "Il vero game changer non è la conoscenza del modello, ma la sua comprensione del linguaggio. [...] Indipendentemente dal fatto che sia scritto o parlato: il linguaggio naturale diventa l'interfaccia."

Dal chatbot agli agenti intelligenti

Definire il termine "agente" nel contesto della GenAI

Il panorama tecnologico si è mosso ben oltre il semplice concetto di chatbot, entrando nell'era degli agenti intelligenti. Molte conferenze, in particolare quelle ospitate da Microsoft, dedicano una quantità considerevole di tempo alle dimostrazioni di agenti. Tuttavia, quando si analizza attentamente cosa significhi effettivamente "agente", le cose diventano complicate.

Microsoft, in particolare, ha reso difficile orientarsi nella definizione del termine. Attualmente, praticamente tutto viene etichettato come "agente". In origine, il termine aveva un significato più preciso: un processo davvero autonomo. Oggi, anche una semplice sequenza di due o tre chiamate API è spesso considerata un "agente".

Weyer insiste sulla necessità di fare distinzioni importanti. Nel paesaggio degli agenti e dell'automazione basata su GenAI, possiamo identificare diversi livelli di complessità e autonomia:

  • Agenti semplici: sistemi che svolgono compiti chiaramente definiti con un ambito limitato
  • Agentic Workflows: catene di processi in cui i modelli di IA assumono specifici passaggi, ma non controllano l'intero flusso di lavoro
  • Sistemi multi-agente: architetti ture più sofisticate dove più agenti specializzati—come un "Product Owner", uno "Developer" o un "Tester"—assumono ruoli distinti e collaborano per raggiungere obiettivi comuni
  • Agenti completamente autonomi: sistemi che prendono decisioni indipendentemente senza input umano

L'importanza dell'umano nel ciclo decisionale

Tuttavia, Weyer traccia una linea importante e non negoziabile: l'uomo deve rimanere nel ciclo—"Human in the Loop". Che si tratti di verifica, approvazione legale o altre decisioni critiche, nessun sistema dovrebbe assolutamente prendere autonomamente tali decisioni nel contesto attuale. Per questa ragione, Weyer sostiene che gli Agentic Workflows rappresentano un approccio significativamente più sensato e realistico per le applicazioni nel mondo reale, molto più rilevante dei sistemi multi-agente pienamente autonomi che, per quanto impressionanti, principalmente brillano nelle dimostrazioni.

Questa distinzione è fondamentale per una implementazione responsabile e pratica della tecnologia. Gli Agentic Workflows permettono ai sistemi di automazione di gestire compiti complessi e articolati mantenendo al contempo la possibilità di intervento umano nei momenti critici, offrendo un equilibrio tra efficienza e controllo.

Un caso di studio pratico: "Talk to Thinktecture"

Per illustrare come gli agenti intelligenti funzionano nella pratica reale, Weyer descrive un esempio contemporaneo sviluppato internamente presso Thinktecture, chiamato "Talk to TT"—letteralmente "Talk to Thinktecture". Questo progetto dimostra come gli agenti intelligenti possono risolvere problemi specifici che sarebbero difficili o impossibili da affrontare con interfacce utente tradizionali.

La struttura del sistema

All'interno di Thinktecture, esistono diversi "silos" di informazioni importanti. Due di questi sono particolarmente rilevanti per le operazioni quotidiane:

  • Una Readme interna che contiene le linee guida generali dell'azienda, le politiche e le procedure standard
  • Un strumento di pianificazione che coordina gli incarichi e la disponibilità degli esperti tecnologici dell'azienda

Entrambi i sistemi contengono informazioni preziose, ma sono ospitati in sistemi separati e accessibili solo attraverso interfacce grafiche fisse. Questo presenta un problema: alcune domande che i dipendenti potrebbero voler porre non possono essere direttamente risposte dalle interfacce utente fornite. Ad esempio, una domanda come "Chi ha disponibilità per quattro giorni e possiede competenze in Python?" non può essere facilmente risposta attraverso l'interfaccia standard dello strumento di pianificazione, perché le competenze non sono direttamente mappate nel sistema di pianificazione.

La soluzione tramite agenti

Per risolvere questo problema, il team di Thinktecture ha sviluppato due agenti specializzati:

  • Il primo agente comunica con lo strumento di pianificazione attraverso la sua API, accedendo ai dati di pianificazione e disponibilità
  • Il secondo agente esegue ricerche semantiche attraverso la Readme interna per recuperare informazioni sulle politiche e le linee guida

Davanti a questi due agenti si posiziona un Semantic Router, un componente intelligente che analizza la natura della domanda in arrivo e indirizza automaticamente la query all'agente appropriato. Se la domanda riguarda la disponibilità e le competenze, il router indirizza verso l'agente del sistema di pianificazione. Se riguarda le politiche aziendali, indirizza verso l'agente della Readme.

Uno degli aspetti più eleganti di questo sistema è che funziona indipendentemente dal canale di comunicazione. Gli utenti possono accedere al sistema attraverso molteplici interfacce:

  • Slack, l'ambiente di collaborazione aziendale standard
  • WhatsApp, per comunicazioni via messaggistica privata
  • Un'applicazione web personalizzata
  • Persino