Entrevistas
Professor Eran Yahav, cofundador e co-CEO da Tabnine – Série de entrevistas

Professor Eran YahavCofundador e co-CEO da Tabnine, ele é professor de ciência da computação no Technion – Instituto de Tecnologia de Israel, onde sua pesquisa se concentra em linguagens de programação, aprendizado de máquina e engenharia de software, particularmente síntese de programas e análise de código em larga escala. Paralelamente ao seu trabalho acadêmico, ele cofundou a Tabnine (originalmente Codota) para aplicar anos de pesquisa em ferramentas práticas para desenvolvedores, ajudando a pioneirar a conclusão e automação de código orientadas por IA. Seu trabalho une a academia e a indústria, com foco em tornar o código gerado por IA mais confiável, seguro e contextualizado para ambientes corporativos reais.
Tabino Tabnine é uma plataforma de codificação com inteligência artificial projetada para auxiliar desenvolvedores em todo o ciclo de vida do desenvolvimento de software, desde a escrita e depuração de código até a geração de testes e documentação. Originalmente lançada como uma ferramenta de autocompletar código, evoluiu para uma plataforma mais abrangente voltada para empresas, que integra IA generativa e fluxos de trabalho baseados em agentes, permitindo que as equipes automatizem tarefas complexas de desenvolvimento, mantendo um forte controle sobre privacidade, segurança e conformidade. Com suporte para dezenas de linguagens de programação e integrações com as principais IDEs, a Tabnine visa melhorar a produtividade dos desenvolvedores, garantindo que o código gerado por IA permaneça confiável e alinhado aos padrões organizacionais.
Você passou anos pesquisando análise e síntese de programas no Technion e trabalhou anteriormente na IBM Research. Que problema no desenvolvimento de software o convenceu a cofundar a Tabnine, e como sua pesquisa acadêmica moldou a visão original da empresa?
Meu trabalho acadêmico focou em análise e síntese de programas, que essencialmente consiste em ensinar máquinas a entender e gerar código. Fiz meu doutorado em Análise de Programas, e foi também nessa área que passei meus primeiros anos de pesquisa aplicada. Abordar problemas de qualidade de software com análise de programas deixou claro que alguns problemas são muito difíceis de resolver depois que o programa é escrito incorretamente. Prevenir é melhor que remediar, como diz o ditado. Isso me convenceu de que a maneira correta de abordar a qualidade de software é por meio da Síntese de Programas, área na qual investi a maior parte do meu tempo e energia em pesquisa.
Inicialmente, trabalhei com síntese de programas concorrentes, tentando automatizar a criação de programas concorrentes a partir de programas sequenciais. Depois, passei a trabalhar com uma síntese de programas de aplicação mais geral, utilizando aprendizado de máquina.
A síntese de programas usando aprendizado de máquina também foi a ideia fundamental por trás do Tabnine. A ideia, que agora parece óbvia, era que os modelos poderiam aprender padrões de codificação diretamente de grandes conjuntos de código e auxiliar os desenvolvedores em tempo real. Essa ideia geral é aplicável em todas as etapas do ciclo de vida do desenvolvimento de software – da criação do código à revisão, à implantação e além.
A visão sempre foi aprimorar o trabalho do desenvolvedor humano, fornecendo ferramentas que acelerassem o processo de desenvolvimento e eliminassem atritos. O desenvolvimento de software é uma disciplina criativa e de resolução de problemas, e o objetivo era que a IA removesse os atritos do processo, lidando com tarefas rotineiras e ajudando os desenvolvedores a manterem o fluxo de trabalho. Essa visão ainda nos guia hoje, embora a tecnologia tenha evoluído significativamente desde aqueles primeiros tempos.
A Tabnine foi pioneira em assistentes de codificação com IA anos antes da IA generativa se popularizar com ferramentas como os modelos da OpenAI. Olhando para trás, como o papel da IA no desenvolvimento de software evoluiu desde aqueles primórdios, e quais lições a indústria aprendeu com a primeira onda de copilotos de codificação?
A primeira geração de assistentes de codificação com IA focava principalmente na previsão. Eram essencialmente sistemas avançados de autocompletar que ajudavam os desenvolvedores a escrever código mais rapidamente, prevendo a próxima linha ou função.
O que mudou com os loops de agentes é que a IA agora pode lidar com tarefas com maior autonomia, a ponto de podermos considerar os agentes (com a orientação adequada) como desenvolvedores juniores independentes.
Mas isso também ensinou uma lição importante para o setor. A capacidade bruta do modelo não é suficiente para o desenvolvimento de software empresarial. Modelos treinados com dados públicos podem produzir resultados impressionantes, mas muitas vezes não levam em consideração a arquitetura, as dependências e as convenções de uma organização.
É por isso que o próximo estágio da evolução não se trata apenas de modelos maiores ou janelas de contexto mais amplas, mas sim de conectar esses modelos ao contexto real em que o software é construído.
Muitas empresas estão descobrindo que escalar agentes de IA exige mais do que modelos maiores — exige um contexto organizacional mais profundo. Por que você acredita que o contexto está se tornando a verdadeira fronteira para o desenvolvimento confiável orientado por IA?
Os sistemas de software são redes complexas de relações. Uma única alteração pode afetar vários serviços, APIs ou componentes subsequentes.
Os modelos de IA atuais são muito bons em gerar código plausível, mas frequentemente operam sem uma compreensão estruturada dessas relações. Sem essa compreensão, a IA não consegue raciocinar de forma confiável sobre as consequências de uma mudança.
O que as empresas estão descobrindo é que a confiabilidade dos sistemas de IA depende da qualidade do contexto em que operam. Se um sistema de IA compreende a arquitetura do sistema, as dependências entre os serviços e os padrões de codificação da organização, ele pode gerar um código que se alinha muito mais com o funcionamento real do sistema.
Nesse sentido, o contexto está se tornando a próxima fronteira para o desenvolvimento de IA empresarial.
Seu novo mecanismo de contexto empresarial visa fornecer aos agentes de IA uma compreensão estruturada da arquitetura, das dependências e das práticas de engenharia de uma organização. Como essa abordagem difere de métodos comuns, como a geração aumentada por recuperação, que muitas empresas utilizam atualmente?
A geração aumentada por recuperação de informações é uma técnica útil. Ela permite que os modelos busquem documentos ou trechos de código relevantes ao gerar uma resposta.
Mas a recuperação da informação por si só não gera compreensão. Ela proporciona acesso à informação, não à estrutura.
O Enterprise Context Engine foi projetado para ir além, construindo uma representação estruturada do ambiente de software. Ele analisa repositórios, serviços, dependências, APIs e relações arquitetônicas, organizando-os em um modelo de como o sistema realmente funciona.
Isso permite que os sistemas de IA raciocinem sobre as relações entre os componentes, em vez de apenas recuperar trechos de texto. Para ambientes empresariais complexos, essa distinção torna-se muito importante.
As ferramentas de programação com IA estão evoluindo de sugestões de autocompletar para agentes autônomos capazes de executar fluxos de trabalho com várias etapas. Como você vê o equilíbrio entre desenvolvedores humanos e sistemas com agentes se transformando nos próximos cinco anos?
Os agentes de IA assumirão cada vez mais tarefas rotineiras de desenvolvimento. Eles já são capazes de implementar funcionalidades de ponta a ponta, incluindo testes e documentação. Cada desenvolvedor se tornará um líder de equipe de desenvolvedores de IA. O principal desafio será comunicar os requisitos a essa equipe e verificar se os artefatos gerados correspondem aos requisitos definidos.
No entanto, o desenvolvimento de software é fundamentalmente sobre resolução de problemas e design. Os desenvolvedores humanos continuarão a definir a arquitetura, a fazer concessões e a orientar a direção geral dos sistemas.
O que vai mudar é o nível de abstração em que os desenvolvedores trabalham. Em vez de se concentrarem no código, os desenvolvedores irão orquestrar cada vez mais fluxos de trabalho de nível superior e colaborar com sistemas de IA que executam partes desses fluxos de trabalho.
Em outras palavras, o papel dos desenvolvedores torna-se mais estratégico à medida que a IA assume uma parcela maior do trabalho mecânico.
A Tabnine indicou que usuários corporativos podem observar taxas de aceitação de código gerado por IA em torno de 80% em alguns ambientes. Quais métricas as organizações devem usar para determinar se as ferramentas de codificação com IA estão realmente melhorando a produtividade dos desenvolvedores, em vez de simplesmente gerar mais código?
A questão fundamental não é a quantidade de código que a IA gera, mas sim a quantidade de trabalho útil que ela realmente produz.
Existem diversas métricas que as organizações devem acompanhar. Uma delas é a taxa de aceitação na primeira tentativa, que mede a frequência com que o código gerado por IA pode ser usado sem modificações. Outra é o tempo do ciclo de revisão — quantas iterações são necessárias antes que uma solicitação de pull request possa ser aceita.
As organizações também devem analisar o tempo que os desenvolvedores gastam com retrabalho, bem como o tempo de espera para que as alterações entrem em produção.
Se as ferramentas de IA realmente melhoram a produtividade, você deve observar melhorias em todas essas métricas. Os desenvolvedores gastam menos tempo corrigindo o código gerado e mais tempo trabalhando em tarefas de maior valor agregado.
As empresas continuam cautelosas em relação à exposição de código proprietário a modelos externos. Como o conceito de "Codificação de IA Confiável" aborda as preocupações com governança, privacidade e conformidade que têm retardado a adoção de ferramentas de desenvolvimento de IA pelas empresas?
A confiança é um dos fatores mais importantes na adoção da IA pelas empresas.
A confiança é o maior desafio para a implementação do engenheiro de IA. Como podemos confiar que o engenheiro de IA agirá de forma autônoma para concluir tarefas críticas de engenharia de software? Como podemos garantir que suas ações estejam alinhadas com nossas expectativas de qualidade, segurança e conformidade com nossas políticas? Para que o engenheiro de IA seja um membro aceito em nossas equipes de engenharia, ele precisa ser tão confiável quanto nossos colegas de equipe, que são bem avaliados e devidamente integrados.
Para enfrentar esse desafio, é fundamental contar com dois pilares essenciais:
- personalização: Capacitar o engenheiro de IA com um conhecimento profundo da sua organização, base de código e melhores práticas.
- ControlarImplementar sistemas robustos para garantir que todo o código — tanto o gerado por IA quanto o escrito por humanos — atenda aos padrões de qualidade, segurança, desempenho e confiabilidade da sua organização.
Além disso, a Codificação de IA Confiável significa dar às organizações o controle sobre como a IA é implementada e garantir governança e controle centralizados.
Você sugeriu que o contexto organizacional pode se tornar uma camada fundamental na arquitetura de IA empresarial — semelhante a bancos de dados ou infraestrutura em nuvem em eras da computação anteriores. Como será essa arquitetura futura?
Ao analisarmos a evolução da tecnologia empresarial, frequentemente observamos o surgimento de novas camadas de infraestrutura.
Os bancos de dados se tornaram a base para o gerenciamento de dados. As plataformas em nuvem se tornaram a base para a execução de aplicativos em escala.
Na era da IA, as organizações precisarão de infraestrutura que permita aos sistemas de IA compreender a estrutura interna da empresa — seus sistemas, relacionamentos e restrições operacionais.
Essa camada de infraestrutura fornecerá um contexto estruturado que vários sistemas de IA poderão usar, sejam eles assistentes de programação, agentes de suporte ou ferramentas de automação operacional.
Nesse sentido, o contexto se torna uma base comum para a IA empresarial.
Muitas empresas estão criando assistentes de codificação fortemente acoplados a um único modelo básico. O Tabnine, por sua vez, permite que as empresas conectem diferentes modelos de acordo com suas necessidades. Por que a flexibilidade de modelos é importante para a evolução a longo prazo das ferramentas de desenvolvimento de IA empresarial?
O ecossistema de IA está evoluindo muito rapidamente. Novos modelos são lançados com frequência, e diferentes modelos geralmente têm pontos fortes em áreas distintas.
As empresas não deveriam ter que redesenhar seus fluxos de trabalho de desenvolvimento sempre que o cenário de modelos muda. Ao permitir que as organizações escolham e alternem entre modelos, oferecemos flexibilidade que ajuda a preparar sua estratégia de IA para o futuro.
A flexibilidade do modelo também permite que as organizações equilibrem desempenho, custo, requisitos de privacidade e restrições de implantação.
A longo prazo, é provável que as empresas operem em um ambiente multimodelo, e as plataformas de desenvolvimento devem ser projetadas levando-se em conta essa realidade.
Para os diretores de tecnologia (CTOs) e líderes de engenharia que avaliam plataformas de desenvolvimento de IA atualmente, quais são os maiores erros que as organizações cometem ao implementar ferramentas de codificação de IA e como podem evitá-los?
Um erro comum é focar apenas na capacidade do modelo. Modelos maiores são, sem dúvida, um componente crítico, mas a confiabilidade em ambientes do mundo real depende de quão bem a IA entende o sistema em que opera.
Outro erro comum é implementar ferramentas de IA sem considerar os requisitos de governança e segurança. As empresas precisam de políticas claras sobre como o código é acessado, como os modelos são implementados e como os resultados são validados.
Por fim, as organizações às vezes esperam que a IA proporcione ganhos de produtividade imediatos sem adaptar os fluxos de trabalho ou fornecer contexto suficiente. Implementações bem-sucedidas geralmente envolvem a integração da IA aos processos de desenvolvimento existentes e sua conexão ao código e à arquitetura da organização.
Quando esses elementos se unem, a IA pode se tornar um poderoso acelerador para o desenvolvimento de software, em vez de apenas mais uma ferramenta.
Obrigado pela ótima entrevista, os leitores que desejam saber mais devem visitar Tabino.












