O Impacto da AI no Desenvolvimento de Software

Mar 29, 2023 | min leitura
By

Marcos Fernandes

Não consigo me recordar em toda minha carreira de um movimento de tanto barulho quanto o que vem fazendo a evolução dos modelos de LLM (Large Language Model), muito materializados no trabalho disponibilizado pela OpenAI, através de ferramentas muito simples de materializar o poder computacional por trás de toda a teoria, tais como o DALL-E e o ChatGPT, ambas baseadas no GPT-3 e GPT-4, modelos treinados com um massivo volume de conteúdo.

Mas saindo um pouco do teoria dos bastidores e do impacto que isso vai trazer para todas as áreas, quero falar um pouco do que está sendo gerado na área de tecnologia, especificamente no desenvolvimento de software.

Quando olhamos para essa área, talvez a gente esteja vivendo um hype similar em termos de mudança na área, mas talvez com potencial muito maior do que a agenda de DevOps. Lembro de quando li o Phoenix Project e todos os outros materiais e evoluções surgindo e como isso mudou a forma como conectamos infraestrutura e desenvolvimento, criando mais agilidade além de todas outras evoluções.

Agora temos um oceano de oportunidades, mas diferente da era do DevOps onde o caminho estava de certa forma traçado com "o que" e até o "como" fazer, aqui a gente precisa explorar o potencial que temos agora em mãos e achar as oportunidades, testar e aprender o mais rápido possível. Algumas delas já estão materializadas, outras ainda no campo das ideias e com grandes expectativas.

O que vou citar são algumas observações do que já vem acontecendo e algumas apostas pessoais que acredito que muito em breve veremos, assim como desafios e oportunidades.

Assistentes de Codificação

Aqui estamos falando de uma realidade, já tive a oportunidade de acompanhar experimentos de perto e ver resultados práticos da aplicação. O uso de assistentes de codificação tem trazido um grande potencial de evolução, sua capacidade de aprender com o código em desenvolvimento, entender o contexto e usar uma base ampla de outros códigos para gerar conhecimento, traz muito diferencial para um desenvolvedor, acelerando muito principalmente em tarefas e códigos repetitivos.

O GitHub inclusive escreveu um artigo mostrando resultados na produtividade e felicidade de desenvolvedores utilizando o Copilot, recomendo a leitura.

E se você ainda não adotou, vale correr atrás do tempo perdido e começar a usar o Copilot ou ferramentas similares para validar os resultados em seu contexto.

Inclusive, para quem quiser dar uma olhada no que vem pela frente o GitHub está preparando o lançamento do Copilot X.

O fim do shift left

Essa é uma das apostas pragmáticas que eu tenho e para as quais já venho realizando alguns testes. Um dos grandes pontos do DevOps e de outras práticas Lean sempre falaram sobre o shift left, ou seja, antecipar os ciclos de feedback para que ocorram o mais perto de quem é responsável por resolver aquela falha. No desenvolvimento de software, era muito ligado a pipelines que antecipavam a análise e erros de codificação, análise de segurança, execução de testes automatizados (unitários, de integração, E2E, etc). Quando passamos a ter uma base de conhecimento estruturada capaz de realizar codificações, creio que podemos deixar de pensar em fluxos shift left, e pensar no FORWARD ONLY. Ou seja, uma vez que se identifique uma falha, que seja corrigida pela própria AI, devolvendo o feedback ao time mas sem parar a esteira.

Correções de análises estáticas de código (SAST): Uma vez que a análise identifica os gaps e propõe correções, realizar a devolutiva para uma AI que aplique as correções pode ser algo prático e pouco distante. Em alguns testes com ferramentas de Generative AI eu pude validar esse ponto desde cenários mais simples como padronização, até alguns mais complexos como modularização do código.

Correções de testes automatizados: Em cenários que o código está devidamente estruturado, ferramentas como ChatGPT tem se mostrado inteligentes na construção de alguns testes automatizados. Muitas vezes, nos ciclos de desenvolvimento existe uma falta de completude de testes e até testes desnecessários que mais geram complexidade do que valor, aqui é outra oportunidade de acelerar o conceito do forward only, podendo ser aplicada tanto na aceleração do desenvolvedor, como somar com feedbacks e ferramentas de monitoria para evoluir a stack de forma automática, propondo novos testes com frequência.

Demais correções: Podemos citar várias outras, como corrigir arquivos de configuração, infraestrutura como código de ambientes e outras, mas o potencial de ter uma AI treinada com capacidade de geração de código, abre a possibilidade de encerrar essa fase do shift left.

Produtividade além do assistente de codificação

Além dos pontos já citados, recomendo o uso do ChatGPT e similares como uma ferramenta que te ajuda como um par no seu dia-a-dia e te auxilia com tarefas triviais, encurtando o tempo gasto em pesquisas, construção e validação de informações.

Claro que há muitas ressalvas, já que o modelo (dada toda a complexidade) não está atualizado constantemente e não deve ser usado como fonte de verdade, mas pode antecipar e acelerar muitas coisas, desde trocas sobre melhores formas de construir algo, desde ajudando na construção de testes ou até auxiliando a entender desafios do contexto em que estamos trabalhando que podemos levar em consideração.

Desafios e Oportunidades na Era da Inteligência Artificial

Como nem tudo é simples e prático, existem alguns desafios com o uso não adequado da AI e também oportunidades a serem exploradas que listarei abaixo.

Desafios:
- Como manter a qualidade de formação das pessoas, uma vez que a AI está construindo boa parte do trabalho?
- Como ensinar as pessoas a extrair o melhor das ferramentas, pois vai além de consumir, mas saber solicitar de forma clara?
- Essas inteligências se baseiam em aprendizado e consumo de conteúdo, como garantir que seguimos evoluindo e inovando inclusive no trivial, se o conteúdo sair sempre de uma única fonte que não se renova?
- Como trazer o seu diferencial para a ferramenta, somando competências humanas e da inteligência, gerando valor diferenciado e acelerado?

Oportunidades:
- O hype gerado pelo ChatGPT abriu um caminho fértil não apenas para Generative AI, mas trouxe de forma muito materializada o poder de AI como um todo, resgatar e conectar outras formas de aprendizado de máquina, clusterização e outros ao que se tem na Generative AI se torna muito poderoso
- A mudança não pode ser só sobre trocar atividades por máquinas, mas sim como isso muda toda a cadeia, pensar além do básico (Prompt Engineer, automação, etc) vai ser diferencial e é o que vai alavancar construir o futuro
- O uso de AI como potencial para construção de soluções diferentes e inovadoras, não só na indústria de tecnologia, mas em suas aplicações práticas em diferentes ambientes nos abre a possibilidade de resolver problemas até então muito complexos
- Acelerar a validação de hipóteses de negócio e experimentação, construindo visões autônomas e independentes de times de tecnologia quando falarmos de baixa escala

Como tudo que é novo, não temos respostas para tudo, existem muitos desejos, muitas vontades, muito hype, oportunidades claras e já acontecendo e muitas outras por evoluir e aparecerem. Raramente temos momentos como esse na nossa jornada e ter essa oportunidade agora é um feito que temos que aproveitar e extrair o melhor dela.


Marcos-fernandes

Marcos Fernandes

Head of Technology, CI&T