Interviste
Professor Eran Yahav, Co-Fondatore e Co-CEO di Tabnine – Serie di Interviste

Professor Eran Yahav, Co-Fondatore e Co-CEO di Tabnine è un professore di scienze informatiche al Technion – Israel Institute of Technology, la cui ricerca si concentra su linguaggi di programmazione, apprendimento automatico e ingegneria del software, in particolare sulla sintesi di programmi e l’analisi del codice su larga scala. Oltre al suo lavoro accademico, ha co-fondato Tabnine (originariamente Codota) per applicare anni di ricerca in strumenti pratici per gli sviluppatori, aiutando a pionierare la completazione del codice e l’automazione guidata dall’AI. Il suo lavoro collega l’accademia e l’industria, con un focus su come rendere il codice generato dall’AI più affidabile, sicuro e consapevole del contesto per ambienti aziendali reali.
Tabnine è una piattaforma di codifica alimentata dall’AI progettata per assistere gli sviluppatori durante l’intero ciclo di vita dello sviluppo del software, dalla scrittura e debug del codice alla generazione di test e documentazione. Originariamente lanciata come strumento di completamento del codice, si è evoluta in una piattaforma più ampia orientata alle aziende che integra l’AI generativa e i flussi di lavoro basati su agenti, consentendo ai team di automatizzare compiti di sviluppo complessi mantenendo al tempo stesso un controllo forte sulla privacy, la sicurezza e la conformità. Con il supporto per decine di linguaggi di programmazione e integrazioni in tutti i principali ambienti di sviluppo, Tabnine mira a migliorare la produttività degli sviluppatori assicurando che il codice generato dall’AI rimanga affidabile e allineato con gli standard aziendali.
Ha trascorso anni a ricercare l’analisi e la sintesi dei programmi al Technion e in precedenza ha lavorato alla IBM Research. Qual è il problema nello sviluppo del software che l’ha convinto a co-fondare Tabnine, e come la sua ricerca accademica ha plasmato la visione originale dell’azienda?
Il mio lavoro accademico si è concentrato sull’analisi e la sintesi dei programmi, che è essenzialmente insegnare alle macchine a comprendere e generare codice. Ho fatto il mio dottorato sull’analisi dei programmi, e questo è anche dove ho trascorso i miei primi anni di lavoro di ricerca applicata. Affrontare i problemi di qualità del software con l’analisi dei programmi ha reso chiaro che alcuni problemi sono molto difficili da risolvere una volta che il programma è stato scritto in modo errato. Un’ozione di prevenzione vale più di una libbra di cura, se si può dire. Ciò mi ha convinto che il modo giusto per affrontare i problemi di qualità del software è attraverso la sintesi dei programmi, che è dove ho speso la maggior parte del mio tempo e della mia energia di ricerca.
Ho inizialmente lavorato sulla sintesi dei programmi per programmi concorrenti, cercando di automatizzare la creazione di programmi concorrenti da quelli sequenziali. Poi sono passato a una sintesi dei programmi più generalmente applicabile utilizzando l’apprendimento automatico.
La sintesi dei programmi utilizzando l’apprendimento automatico è stata anche l’idea fondamentale che ha alimentato Tabnine. L’idea, che ora sembra ovvia, era che i modelli potessero imparare direttamente dai pattern di codifica da grandi corpora di codice e assistere gli sviluppatori in tempo reale. Questa idea generale è applicabile in tutte le fasi del ciclo di vita dello sviluppo del software – dalla creazione del codice alla revisione del codice, alla distribuzione e oltre.
La visione è sempre stata quella di aumentare lo sviluppatore umano fornendo loro strumenti che accelerano il processo di sviluppo e rimuovono l’attrito. Lo sviluppo del software è una disciplina creativa e di risoluzione dei problemi, e l’obiettivo era che l’AI rimuovesse l’attrito dal processo gestendo i compiti di routine e aiutando gli sviluppatori a rimanere nel flusso. Quella visione ancora ci guida oggi, anche se la tecnologia è evoluta notevolmente da quei primi giorni.
Tabnine ha pionierato gli strumenti di codifica AI anni prima che l’AI generativa diventasse mainstream con strumenti come i modelli di OpenAI. Guardando indietro, come è cambiato il ruolo dell’AI nello sviluppo del software da quei primi giorni, e quali lezioni ha imparato l’industria dalla prima ondata di copiloti di codifica?
I primi strumenti di codifica AI si sono concentrati principalmente sulla previsione. Erano essenzialmente sistemi di completamento avanzati che aiutavano gli sviluppatori a scrivere codice più velocemente prevedendo la prossima riga o funzione.
Ciò che è cambiato con i loop degli agenti è che l’AI può ora gestire compiti con maggiore autonomia, al punto in cui possiamo considerare gli agenti (con la giusta guida) come sviluppatori junior indipendenti.
Ma ciò ha anche insegnato all’industria una lezione importante. La capacità grezza del modello non è sufficiente per lo sviluppo del software aziendale. I modelli addestrati su dati pubblici possono produrre output impressionanti, ma spesso mancano di consapevolezza dell’architettura dell’organizzazione, delle dipendenze e delle convenzioni.
Per questo il prossimo stadio di evoluzione non riguarda solo modelli più grandi o finestre di contesto più ampie, ma collegare quei modelli al contesto reale in cui il software viene costruito.
Molte aziende stanno scoprendo che scalare gli agenti AI richiede più che semplicemente modelli più grandi – richiede un contesto organizzativo più profondo. Perché crede che il contesto stia diventando la vera frontiera per lo sviluppo affidabile guidato dall’AI?
I sistemi software sono reti complesse di relazioni. Un singolo cambiamento può influenzare più servizi, API o componenti downstream.
I modelli AI di oggi sono molto bravi a generare codice plausibile, ma spesso operano senza una comprensione strutturata di quelle relazioni. Senza quella comprensione, l’AI non può ragionare in modo affidabile sulle conseguenze di un cambiamento.
Ciò che le aziende stanno scoprendo è che l’affidabilità dei sistemi AI dipende dalla qualità del contesto in cui operano. Se un sistema AI comprende l’architettura del sistema, le dipendenze tra i servizi e gli standard di codifica dell’organizzazione, può generare codice che si allinea molto più strettamente a come funziona effettivamente il sistema.
In questo senso, il contesto sta diventando la prossima frontiera per lo sviluppo AI aziendale.
Il nuovo Enterprise Context Engine di Tabnine mira a fornire agli agenti AI una comprensione strutturata dell’architettura, delle dipendenze e delle pratiche di ingegneria di un’organizzazione. Come questo approccio differisce dai metodi comuni come la generazione aumentata dal recupero che molte aziende attualmente utilizzano?
La generazione aumentata dal recupero è una tecnica utile. Consente ai modelli di recuperare documenti o snippet di codice rilevanti quando si genera una risposta.
Ma il recupero da solo non crea comprensione. Fornisce l’accesso alle informazioni, non alla struttura.
L’Enterprise Context Engine è progettato per andare oltre costruendo una rappresentazione strutturata dell’ambiente software. Analizza repository, servizi, dipendenze, API e relazioni architettoniche e le organizza in un modello di come funziona effettivamente il sistema.
Ciò consente ai sistemi AI di ragionare sulle relazioni tra i componenti piuttosto che semplicemente recuperare pezzi di testo. Per ambienti aziendali complessi, quella distinzione diventa molto importante.
Gli strumenti di codifica AI stanno evolvendo da suggerimenti di completamento a agenti autonomi in grado di eseguire flussi di lavoro multi-step. Come vede cambiare l’equilibrio tra sviluppatori umani e sistemi agentici nei prossimi cinque anni?
Gli agenti AI assumeranno sempre più compiti di sviluppo di routine. Sono già in grado di implementare funzionalità end-to-end, compresi test e documentazione. Ogni sviluppatore diventerà un capo squadra di sviluppatori AI. La principale sfida sarà comunicare i requisiti a questa squadra e verificare che gli artifact generati corrispondano ai requisiti delineati.
Tuttavia, lo sviluppo del software è fondamentalmente una disciplina di risoluzione dei problemi e di progettazione. Gli sviluppatori umani continueranno a definire l’architettura, a prendere decisioni e a guidare la direzione generale dei sistemi.
Ciò che cambierà è il livello di astrazione al quale gli sviluppatori lavorano. Invece di concentrarsi sul codice, gli sviluppatori orchestreranno sempre più flussi di lavoro ad alto livello e collaboreranno con sistemi AI che eseguono parti di quei flussi di lavoro.
In altre parole, il ruolo degli sviluppatori diventa più strategico mentre l’AI gestisce più del lavoro meccanico.
Tabnine ha indicato che gli utenti aziendali possono vedere tassi di accettazione del codice generato dall’AI del 80% in alcuni ambienti. Quali metriche dovrebbero utilizzare le organizzazioni per determinare se gli strumenti di codifica AI stanno effettivamente migliorando la produttività degli sviluppatori piuttosto che semplicemente generare più codice?
La domanda chiave non è quanto codice l’AI genera, ma quanto lavoro utile produce effettivamente.
Esistono diverse metriche che le organizzazioni dovrebbero monitorare. Una è il tasso di accettazione al primo passaggio, che misura con quale frequenza il codice generato dall’AI può essere utilizzato senza modifiche. Un’altra è il tempo del ciclo di revisione – quante iterazioni sono necessarie prima che una richiesta di pull possa essere unita.
Le organizzazioni dovrebbero anche esaminare il tempo degli sviluppatori speso per il lavoro di ritocco, nonché il tempo di lead per le modifiche dallo sviluppo alla produzione.
Se gli strumenti AI stanno effettivamente migliorando la produttività, dovreste vedere miglioramenti in quelle metriche. Gli sviluppatori spendono meno tempo a correggere il codice generato e più tempo a lavorare su compiti ad alto valore.
Le aziende restano caute nell’esporre codice proprietario a modelli esterni. Come il concetto di “Codifica AI Affidabile” affronta le preoccupazioni relative alla governance, alla privacy e alla conformità che hanno rallentato l’adozione aziendale degli strumenti di sviluppo AI?
La fiducia è uno dei fattori più importanti nell’adozione aziendale dell’AI.
La fiducia è la sfida definitiva per realizzare l’ingegnere AI. Come possiamo fidarci dell’ingegnere AI per agire in modo autonomo per completare compiti di ingegneria del software critici? Come possiamo assicurarci che le sue azioni siano allineate con le nostre aspettative per la qualità, la sicurezza e la conformità con le nostre politiche? Se l’ingegnere AI deve essere un membro accettato dei nostri team di ingegneria, deve essere altrettanto affidabile quanto i nostri colleghi ben verificati e opportunamente inseriti.
Per affrontare questa sfida si basa su due pilastri fondamentali:
- Personalizzazione: dotare l’ingegnere AI di una comprensione approfondita della vostra organizzazione, del vostro codice e delle vostre migliori pratiche.
- Controllo: implementare sistemi robusti per assicurarsi che tutto il codice – sia generato dall’AI che scritto dall’uomo – soddisfi gli standard di qualità, sicurezza, prestazioni e affidabilità della vostra organizzazione.
Inoltre, la Codifica AI Affidabile significa dare alle organizzazioni il controllo su come l’AI viene distribuita e assicurarsi di avere una governance e un controllo centralizzati.
Ha suggerito che il contesto organizzativo potrebbe diventare uno strato fondamentale nello stack AI aziendale – simile ai database o all’infrastruttura cloud nelle precedenti ere informatiche. Come si presenta quell’architettura futura?
Se si guarda a come evolve la tecnologia aziendale, spesso vediamo emergere nuovi strati di infrastruttura.
I database sono diventati il fondamento per la gestione dei dati. Le piattaforme cloud sono diventate il fondamento per l’esecuzione di applicazioni su larga scala.
Nell’era dell’AI, le organizzazioni avranno bisogno di un’infrastruttura che consenta ai sistemi AI di comprendere la struttura interna dell’azienda – i suoi sistemi, le relazioni e i vincoli operativi.
Quell’infrastruttura fornisce un contesto strutturato che più sistemi AI possono utilizzare, sia che si tratti di assistenti di codifica, agenti di supporto o strumenti di automazione operativa.
In questo senso, il contesto diventa una base condivisa per l’AI aziendale.
Molte aziende stanno costruendo assistenti di codifica strettamente legati a un singolo modello di base. Tabnine invece consente alle aziende di collegare diversi modelli a seconda delle loro esigenze. Perché la flessibilità del modello è importante per l’evoluzione a lungo termine degli strumenti di sviluppo AI aziendale?
L’ecosistema AI sta evolvendo molto rapidamente. Nuovi modelli vengono rilasciati frequentemente e diversi modelli hanno spesso punti di forza in aree diverse.
Le aziende non dovrebbero dover ridisegnare i loro flussi di lavoro di sviluppo ogni volta che il panorama dei modelli cambia. Consentendo alle organizzazioni di scegliere e passare tra modelli, forniamo flessibilità che aiuta a rendere future-proof la loro strategia AI.
La flessibilità del modello consente inoltre alle organizzazioni di bilanciare le prestazioni, i costi, i requisiti di privacy e le limitazioni di distribuzione.
Nel lungo termine, le aziende opereranno probabilmente in un ambiente multi-modello e le piattaforme di sviluppo dovrebbero essere progettate tenendo conto di quella realtà.
Per i CTO e i leader di ingegneria che valutano le piattaforme di sviluppo AI oggi, quali sono gli errori più grandi che le organizzazioni commettono quando distribuiscono strumenti di codifica AI, e come possono evitarli?
Un errore comune è concentrarsi solo sulla capacità del modello. I modelli più grandi sono sicuramente un componente critico, ma l’affidabilità in ambienti del mondo reale dipende da quanto bene l’AI comprende il sistema all’interno del quale opera.
Un altro errore è distribuire strumenti AI senza considerare i requisiti di governance e sicurezza. Le aziende necessitano di politiche chiare su come il codice viene acceduto, come vengono distribuiti i modelli e come vengono convalidate le uscite.
Infine, le organizzazioni a volte si aspettano che l’AI produca immediati guadagni di produttività senza adattare i flussi di lavoro o fornire un contesto sufficiente. Le distribuzioni di successo di solito coinvolgono l’integrazione dell’AI nei processi di sviluppo esistenti e la connessione all’architettura e al codice dell’organizzazione.
Quando quegli elementi si combinano, l’AI può diventare un potente acceleratore per lo sviluppo del software piuttosto che solo un altro strumento.
Grazie per la grande intervista, i lettori che desiderano saperne di più possono visitare Tabnine.












