Programando em par com a Inteligência Artificial

O trabalho em par é uma técnica muito interessante para passagem ou criação de conhecimento. Como o nome diz, são duas pessoas trabalhando juntas para resolver um problema. O objetivo pode variar:

Programação em par. Um homem com as mãos sobre o teclado e ao lado dele uma mulher apenas olhando para o computador.
  1. Transferir conhecimento: no seu time há pessoas muito experientes (seniores) e pessoas com pouca experiência (juniores). É possível juntar duplas de forma que a sênior trabalhe com a júnior. A pessoa júnior pilota e a sênior copilota.
  2. Resolver um problema: Independente do nível de experiência, são duas pessoas trabalhando juntas para resolver um problema específico.
  3. Iniciar um novo produto: Quando um novo produto está sendo criado, é uma boa forma de garantir que as bases do produto sejam definidas, compreendidas e seguidas.

Essa lista não é exaustiva. 

 

Uma história, uma necessidade

Antes de mais nada, gostaria de mencionar que atualmente estou como Gerente de Desenvolvimento de Software do TRE-RJ e isso é relevante para a história que vem a seguir. 

Como gerente eu tenho a vantagem e a prerrogativa de sempre ser elencado como parte interessada (stakeholder) em todos os produtos / serviços que meus times constroem. Como parte interessada, uma das coisas que posso fazer são sugestões de melhoria para nossos softwares. É nesse ponto que acaba todo poderio da minha prerrogativa de chefe. Eu posso até fazer as sugestões, mas depende dos product owners aceitarem e do time ter disponibilidade para desenvolver. Acredite, já recebi muitos nãos e isso faz parte do jogo. 

Um dos serviços que nós temos é o Portal do Cidadão. É um local onde os eleitores do estado do Rio de Janeiro podem consultar serviços sobre suas informações eleitorais. Um dia eu tive uma ideia. E se um eleitor que tivesse algum débito eleitoral (multa por não votar, por exemplo), recebesse um alerta de que ele possui essa dívida. E se o eleitor ou a eleitora que ainda não cadastrou sua biometria, recebesse esse aviso e fosse direcionado para o Cartório Eleitoral da sua preferência. São ideias legais. A Teonice, product owner desse serviço, concordou com a ideia. Mas… não havia times disponíveis para construí-las. A prioridade é eleição (estamos nos primeiros meses de 2024).

Ideia anotada, colocada no product backlog para ver se um dia, nós faríamos. Deu uma pontinha de frustração, mas fazer o que? Temos números sobre a nossa capacidade e colocar mais coisas em paralelo só aumentará o nosso tempo de entrega de todos os produtos. A não ser que eu mesmo colocasse a ideia em construção. Só que havia um problema. Esse portal foi desenvolvido em Angular com Spring Boot e eu me tornei Scrum Master, Product Owner e finalmente gestor bem antes dessa arquitetura ser adotada. Entendia muito, muito pouco de Spring Boot, era nulo em Angular e parar alguém do time para me ajudar seria voltar para o problema original.

Copycat, o imitador

Uma mulher negra, com óculos, cabelo preso como rabo de cavalo, olhando para a tela de um computador enquanto digita.

Após baixar o código-fonte, a primeira coisa que fiz foi abrir o Eclipse e o Visual Studio e fazer o método mais tradicional de aprender a programar. Olhar para o código que alguém já fez, copiar e fazer as alterações necessárias para atender às minhas necessidades. O famoso método copycat (imitador). Dito e feito. Nas primeiras linhas foi excelente. Copiando, colando, alterando e consultando o Stack Overflow quando alguma coisa não dava certo. Porém com o tempo, comecei a precisar de coisas que não estavam presentes naquele produto e a solução foi continuar baixando códigos de outros produtos e tentando copiá-los e modificá-los.

Infelizmente, as minhas atribuições de gestão não me dão muito tempo para ficar buscando um código que atendesse exatamente aquilo que eu procurava. Eu era chamado para reuniões, analisar gráficos e demandas de times, clientes e gestores acima de mim. Enfim, atender as atribuições de um gestor. Confesso que bateu uma frustração, já se passará mais de duas semanas e eu teria que deixar as coisas ½ feitas e 0% entregues. 

ChatGPT como copiloto

Foi aí que bateu a ideia, e se eu utilizasse o ChatGPT para programar comigo. Resolvendo dúvidas básicas e me ajudando a construir as funcionalidades. Fui lá e fiz a pergunta: Como eu retorno um sortedset para o angular? O Sortedset é uma lista de elementos ordenada por um critério. A resposta dele foi bem satisfatória, mas não era exatamente o que eu queria.

sorted_set = {3, 1, 4, 1, 5, 9, 2}
sorted_array = sorted(sorted_set)
Um homem fazendo programação em par com a inteligência artificial.

Ele deu um exemplo genérico. Foi então que eu peguei todo o código da classe em angular e colei no ChatGPT. Nem me preocupei em dar uma arrumada nele. No final eu acrescentei a pergunta: Como eu faço para que o método “tenhoDividas()” retorne o sortedset?. Nem repeti a palavra Angular. Dessa vez a resposta dele foi completa e exatamente o que eu precisava. 

A partir desse ponto fui “conversando” com o ChatGPT para apresentar mensagens, alterar Cascading Style Sheet (CSS), passar parâmetros, receber objetos complexos e tudo mais. Resumo da ópera, em menos de 1 semana já havia criado as funcionalidades, os testes automatizados e colocado na fila dos testadores. Esses aprovaram e tudo entrou em produção.

Eis que surge outra ideia

Foi então que surgiu outra ideia: E se comunicássemos os eleitores do RJ que eles foram convocados como mesários pelos seus respectivos cartórios eleitorais. O desafio aqui é um pouco maior, porque teríamos que comunicar 2 sistemas que até então eram independentes. Por questões de segurança, eu sabia que a comunicação entre sistemas dava um trabalho, pois os dados não podem ser interceptados durante a conversação e isso para a Justiça Eleitoral é sine qua non. Não há a possibilidade de exceções.

Dei a sugestão para a Teonice novamente que achou a ideia bem interessante, anotou no backlog, mas… continuávamos sem time para atualizar o Portal do Cidadão. (Bendita hora que essa super PO começou a trabalhar conosco).

Blackbox.ai

Depois de algumas semanas que não consegui encostar no código, finalmente chegou um dia em que eu tive a oportunidade de abrir o código-fonte e voltei a programar em par com o ChatGPT. No início foi legal, mas essa atividade era bem mais complexa que a outra, pois envolvia criptografia, autenticação de aplicação-usuário, verificação de autenticidade e etc. 

Pegar o código, digitar no ChatGPT, esperar a resposta ficou um tanto tedioso. Foi aí que eu pedi uma ajuda para o próprio ChatGPT: Me liste as 5 principais ferramentas gratuitas de IA para programação que podem ser integradas à IDE. Essa é a sigla para Integrated Development Environment ou, em português, Ambiente de Desenvolvimento Integrado. Caso nunca tenha ouvido falar sobre isso, resumidamente, é o software que utilizamos para construir outros softwares. Ele listou 5, porém o segundo não era gratuito. 

Então lembrei que o ChatGPT tem uma restrição de tempo. A última atualização do ChatGPT 3.5 foi em 2022, e a do ChatGPT 4 foi em 2023. As coisas mudam. Ferramentas que eram gratuitas deixam de ser, outras mudaram o foco e outras deixaram de existir. 

Então fui ao Gemini e repeti a pergunta. Ele confirmou algumas das sugestões do ChatGPT e indicou outras. Uma delas era o blackbox.ai. Confesso que o nome chamou atenção então resolvi dar uma conferida. 

Instalei no meu Visual Studio e ele realmente se integra à IDE. Ele pode ser utilizado no modo conversa, tipo o ChatGPT, porém ele tem um modo interessante de sugestão de código. Literalmente você começa a digitar um IF (Se) e o cara já analisou tudo o que vinha antes e já te entrega um IF quase pronto. Basta digitar um tab. Não é feitiçaria, é tecnologia.

Desde então tenho feito pair programming com o Blackbox, pois ele dá muito mais pitacos do que o ChatGPT. E a construção da funcionalidade durou pouco mais de uma semana. Levando em consideração que sofri muitas preempções da atribuição de gestor. 

Pontos positivos e negativos de trabalhar em par com a Inteligência Artificial.

Vou fazer minhas as palavras do Rodrigo de Toledo sobre vantagens e desvantagens de trabalhar em par com Inteligência Artificial. Ele também utilizou a programação em par para resolver um problema e publicou nesse post aqui que vou copiar descaradamente, mas dando créditos.

Pontos positivos

  • Conhecimento da linguagem: A Inteligência Artificial parece ter um domínio total da linguagem de programação.
  • Explicações detalhadas: Em caso de erros de compilação ou bugs, a IA fornece explicações detalhadas antes de corrigir o problema, promovendo o aprendizado.
  • Comunicação visual: Pasmem, eu fiz upload de uma imagem para ilustrar o bug. A IA conseguiu entender o problema e corrigiu o código para gerar o resultado esperado.
  • Aprendizado mútuo: O processo me proporcionou a oportunidade de ensinar a IA sobre nuances da linguagem e do projeto, enquanto aprendia com suas sugestões e insights.

Nesse mesmo post, ele comenta sobre as conclusões do Rodrigo Braga Afonso ao utilizar o Copilot integrado à IDE e coloca em destaque: O desenvolvedor aprende boas práticas de programação; Comentários e documentações automatizados; Acúmulo de aprendizados entre projetos; Otimização e refatoração de código; Redução de troca de contexto.

Pontos negativos

  • Erros inesperados: A IA cometeu alguns erros que um programador humano experiente não cometeria, como chamar um método inexistente de um objeto.
  • Refinamento necessário: Em projetos maiores, pode ser necessário trabalhar módulo a módulo para evitar sobrecarga e garantir a qualidade do código.
  • negativo/positivo: Em um determinado momento a IA cometeu o mesmo erro 2x, eu falei para não errar mais, e ela jurou que não cometeria mais o mesmo erro (até onde fui, não se repetiu mesmo).

Pontos de Atenção

Conclusão

Acredito que esse será o caminho que seguiremos não só em desenvolvimento de software, como também em outras áreas profissionais. A inteligência artificial não é uma substituta do humano, porém é uma grande auxiliar nas nossas vidas. Se eu puder colocar um ponto importante sobre aspectos negativos e positivos, eu diria que a programação em par seja com o Blackbox ou ChatGPT só funcionam bem porque eu sou desenvolvedor de software (por amor, afinidade e formação) e já possuía conhecimento prévio sobre o tema. Assim eu pude selecionar quais eram as boas sugestões da IA e quando ela errava. Pude até, como o Rodrigo Toledo comentou, corrigi-la. 

Bora caminhar juntos nessa jornada? Dá uma olhada no nosso treinamento de Product AI e saiba como a Inteligência Artificial pode ser utilizada para te ajudar a criar produtos incríveis.

Nos vemos em breve!!!!

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

Sobre o autor(a)

Trainer na K21

Avelino Ferreira é formado e mestre em Ciência da Computação. Teve uma longa trajetória na TI, começando como programador e chegando a gestor de diversos times de criação de produtos digitais. Conheceu e começou a adotar as melhores prática de de Métodos Ágeis em 2008. Desde então, se dedica a auxiliar outras empresas na construção da cultura ágil. Atualmente, é Consultor e Trainer na K21

Artigos relacionados

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

Em junho de 2025, uma publicação do Jeff Sutherland deu o que falar. Foi o Scrum Guide Expansion Pack, em tradução direta, o Guia de expansão do Guia do Scrum escrito pelo próprio Jeff em parceria com Ralph Jocham e…

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

A agilidade tem um molho secreto e ele é composto por três ingredientes: ciclos curtos, melhoria contínua e foco em valor. Eles são a base dos Métodos Ágeis. Inclusive, para saber se um framework, prática, método é realmente ágil, basta…

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

As ferramentas de Inteligência Artificial (IA) já são uma realidade. Todavia, como saber qual escolher. Neste artigo quero apresentar os atuais modelos de IA que temos disponíveis para te ajudar nessa escolha. Antes vamos a alguns avisos importantes 1. A…

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

Já tem um bom tempo que não falo sobre assuntos técnicos por aqui. No entanto, outro dia tivemos que pagar uma dívida técnica bem alta e isso acendeu alguns alertas. Os produtos dos meus times sofrem atualizações constantes seja por…