blog

Antes e Depois da IA: Como Mudou Nosso Jeito de Criar Software

Escrito por Diego Camarinha | 28/11/2025 18:55:56

Neste artigo, compartilharemos como a revolução da IA mudou o desenvolvimento de software na Irya Solutions. Vamos explorar como era nosso dia a dia antes desse boom, quais ferramentas e práticas adotamos, e o impacto direto que sentimos em projetos e na relação com clientes. Além de casos práticos, discutiremos as habilidades que se tornaram essenciais para devs neste novo contexto e nossa visão sobre o que vem pela frente.

O Antes

Fundada em meados de 2018, a Irya Solutions começou suas atividades em um período pré-pandemia, no qual o uso de inteligência artificial diário e para diversas finalidades parecia uma realidade distante. Nossa rotina consistia em abrir o Gitlab, retomar uma tarefa não finalizada no dia anterior ou iniciar a próxima de maior prioridade, atualizar os branches e começar a programar.

Nos casos em que iniciávamos uma nova tarefa, separávamos um tempo para arquitetar a solução, levando em consideração critérios funcionais (se a solução produziria o comportamento esperado pelo cliente) e não funcionais (se a solução atendia aos nível de qualidade que exigimos na Irya). Era comum procurarmos na documentação das ferramentas utilizadas no projeto por funcionalidades que, por si só ou combinadas com outras, alcançariam os objetivos.

O plano B era procurar na Internet por bibliotecas de código aberto que já implementavam o que precisávamos, pois problemas comuns, como autenticação de usuários, possuem soluções bem conhecidas. Caso ambas abordagens falhassem, passávamos a procurar por artigos, tutoriais escritos ou vídeos que ensinassem a resolver um problema parecido.

A última opção era partir para uma solução totalmente artesanal. O motivo para esse procedimento era entregar mais rapidamente uma tarefa e seguir padrões de desenvolvimento da comunidade. O primeiro garante que estamos focados em resolver o problema específico do cliente e não estamos gastando tempo reinventando a roda. Esse último serve a um dos principais valores da Irya: transparência. Ao seguir padrões conhecidos, garantimos que o cliente tenha a liberdade de continuar um projeto conosco porque confia na nossa qualidade e não porque está preso a nós através de uma solução que é dificilmente compreendida por outras pessoas. Porém, mesmo nos casos em que encontrávamos soluções que podíamos reaproveitar, dificilmente elas vinham "prontas": era preciso alterar a lógica para atender a requisitos específicos do cliente. Algumas vezes era possível resolver com configuração, mas em outras as mudanças necessárias eram mais complexas.

A maioria dos casos se enquadra nesse tipo de solução artesanal direcionada. Quando encontrávamos dificuldades de implementação, partíamos para buscas na Internet. Muitas vezes encontrávamos as respostas mas, em quase todas precisávamos fazer alguma adaptação e cuidar para que a qualidade do código se mantivesse alta: tem muita solução por aí que na verdade é uma grande gambiarra.

Quando encontrávamos a solução que atenderia o nosso caso, se soubéssemos com alto grau de certeza de como tudo funcionaria, partíamos para a implementação com Desenvolvimento Guiado por Testes (TDD, em inglês). Se tivéssemos alguma dúvida ou precisássemos experimentar algo antes de partir para a solução final, era comum os testes virem em um segundo momento.

No final, passávamos a maior parte do tempo pesquisando, estudando e pensando na melhor solução para o problema.

O Depois

Como gostamos de nos manter atualizados, começamos a testar o Github Copilot como assistente de programação. Em meados de 2024, assim que tivemos maior garantia de que código confidencial de clientes não seria usado para treinamento de modelos de IA, assinamos o plano empresarial.

O Copilot sugere trechos de código por meio da função de auto completar dos editores de texto. Nesse contexto, nosso procedimento se mantinha praticamente o mesmo até a etapa de configuração e implementação, quando de fato começamos a escrever código. Para nós, o Copilot foi útil para

  1. replicar estruturas repetitivas;
  2. codificar estruturas JSON complexas, que seria trabalhoso de fazer manualmente;
  3. auxílio em implementações usando linguagens de programação que temos menos experiência e,
  4. escrever trechos de testes automatizados, baseado em padrões existentes no nosso próprio código.

De fato, nessas situações em geral, o Copilot acelerava bastante a entrega de código.

Em contrapartida, com o Copilot:

  1. quando uma solução era sugerida, o instinto era avaliá-la e, nos casos em que estávamos criando algo que não existia no código, frequentemente a sugestão era errada e acabávamos gastando mais tempo avaliando diversas soluções propostas ao invés de escrevermos nós mesmos a implementação e,
  2. sugestões de código eram invasivas: querendo ou não aparecia uma solução para auto completar.

Na busca de uma ferramenta que pudéssemos usar apenas quando sentíssemos necessidade e que nos trouxesse mais ganhos, encontramos o Claude. Ele é um programa que você roda na raiz do seu repositório, abrindo uma linha de comando. Ele analisa os arquivos por meio de comandos bash e expressões regulares e produz um diagnóstico do código com detalhes da arquitetura, ferramentas utilizadas, organização dos diretórios, etc. A partir daí, você pode usá-lo como um assistente interativo.

Essa abordagem mudou alguns dos nossos procedimentos. Agora, o assistente não entra mais apenas na fase de implementação, mas também na arquitetura das soluções. Para nós, o Claude tem sido útil para

  1. criar provas de conceito rápidas nas quais não nos importamos com a qualidade do código;
  2. escrever arquivos de testes automatizados completos, principalmente no caso em que eles vem depois da implementação;
  3. servir como um patinho de borracha moderno, ou seja, para interagir com ele, induzindo seu próprio raciocínio;
  4. fazer uma primeira revisão rápida de merge requests, já apontando aspectos claramente passíveis de melhoria como mensagens de commit pouco explicativas;
  5. alterações que envolvem mais de um arquivo no código.

Usá-lo para provas de conceito ajuda a mostrarmos diferentes opções de solução para o cliente, reduzindo o ciclo de feedback. Outro benefício é a entrega mais rápida de código mantendo padrões de qualidade.

O que percebemos de principais limitações do Claude:

  1. dificilmente é sugerido o uso de alguma biblioteca, sendo preferidas soluções "do zero";
  2. se os comandos dados para o Claude não forem precisos, a chance de introdução de débitos técnicos é alta;
  3. algumas sugestões incompletas, dependendo de mais comandos para terminar a implementação;
  4. recomendações de implementação quebradas ou com código depreciado;
  5. escrever o comando e esperar a resposta do Claude demora, diferente do Copilot. Por isso, para tarefas muito simples, ele é ineficiente.

Conclusão

Ferramentas de IA no desenvolvimento de software, sem dúvidas, podem ser grandes aliadas para ganharmos em rapidez na entrega de soluções, testando ideias e delegando a implementação de trechos mais "braçais" de código. Porém, para obter os melhores resultados, ainda é preciso que programadores entendam bem as tecnologias, o sistema e as regras de negócio. Com essas informações, potencializamos as ferramentas de IA para produzirem soluções razoáveis. Sem elas, é praticamente inevitável que o sistema não se sustente no longo prazo. Além do mais, ainda é preciso um olhar técnico para avaliar as soluções sugeridas, realizar ajustes e, as vezes, recomeçar, exigindo maior domínio de abstrações, padrões de código e experiência em identificar erros comuns. Continuamos, por isso, usando a maior parte do nosso tempo como programadores: pesquisando, estudando e pensando na melhor solução para o problema.

O que imaginamos para um futuro próximo com o uso de IA na Irya será:

  1. dedicaremos cada vez mais tempo para entender regras de negócio, diferenciais competitivos e experiência de usuário,
  2. usaremos um assistente para tarefas burocráticas e resolução de dúvidas institucionais;
  3. quando não há necessidade de um projeto visual específico, criaremos protótipos usando ferramentas como o v0.