6

Como vocês estão usando IA no desenvolvimento sem perder o raciocínio?

Nos últimos tempos, muita gente tem falado sobre IA na programação, desde autocomplete mais inteligente até ferramentas que entendem o contexto do projeto inteiro. O Código Fonte TV já trouxe algumas discussões interessantes sobre isso, principalmente sobre IA programando com mais contexto e também sobre o impacto que isso pode ter no aprendizado de quem desenvolve.

Queria abrir uma conversa mais prática com a galera que trabalha ou estuda desenvolvimento web, mobile, apps, games, automações e programação no geral:

Como vocês estão usando IA no dia a dia sem sentir que estão ficando dependentes dela?

Porque uma coisa é usar IA como apoio para ganhar produtividade, revisar código, tirar dúvidas, entender erros, gerar ideias ou explorar soluções. Outra coisa é simplesmente acreditar no que ferramentas como Codex, Claude ou qualquer outra IA entregam, delegando tudo para elas sem validar a lógica, a arquitetura, a regra de negócio, a performance, a segurança ou a manutenção depois.

Algumas perguntas para puxar a discussão:

  • Em quais etapas do desenvolvimento a IA realmente ajuda vocês?
  • Vocês usam mais para estudar, debugar, escrever código, revisar PR, criar documentação, pensar arquitetura ou gerar ideias?
  • Em projetos web, mobile, apps ou games, onde a IA mais economiza tempo?
  • Como vocês validam se o código gerado faz sentido?
  • Vocês têm alguma regra pessoal para não perder prática?
  • Acham que IA acelera o aprendizado ou pode atrapalhar se for usada do jeito errado?
  • Para quem já trabalha na área: o uso de IA mudou a forma de codar, pesquisar ou resolver problema?

A ideia não é discutir se IA vai substituir dev ou não, mas entender como usar bem a ferramenta sem abrir mão da base: lógica, fundamentos, leitura de código, debugging, documentação, arquitetura e tomada de decisão.

No fim, talvez a questão seja menos “usar ou não usar IA” e mais “como usar IA sem deixar de pensar como dev”.

Como vocês estão equilibrando isso?

Carregando publicação patrocinada...
15

Minha resposta honesta é: IA destrói sua capacidade de raciocinar.

Na semana em que descobri o Claude Code em novembro do ano passado, eu quase não consegui dormir. E não sou o único. O Armin Ronacher, criador do Flask, descreveu Claude Code como “catnip for programmers” por que passou pela mesma coisa. O Simon Willison repetiu essa frase ao falar de agentic coding. É exatamente essa sensação: você fica energizado, confuso, viciado em transformar ideias em código funcional.

Eu comecei com o plano de 20. Durou 15 minutos. Nem pestanejei e passei para o de 200. Durou três dias e eu estourei o limite da semana. Ainda tentei me segurar. Aí teve um dia em que simplesmente não consegui: fui lá e paguei o de 1000. Droga pesada, passe longe se puder...

Desde então eu uso IA pesada para programar, com fluxo 100% autonomo com multiplos agentes em paralelo.

Descobri que a IA não é uma ferramenta de produtividade, mas uma máquina de criar dívida cognitiva.

Você ganha velocidade hoje e paga depois tentando entender o que foi gerado, por que foi gerado, onde quebrou, por que a arquitetura ficou torta, por que aquele arquivo agora tem 800 linhas, por que o teste passa mas o bug aparece, por que a solução funciona mas você não conseguiria explicar como.

O pior: muitas vezes vale a pena.

O problema é que a IA transforma ideia em protótipo rápido demais. Rápido demais para seu cérebro de primata acompanhar.

Tem prototipo que eu fiz naquela primeira semana e até hoje estou pagando o débito cognitivo. Mas a verdade é que, sem o agente, eu nem teria tirado a ideia do papel.

Então minha visão hoje é mais ou menos assim:

Em quais etapas do desenvolvimento a IA realmente ajuda vocês?

Todas, menos pensar por você.

Ela ajuda a explorar repositorios, escrever código, gerar teste, ler log, fazer refactor gigantes, escrever documentação. E Debugar. Essa vejo pouca gente falando e é onde mais brilha, porque não cria débito cognitivo.

Vocês usam mais para estudar, debugar, escrever código, revisar PR, criar documentação, pensar arquitetura ou gerar ideias?

Para gerar lixo.

E isso não é necessariamente uma crítica.

Todo software começa como lixo. O problema é esquecer que é lixo. IA é ótima para produzir massa bruta: código inicial, rascunho, primeira versão. Ela te dá matéria-prima.

O trabalho do programador continua sendo transformar aquilo em software.

Em projetos web, mobile, apps ou games, onde a IA mais economiza tempo?

Não sei opinar muito sobre web/mobile/games porque so tenho usado para ferramentas CLI: automação e compiladores.

E aí a vantagem é brutal, porque CLI é o tipo de coisa que agente usa bem: entrada clara, saída clara, teste rápido, erro visível, loop curto. O agente roda comando, vê falha, corrige, tenta de novo.

Quanto mais fechado, determinístico e testável for o ambiente, melhor a IA trabalha.

Como vocês validam se o código gerado faz sentido?

Gastando até 40x (medidas minhas) o tempo que a IA levou para gerar o lixo, refatorando aquilo até virar algo meu.

A IA gera um programa inteiro de 10k linhas de código em segundos. Entender aquilo vai levar semanas.

Minha validação é: leitura linha por linha: simplificação agressiva, remoção de abstração inútil, apagar metade, reescrever a parte que presta, rodar em casos estranhos, remover dependências. E principalmente perguntar: “eu conseguiria manter isso daqui sem IA?”.

Se a resposta é não, ainda é apenas uma sugestão da maquina e não código meu.

Vocês têm alguma regra pessoal para não perder prática?

Sim: um dia por semana fazer tudo sem IA. Zero. Sem autocomplete inteligente, sem ChatGPT, sem agente.

É musculação cognitiva. Você descobre muito rápido como seus músculos mentais atrofiaram.

Acham que IA acelera o aprendizado ou pode atrapalhar se for usada do jeito errado?

As duas coisas.

Para quem já trabalha na área: o uso de IA mudou a forma de codar, pesquisar ou resolver problema?

Sim e não.

Mudou tudo, mas não mudou nada.

Tem uma máxima antiga (1983) no mundo de software:

The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.

Só que agora, com IA, a proporção mudou. Não é mais 90/10. É mais perto de 99/1. Você olha e pensa: acabou. Não acabou.

Depois que você vira vibe coder, você entra no jogo de perseguir a dívida cognitiva. Essa passa a ser sua vida.

Você cria mais. Você testa mais.
Você refatora mais. Você apaga mais.
Você entende menos no começo. Você precisa entender muito mais no final. É maravilhoso. E é meio miserável também.

2
1
1

Excelente comentário, mas trago aqui algumas reflexões/provocações:

  1. Será que o código gerado via vibe coding precisa ser realmente lido por um dev?
  2. No caso de vibe coding, ao invés de comsertar o código gerado não seria o caso de verificar/corrigir as especificações para que a IA gerede um código mais próximo do seu gosto?
  3. Não seria o caso de passar seu padrão para a IA seguir ao invés de deixar ela livre e depois correr atrás do prejuízo?

Código virou commodity, já arquitetura ainda continua um trabalho cognitivo e de valor.

1

Acho que aqui mora uma ilusão perigosa: achar que esses monstros idiotas seguem especificação de verdade. rs

Eles seguem o suficiente para parecer que seguiram.


Código gerado via vibe coding não precise ser validado por um humano em todos os contextos. Se é um script descartável, uma automação pessoal, uma landing page sem consequência, uma PoC para testar ideia, beleza. Gera, roda, funcionou, vida que segue.

Mas se aquilo vai para produção, mexe com dinheiro, vidas ou qualquer coisa minimamente séria, alguém precisa entender o que esta acontecendo.

Porque, se der problema, não é o CPF do Claude que vai pagar. É o seu.

O ponto não é “validar código gerado” como se isso fosse o fluxo ideal. O provlema é que código gerado vira software. E software tem custo de manutenção e suporte.


E nem para por aí, se é para fazer um prompt decente para a IA, você precisa entender o código que já existe. Precisa saber o que proibir, onde simplificar, onde abstrair, onde o que testar, onde isolar, onde apagar.

Se você não entende o código, você também não entende o prompt que iria extrair o máximo da ferramenta.


“Código virou commodity” é uma frase incompleta. Código ruim virou commodity. Código plausível virou commodity. Código que compila virou commodity. Código que passa em teste feliz virou commodity.

Software bom não virou commodity.

E aqui vale lembrar o Linux.

O Linux não deu certo porque qualquer um joga patch no kernel e torce para compilar. Deu certo porque o Linus conhece o bicho que mantém. Ele sabe onde mexer, onde não mexer, que tipo de gambiarra é aceitável e que tipo de “solução elegante” vai virar um gargalo daqui seis meses depois.

Ele já deixou claro: não importa se o patch veio de humano ou de IA. O que importa é que ele (ou alguém de sua confiança) revise, entenda e assine embaixo.

Essa é a parte que muita gente ignora “código virou commodity”.

Gerar código é barato. Colocar código em produção ainda é caro.


E muito provavelmente daqui a cinco anos isso nem seja mais relevante. Talvez o custo de escrever qualquer solução do zero seja menor que o custo de manter um software bom legado.

Mas hoje ainda não é assim.

1

Quem entedeu isso aqui, entendeu o futuro da programação com IA: "Quanto mais fechado, determinístico e testável for o ambiente, melhor a IA trabalha."

6

Post muito pertinente @cassiocsantana.

Respondendo as suas perguntas:

Em quais etapas do desenvolvimento a IA realmente ajuda vocês?

Apenas quando me deparo com problemas que não consigo resolver apenas com a informação de erro. Eu uso IA meramente para pesquisa, pois isto reduziu a quantidade de abas abertas no meu navegador para uma única. Modelos como Claude pesquisa em dezenas, senão sentenas de fontes ao mesmo tempo. Manualmente demandaria muito tempo. Uma vez que encontrou uma fonte que ela julgou interessante para a resolução do meu problema, eu mesmo leio diretamente da fonte.

Vocês usam mais para estudar, debugar, escrever código, revisar PR, criar documentação, pensar arquitetura ou gerar ideias

Eu uso para validar output repetido. Eu estou criando um projeto que me retorna cerca de 512 bytes (comunicação via UDP), e as vezes eu precido validar este bytes contra outros bytes. As vezes a nível bit depois de mascar usando bit-wise.

Eu peço recomendações de projetos para eu criar. Ele me passa os requisitos e pronto. Normalmente acaba encontrando ótimos projetos desde que o modelo faz diveras pesquisas ao mesmo tempo.

Em projetos web, mobile, apps ou games, onde a IA mais economiza tempo?

Eu tenho mais experiência com web, porém ultimamente eu tenho trabalhado apenas em projetos de baixo nível. A parte que IA mais ajuda é recomendado crates mais utilizadas para determinado problema (eu uso rust para quase tudo). Tirando isso, o mesmo para a pergunta anterior.

Como vocês validam se o código gerado faz sentido?

Eu nunca peço código pronto. Se ela me entrega código. Eu uso apenas como base, não para copiar e colar, mas para pensar criticamente sobre o problema. Em nenhum momento eu uso o código que IA me entrega.

Se eu tivesse que validar, provavelmente seria um pedaço de código que processa algo muito grande. Este tipo de código é deterministíco, então se o resultado é o esperado, provavelmente esta correto. Ou seja, o único cenário que eu considero validar é onde isso me entrega alguma automoção. Fora isso eu nem utilizaria.

Vocês têm alguma regra pessoal para não perder prática?

Programadores tem que codificar. Mesmo que seja código merda, o importante é manter-se codificando. Não interessa a linguagem. Se você se mantém codificando é de certo que irá se deparar com problemas, e um bom dev resolve problemas.

Para quem já trabalha na área: o uso de IA mudou a forma de codar, pesquisar ou resolver problema?

Sim, mudou e simplificou algumas coisas. Porém esta gerando uma cultura onde muitas pessoas simplesmente da pull-request com código lixo. Enfim, abriu mais espaço para quem nunca gostou de programar passar a gerar porcaria.

Para os bons devs, este multiplicou produtividade.

Acham que IA acelera o aprendizado ou pode atrapalhar se for usada do jeito errado?

Se utilizado de forma correta, acelera. Nunca delegue para IA, apenas peça ajuda para entender quando realmente você já entendeu de tudo. Peça analogias e coisas do tipo. Resumindo, busque trabalhar junto com IA para alcançar o resultado ao invés de pedir isto.

1

Muito interessante o seu uso da IA! Realmente, programadores devem codificar, usando a IA como uma ferramenta e aprendendo a dominá-la bem — afinal, ela foi treinada com conteúdos incríveis, como design patterns em um simples TODO list (ironia mode on). Não é um problema da IA carregar esse overengineering, já que existem mais artigos e padrões de projeto do que um simples post dizendo "olha como eu fiz esse projeto em MVC usando a estrutura do Laravel"... O que basta a nós é ajustar o fluxo de como usamos para extrair o melhor dela e também nos aperfeiçoarmos. Vejo que, mesmo pedindo ajuda para algo básico, ela sempre retorna primeiro a opção mais elaborada e complexa.

3

Então, eu não uso, exceto quando a empresa obriga 😅

Mas, falando sério, eu faço toda a arquitetura e design da solução em um draw.io e vou implementando aos poucos com a I.A. isso me dá espaço pra revisar em pequenos blocos, me força a raciocinar dentro de "janelas" de raciocínio, e não me deixa criar débito cognitivo.

E não aceito que digam que perco eficiência fazendo isso, porque, se for só pra deixar a I.A. fazer o máximo possível de forma autônoma, seria melhor passar a chamar de "agentic vibe coding"

3

Sinceramente, eu parei de usar. O maximo que eu uso é pra resumir uma documentação. Passei a implementar tudo na mão como sempre fizemos.
Esse papinho de, código não importa o que importa é saber arquitetar não cola. A gente tá literalmente cavando o fim da nossa profissão e deixando codigo mediocre passar.

1

Resumindo, porque muito já foi dito: uso IA onde não me importo com qualidade ou perpetuidade.

O core do produto, geralmente em torno de algum CMS (PayloadCMS, por exemplo) ou framework, é meu. A IA ajuda com autocomplete, documentação e tarefas repetitivas, mas funcionalidade, arquitetura e tudo que precisa ser mantido fica comigo.

Já para aplicações que só consultam dados sem regra de negócio, sites institucionais estáticos, scripts descartáveis ou código muito pontual (criei um plugin pro Cronicle que faz uma única coisa, nunca vai mudar, é fácil de auditar e nunca mais vou tocar), a IA opera quase de forma autônoma.

E fora do código também. Como revisar este comentário, por exemplo.

LLM é probabilidade. Basta tratar como tal.

1

Olha, falando como iniciante que sou e que ainda não trabalha com desenvolvimento, eu não uso a IA para auxiliar em nada que eu ainda não tenha domínio. Seja em software, segurança, infraestrutura, conhecimentos gerais ou qualquer outra coisa, eu sempre fico ultra desconfiado com as respostas e que sempre tem um outro gap bem ridículo. Fora que ela sempre tenta nos validar e esse tipo de comportamento é muito ruim quando se está aprendendo, já que ela vai incentivar o caminho errado por conta de um viés dos modelos.

Dito isto, acho que o mais interessante é utilizar ela em tópicos que você já domina, ou para estressar suas ideias e entendimento de um tópico. Se tu tens capacidade de criticar com profundidade um tópico, acho mais razoável usar, fora isso, não vejo nenhum ganho relevante.

Confesso que utilizo bem pouco IA, talvez uma ou duas vezes por mês e acho que para o meu momento, está super OK. Pensar nisso me faz lembrar de um diálogo de The Witcher 3, onde o tio Vesemir dá um puxão de orelha no Geralt por ter deixado a Ciri treinando sozinha, soltando a seguinte pérola "isso só vai fazê-la reforçar os próprios erros" e vejo que com a IA esse é o exato cenário. Agora, se tu já tem a base bem sólida, acho que utilizar é muito, mas muito relevante, ainda mais se produtividade for a coisa mais importante no projeto.

1

Hj minha função é mais tech lead do que desenvolvedor... Logo estou acostumado a gerenciar times de pessoas e agora IA, mas o que eu faço é o que um tech lead ou engenheiro de software deveria fazer, monto o escopo, e faço um quickstart com IA detalhado e modularizado sob uma tarefa bem específica e bem documentada, o nivel de ganho inicial é extremamente alto, depois disso eu faço o code review completo, documento como deveria funcionar e rodamos testes automatizados com cenários que foram previstos por mim e hidratados por IA, minha equipe valida com um guia técnico de revisão somado da especificação inicial.

No final o resultado é um módulo montado como se fosse uma lib mas a integração aos processos é feita pelos desenvolvedores que tem conhecimento de regras de negócio e situações dentro e fora do sistema que uma IA não tem ou deveria ser alimentada para saber, o fator humano é uma enorme variável que não é facilmente contextualizada.

Isso nos poupa 30-50% de trabalho... Pedir pra fazer um sistema completo via vibe code... Quando sua vibe acaba o code fica abandonado.

IA é ferramenta, vc não usa martelo a todo momento só quando precisar, vc não deveria usar IA o tempo todo só quando ela é mais útil.

1

Cara é o seguinte aqui na empresa estamos pagando claude pra todos os devs. E fica claro que é sem volta. Faz todos os processos dentro do desenvolvimento. Para obter os melhores resultados 2 conceitos: harness e sdd usando agentes especializados como o superpowers entre outros. Recomendo ver os videos do breno vieira no youtube e o software que ele criou cgamado LionClaw que tem o melhor pipeline de desenvolvimento que ja vi.