Na semana passada, o CEO do MongoDB, Dev Ittycheria, comparou a IA atual à “fase dial-up da era da Internet”. Ele não está errado. Recentemente sugeri que estamos na “fase estranha da criança” da IA generativa (genAI). É cheio de emoção (“seu primeiro passo!”), mas tarefas simples são desajeitadas, como matemática básica. No entanto, em algumas áreas, o futuro da IA generativa está a acontecer neste momento. Uma área são os assistentes de codificação, como o Amazon CodeWhisperer.
Claro, você já ouviu histórias anedóticas de que alguém criou um aplicativo bancário complexo para seu banco Fortune 100 em dois minutos com um prompt de comando, mas esse tipo de exagero não ajuda ninguém. O que os verdadeiros desenvolvedores estão fazendo hoje usar genAI para melhorar sua produtividade?
Essa é a pergunta que fiz a Doug Seven, gerente geral do Amazon CodeWhisperer e diretor de desenvolvimento de software do Amazon Q, na AWS. Como diz Seven, os desenvolvedores em qualquer estágio de suas carreiras podem (e definitivamente fazem) fazer bom uso da IA generativa hoje. A chave para a AWS é permitir que os desenvolvedores se concentrem mais em seu código e menos em todos os chavões que infectam o cenário de IA.
O efeito Amazônia
Primeiro, o que exatamente ferramentas como CodeWhisperer e Amazon Q (um assistente de chatbot com tecnologia genAI) fazem? Basicamente, o CodeWhisperer auxilia no processo de desenvolvimento de software, oferecendo sugestões de codificação contextual. À medida que um desenvolvedor adiciona comentários ao código, o CodeWhisperer infere desses comentários o que o desenvolvedor está fazendo e dá sugestões de código. CodeWhisperer também pode escanear código para detectar vulnerabilidades de segurança, informá-lo sobre elas e, em seguida, corrigi-las.
No ano passado, desde o CodeWhisperer da AWS GA, a empresa adicionou a capacidade de ajustar essas sugestões de codificação com personalizações. Por exemplo, uma empresa pode apontar o CodeWhisperer para suas estruturas internas, bibliotecas privadas ou até mesmo apenas convenções de codificação, e o CodeWhisperer refletirá essas convenções e preferências corporativas. “Você obtém um código mais parecido com o seu código, em vez de um código de uso geral”, como explica Seven.
O Amazon Q, por sua vez, atua como assistente. Precisa de algum código explicado para você? Pergunte P. Precisa do mesmo código refatorado ou depurado? Pergunte a Q. Com Q, um desenvolvedor pode continuar codificando enquanto Q sai correndo para fazer “tarefas”.
Tudo bem e interessante. Na verdade, “todo mundo está fazendo isso” hoje em dia: GitHub Copilot, Google Codey, ChatGPT e muito mais. Mas algo parece diferente na abordagem da AWS – algo muito amazônico.
Não apenas para serviços AWS
Desde o seu início, a AWS sempre se esforçou para aliviar o “trabalho pesado indiferenciado” que os desenvolvedores devem fazer para montar servidores, gerenciar bancos de dados e muito mais. A abordagem da empresa em relação à IA generativa é praticamente a mesma. O mercado está hipersaturado com o hype da IA, tornando difícil separar o sinal do ruído, como escrevi recentemente. Perguntei a Seven como a AWS pretende ajudar com esse problema. Ele respondeu: “Um dos benefícios do CodeWhisperer é que abstraímos toda essa ciência generativa de IA”.
Em outras palavras, os desenvolvedores não precisam se preocupar com grandes modelos de linguagem (LLMs), geração aumentada de recuperação (RAG) ou o que quer que esteja sendo lançado hoje. CodeWhisperer os ajuda a escrever código de forma mais produtiva, sem se preocupar com os modelos em execução nos bastidores. Esta é uma ótima notícia para os desenvolvedores. Eles podem, por exemplo, perceber que precisam refinar o treinamento de seu assistente de codificação para obter melhores resultados, mas não têm ideia de como conseguir isso por outros meios. Seven diz que a AWS deseja que o CodeWhisperer e as ferramentas associadas tornem isso “relativamente pronto para uso para você. Portanto, você pode simplesmente dizer ‘aqui estão meus repositórios, faça o que quiser’ e então (a AWS) usará uma variedade de técnicas nos bastidores.”
A AWS também não está se concentrando em seus próprios serviços para CodeWhisperer, embora, é claro, a empresa almeje uma experiência de primeira classe com seus serviços primários, como Aurora para MySQL. Como diz Seven: “Um dos… princípios (para) CodeWhisperer é que devemos ser capazes de ajudar os desenvolvedores a fazer o que quer que estejam fazendo”. Isso significa ajudar os desenvolvedores que podem executar serviços em diferentes nuvens (ou no local). “Não queremos restringir o CodeWhisperer a ser bom apenas em AWS (serviços). Queremos tornar bom tudo o que um engenheiro de software está tentando fazer”, declara.
O GitHub Copilot ou outros assistentes de codificação de terceiros funcionarão melhor com os serviços da AWS do que com o CodeWhisperer? Não se a AWS puder ajudar. “Trabalhamos muito para garantir que somos melhores em fazer coisas da AWS do que qualquer outra pessoa”, diz Seven.
Codificando com CodeWhisperer
Como um desenvolvedor deve começar? Apesar de todos os esforços da AWS para “abstrair a ciência de dados”, para usar as palavras de Seven, “às vezes pode haver uma curva de aprendizado em termos de como você se expressa” para fazer com que o CodeWhisperer (ou qualquer uma dessas ferramentas genAI) produza os resultados que você deseja. querer. Ainda assim, “é muito rápido começar e você aprende à medida que avança”, continua ele.
Isso vale quer o desenvolvedor que usa o CodeWhisperer seja experiente ou novo na área.
Seven diz que a empresa enfrentou um desafio interno de produtividade e os participantes que usaram o CodeWhisperer tiveram 27% mais chances de concluir um conjunto de tarefas com êxito. Melhor ainda, eles fizeram isso 57% mais rápido do que aqueles que não usaram o CodeWhisperer. Isso era verdade independentemente do nível de experiência.
Por que? Um desenvolvedor pode não estar familiarizado com um SDK específico e as sugestões de código do CodeWhisperer ajudaram a guiar o desenvolvedor além do obstáculo sem ter que ler lentamente a documentação. Para desenvolvedores experientes que já sabem o que estão fazendo, o CodeWhisperer ajuda a suavizar problemas de velocidade como esse para trabalhar mais rápido, ao mesmo tempo que permite que eles analisem o código clichê com muito mais rapidez. Para o desenvolvedor menos experiente, o CodeWhisperer fornece sugestões de código que os impedem de travar. Como diz Seven: “Eles conseguem receber sugestões que os ajudam a descobrir para onde estão indo e acabam tendo que interromper outras pessoas (por exemplo, para pedir ajuda) com menos frequência”. Todo mundo ganha.
Indo além da era das ferramentas de IA
Seven diz que vê abordagens de baixo para cima (um desenvolvedor ou equipe tem sucesso e espalha a palavra) e abordagens de cima para baixo (mandato executivo) para adoção. O que ele não está vendo é qualquer tipo de desaceleração na inovação generativa da IA.
Hoje usamos coisas como CodeWhisper quase como ferramentas – como uma calculadora, sugere ele. Mas daqui a alguns anos, continua ele, veremos mais “uma parceria entre uma equipe de engenharia de software e a IA que está integrada em todas as partes do ciclo de vida de desenvolvimento de software”. Neste futuro próximo, “os seres humanos começam a assumir um papel mais (de diretor)…, fornecendo as ideias e a direção para fazer as coisas e a supervisão para garantir que o que está voltando para nós é o que esperávamos ou o que queríamos. .”
Por mais emocionante que o futuro prometa ser para os desenvolvedores, o presente também é muito bom. Desenvolvedores de qualquer nível de experiência podem se beneficiar de ferramentas como o Amazon CodeWhisperer. A forma como os desenvolvedores os utilizam varia de acordo com seu nível de experiência, mas se eles devem usá-los é uma questão resolvida, e a resposta é sim.