IA Generativa: acelerando o desenvolvimento de produtos digitais
Como a Inteligência Artificial, especialmente a IA Generativa, está redefinindo o desenvolvimento de software nas empresas de tecnologia? Desde o fim de 2022, presenciamos um fenômeno marcante com a ascensão do ChatGPT, que capturou a atenção mundial e democratizou a compreensão e a aplicação da IA. Na dti digital lidamos há tempos com demandas complexas que requerem o uso avançado de IA, como previsão de mercado e manutenção preditiva. No entanto, o último ano foi um divisor de águas.
O avanço no poder de processamento e armazenamento, juntamente com a evolução dos algoritmos, impulsionaram modelos avançados de linguagem, como o ChatGPT, que romperam as barreiras tradicionais da tecnologia. Este avanço não apenas popularizou ainda mais o tema, como também sinalizou uma mudança de paradigma. A IA evoluiu de uma ferramenta de decisão de negócios dos nossos clientes para se tornar um componente fundamental em nosso core business — o desenvolvimento de software.
O tema “Desenvolvimento Aumentado por IA” foi apontado pelo Gartner como uma das principais tendências tecnológicas de 2024. Esta tendência reflete uma era em que a IA não apenas apoia, mas acelera cada aspecto do ciclo de entrega de software, abrangendo desde a concepção e o design do produto até o desenvolvimento, testes e implantação. Mas, na prática, como as empresas de tecnologia estão extraindo o máximo potencial dessa inovação?
Sumário
- 1 dti evolve: aperfeiçoando a metodologia de desenvolvimento com IA Generativa
- 2 Acelerando o fluxo de desenvolvimento de software com IA Generativa
- 3 Codificação
- 4 Verificação de código
- 5 Documentação de código
- 6 Adoção de ferramentas de IA Generativa e o impacto na experiência do desenvolvedor
- 7 Potencializando a inovação no desenvolvimento de software com IA Generativa
dti evolve: aperfeiçoando a metodologia de desenvolvimento com IA Generativa
Na dti digital, compreendemos que o verdadeiro valor da inovação tecnológica não reside apenas na adoção de novas ferramentas. Ele está na integração dessas ferramentas com uma metodologia comprovada. Nesse espírito, nasceu o dti evolve, uma evolução da nossa metodologia estabelecida, agora enriquecida com IA.
O dti evolve potencializa o que sempre fizemos bem: a execução precisa e eficiente de projetos de software. Com a adição da IA, essa capacidade é ampliada, permitindo-nos entregar soluções mais rapidamente e com qualidade ainda maior para os nossos clientes, o que está em perfeita sintonia com nossa essência agilista.
Este artigo é o terceiro de uma série que explora como a IA está redefinindo a indústria de software. Após abordar o impacto na concepção e no design de produtos digitais, focaremos agora em como a Inteligência Artificial Generativa está transformando o desenvolvimento de software, expandindo as capacidades de nossos desenvolvedores e redefinindo os métodos tradicionais de criação de tecnologia.
Acelerando o fluxo de desenvolvimento de software com IA Generativa
Os desenvolvedores de software estão frequentemente na vanguarda da adoção de tecnologias disruptivas. Uma pesquisa do Github, de junho de 2023, destacou que 92% dos desenvolvedores já utilizavam ferramentas de IA em algum grau. Esses dados confirmam o papel desses profissionais como pioneiros nessa onda de inovação.
Paralelamente, grandes players do setor tecnológico estão atentos a esse mercado emergente, investindo no desenvolvimento de produtos especializados que aprimoram o processo de codificação. Ferramentas como GitHub Copilot, Google Gemini Code Assist, Amazon CodeWhisperer e Tabnine exemplificam essa tendência. Elas mostram como a Inteligência Artificial está sendo refinada para tornar o desenvolvimento de software mais eficiente e assertivo.
Na dti digital, valorizamos essa inovação, mas também reconhecemos que a automação proporcionada pela IA deve ser complementada por supervisão humana. Enquanto muitas etapas do desenvolvimento podem ser aceleradas por IA, outras exigem julgamento e verificação crítica. Nosso compromisso com as boas práticas e princípios do nosso flow de desenvolvimento assegura a excelência dos nossos entregáveis, combinando a velocidade da inovação tecnológica com indispensável supervisão humana.
Dessa forma, neste artigo, nos concentraremos nas etapas de codificação, verificação de código e documentação de código. Tentaremos demonstrar como a integração da IA está transformando essas práticas dentro do nosso processo de entrega de software. Mas é importante mencionar que, apesar de nossa forte adesão ao Desenvolvimento Guiado por Testes (TDD), detalhes sobre testes de software serão abordados em um artigo subsequente desta série.
Codificação
Caso de uso: geração de código/refatoração de código
Quem já utilizou os autocompletes tradicionais das IDEs sabe que eles já aceleram a codificação de software. No entanto, ferramentas de IA Generativa integradas à IDE dos desenvolvedores elevam essa funcionalidade para outro nível. O Github Copilot, por exemplo, coleta informações do contexto de codificação diretamente da IDE, como o código ao redor do cursor e o conteúdo de abas abertas. Esses dados são usados para construir prompts que ajudam a formular sugestões precisas de código. Este processo inclui uma verificação que filtra conteúdo inadequado e verifica as sugestões contra bugs conhecidos e vulnerabilidades de segurança antes de apresentá-las ao usuário.
Por exemplo, ao começar a escrever um método de autenticação, o Copilot pode automaticamente sugerir o código para verificar se o usuário está logado. Caso não esteja, ele vai redirecioná-lo para a página de login. Outro exemplo prático é quando um desenvolvedor precisa utilizar uma API externa. Ao simplesmente digitar um comentário solicitando uma função para recuperar dados de usuário, o Copilot pode sugerir um bloco de código completo que realiza a chamada à API, incluindo tratamento de erros e transformação de dados. Sempre, é claro, seguindo as melhores práticas de segurança e eficiência.
Refatoração
Além de auxiliar na geração de código, esse tipo de ferramenta também é valioso para a refatoração, já que detecta e sugere melhorias diretas no código existente. Por exemplo, ao detectar um loop complexo que pode ser simplificado usando métodos mais eficientes, o Copilot sugere o código refatorado diretamente na IDE. Isso permite que os desenvolvedores vejam instantaneamente uma alternativa melhor e mais limpa.
Essa ferramenta não só melhora a clareza do código, mas também elimina code smells e duplicidades. Nossos desenvolvedores têm apreciado particularmente a integração desse tipo ferramenta na IDE, pois permite interagir com a IA sem a necessidade de trocar de contexto, o que melhora significativamente o fluxo de desenvolvimento. De acordo com uma pesquisa da McKinsey, o uso de ferramentas de IA como o Github Copilot pode reduzir o tempo de codificação e refatoração em até 45%. Isso demonstra a eficácia dessas soluções em aumentar a produtividade.
Caso de uso: migração de linguagem de um sistema
Aqui, na dti digital, frequentemente enfrentamos a tarefa de modernizar sistemas legados para nossos clientes, que buscam melhorias em escalabilidade, segurança ou manutenção. Nesse contexto, a migração de sistemas de uma linguagem para outra é uma prática comum, especialmente quando o foco é apenas atualizar a tecnologia sem expandir funcionalidades.
Para facilitar essas migrações, temos utilizado ferramentas de IA, como o GitHub Copilot. Eles nos ajudam a traduzir sistemas entre linguagens de programação de forma mais rápida e precisa. Por exemplo, estamos utilizando recentemente o Copilot na migração de um sistema de Adobe Coldfusion para Java 17 Micronaut. Apesar de uma migração completa depender de vários fatores, como code guides dos nossos clientes ou bibliotecas internas, o uso de ferramentas de IA nos permite iniciar o processo mais facilmente.
Além disso, entendemos também que as melhores práticas para a migração de código incluem a implementação de um estrangulamento das funcionalidades ou domínios, apoiado por testes automatizados que asseguram o funcionamento correto do novo sistema. Portanto, o uso dessas ferramentas de IA não só agiliza o processo, mas também aumenta a qualidade e a segurança da migração. Dessa forma, reduzimos os erros humanos durante a análise e conversão do código-fonte, ao mesmo tempo que preservamos sua lógica e funcionalidades originais.
Caso de uso: tradução de idioma de um sistema
Recentemente, enfrentamos o desafio de preparar um sistema para lançamento em mercados internacionais. O cliente precisava adaptar seu sistema, originalmente em inglês, para cinco línguas adicionais, com a intenção de expandir rapidamente seu alcance sem comprometer a qualidade ou a segurança dos dados.
Para isso, utilizamos uma plataforma de assistentes de IA, acessível através de nossa associação ao grupo WPP, para realizar essa tradução. Tradicionalmente, uma tarefa dessa magnitude exigiria muitas horas de trabalho manual. No entanto, com o suporte dessa tecnologia, completamos a tradução dos arquivos de recursos em apenas alguns minutos.
Isso não só acelerou o processo de expansão do sistema como também assegurou a precisão das traduções. Assim sendo, atendemos às expectativas dos usuários em diversas regiões. Este caso destaca como a integração de ferramentas de IA pode superar barreiras significativas, facilitando uma rápida e eficaz expansão global de sistemas digitais.
Verificação de código
Caso de uso: revisão de código de acordo com codeguide
Na dti digital, estamos dando mais celeridade às revisões de código integrando ferramentas de IA para aprimorar o processo. Entendemos que essa etapa ainda requer supervisão humana, mas com utilização de IA, já conseguimos reduzir o esforço requerido. Isso provoca uma diminuição no tempo gasto nessa etapa, que é crucial para a velocidade e performance do time de desenvolvimento, conforme indicado por estudos do DORA.
Atualmente, testamos duas abordagens: uma com Azure AI e extensões do Azure Boards, e outra utilizando o GitHub Copilot. Na primeira, incorporamos um revisor de IA Generativa diretamente no processo de pull request. Vimos algumas limitações nessa abordagem na adequação às necessidades específicas de cada time, já que a configuração padrão pode gerar um volume excessivo de comentários, principalmente devido à impossibilidade de enviar prompts customizados e pelo número de arquivos modificados envolvidos.
Por outro lado, com o GitHub Copilot, utilizamos sua funcionalidade de chat para inserir o codeguide por meio de prompts. Isso nos permite obter sugestões mais alinhadas aos padrões de codificação definidos, abordando aspectos como estrutura do código, nomeação de métodos e variáveis, entre outros. Esta técnica não só garante a aderência aos padrões estabelecidos, mas também reduz o tempo de revisão, pois permite que o desenvolvedor da história já ajuste seu código conforme as orientações, antes da revisão final pela liderança técnica.
Documentação de código
Caso de uso: explicação e documentação técnica de código
Ferramentas de IA Generativa, como o GitHub Copilot, são extremamente úteis durante o onboarding de novos membros da equipe, pois ajudam a decifrar rapidamente as regras e lógicas embutidas no sistema. Especialmente aqui na dti digital, onde lidamos com uma ampla gama de sistemas e tecnologias, esse tipo de ferramenta se mostra bastante eficaz. Um novo desenvolvedor, por exemplo, pode se deparar com linguagens ou códigos desconhecidos; nesses casos, o Copilot oferece explicações detalhadas sobre cada segmento do código, esclarecendo as funcionalidades de negócio.
Além disso, ao implementar novas funcionalidades, o Copilot pode ser usado para gerar automaticamente a documentação técnica necessária, detalhando as modificações e assegurando que a implementação está alinhada aos requisitos iniciais. Este processo não só mantém a documentação atualizada, mas também serve como uma ferramenta de validação prática para garantir a conformidade do código com as especificações.
Caso de uso: documentação de variáveis no PBI
Entendemos a importância das boas práticas de engenharia de software, inclusive em equipes de dados e analytics. Uma dessas práticas é a documentação detalhada de variáveis em plataformas como o PowerBI, importante para a clareza e manutenção futura dos relatórios.
Inicialmente, experimentamos usar o Copilot do BI para agilizar esse processo, mas encontramos limitações em sua funcionalidade e relação custo-benefício. Desde então, começamos a ver melhorias na velocidade de desenvolvimento ao utilizar novas ferramentas de IA, que estão otimizando a documentação de variáveis e facilitando a manutenção dos relatórios. Comentar as medidas em relatórios de dados é uma tarefa demorada, e a automação desse processo trouxe ganhos consideráveis de eficiência para nossas equipes de dados e analytics, embora ainda estejamos avaliando os impactos a longo prazo.
Adoção de ferramentas de IA Generativa e o impacto na experiência do desenvolvedor
A adoção de ferramentas de IA Generativa tem transformado a experiência dos desenvolvedores de software, impactando positivamente na sua satisfação e eficiência no trabalho. Segundo uma pesquisa da McKinsey, a introdução dessas tecnologias contribui significativamente para a redução de tarefas repetitivas, permitindo aos desenvolvedores focar em desafios mais criativos e complexos. Isso não apenas eleva a satisfação pessoal, com muitos relatando maior contentamento, mas também melhora a capacidade de concentração em tarefas valorizadas, essenciais para o avanço na carreira e inovação. Além disso, muitos desenvolvedores experienciam um aumento no “estado de fluxo”, uma condição de imersão profunda que promove alta produtividade e qualidade no trabalho.
Aqui na dti, observamos esses benefícios na prática, monitorando de perto como a adoção de IA afeta a sensação de produtividade e satisfação dos desenvolvedores. Podemos dizer que a maioria deles valoriza profundamente essas ferramentas e não deseja deixar de utilizá-las no dia a dia.
Potencializando a inovação no desenvolvimento de software com IA Generativa
Neste artigo, exploramos como a IA Generativa está revolucionando o desenvolvimento de software, não apenas acelerando os processos, mas também melhorando a qualidade do que entregamos. Com exemplos concretos, demonstramos o potencial das ferramentas de IA para otimizar desde a codificação até a documentação, e como isso impacta positivamente a satisfação e eficiência dos desenvolvedores.
No dti evolve, compreendemos que a verdadeira inovação emerge da combinação entre novas tecnologias e a expertise humana. Nossos esforços para integrar IA de forma responsável, respeitando rigorosos padrões de segurança e privacidade, refletem nosso compromisso com a excelência. Por meio do apoio do grupo WPP, continuamos a avaliar e aprimorar o uso dessas ferramentas, garantindo que cada aplicação seja segura e eficaz.
À medida que avançamos, estamos certos de que a experimentação e o aprendizado contínuo serão cruciais. As empresas e equipes que conseguem equilibrar a autonomia para experimentar com processos sólidos de trabalho capturarão o valor prometido pela IA Generativa e liderarão esta nova era de inovação tecnológica. Convidamos todos que compartilham desse entusiasmo pela inovação a nos acompanhar nesta jornada transformadora!
Escrito por Fernanda Vieira, Head de Engenharia na dti digital
Inteligência Artificial
Confira outros artigos
Testes end-to-end: sucesso na implementação da automação
Hoje, como você garante a entrega de valor, a confiabilidade e a eficiência do seu projeto? Com o intuito de responder a essa questão crucial, uma das melhores respostas é a automação de testes end-to-end. Muitas pessoas, principalmente nossos clientes, tendem a imaginar que automação de testes é apenas mais um tipo de teste de […]
Inteligência Artificial
Inteligência Conversacional: conecte-se com seus clientes!
Em um mundo cada vez mais digital, a capacidade de se conectar com os clientes de forma personalizada e eficiente é crucial para o sucesso de qualquer negócio. Dessa forma, a Inteligência Conversacional surge como uma poderosa ferramenta para alcançar esse objetivo, revolucionando a forma como as empresas interagem com seu público e otimizam suas […]
Inteligência Artificial
Cibersegurança: Como a inteligência artificial muda a forma de fazer segurança?
Cibersegurança, um tema para ficarmos atentos! Abri o chat e digitei: “IA, em uma escala de zero a dez, sendo zero absolutamente nenhum conhecimento, e dez todo o conhecimento da humanidade combinado, quanto você diria que é o seu conhecimento em segurança da informação?” – Perguntei, inocente. “Eu sou treinado em uma grande quantidade de […]
Inteligência Artificial