Poderia a IA substituir as habilidades de um desenvolvedor ?


 Este artigo, adaptado do original de Fiodar Sazanavetsdiscute se a IA pode substituir as habilidades de um desenvolvedor ou de um engenheiro software para criar programas automaticamente apenas com base em instruções.

Desde que a primeira versão pública do ChatGPT foi lançada, acreditou-se comumente que pessoas não técnicas agora poderiam fazer o que, até pouco tempo atrás, apenas desenvolvedores profissionais podiam. Os LLMs agora podiam gerar código com base nos requisitos dos usuários, e esse código até funcionava às vezes!



Embora o modelo GPT fosse impressionante, ainda era difícil demais para uma pessoa não técnica construir software com ele. Você ainda precisava saber onde copiar e colar o código. Além disso, os modelos alucinavam com frequência naquela época. Se você não fosse da área técnica, não havia como saber se era você quem estava fazendo algo errado ou se era o modelo que estava alucinando.

Mas, apesar disso, havia uma crença generalizada de que a capacidade de uma pessoa não técnica construir software sem precisar saber programar estava logo ali na esquina. E assim foi.

Avançando alguns anos: os modelos melhoraram significativamente e alucinam muito menos. Ferramentas de IA de agentes (*agentic AI*) como Claude Code, Cursor, etc., estão em toda parte. E com essas ferramentas, você não precisa mais copiar e colar nada. Elas constroem toda a sua base de código do zero, incluindo a estrutura de arquivos! Você realmente pode construir software sem digitar manualmente uma única linha de código, e esse software irá compilar e rodar!

Isso significa que pessoas não técnicas, sem experiência em desenvolvimento de software, poderiam agora construir software de produção real? Bem, não exatamente. Sim, as ferramentas de IA de agentes podem fazer coisas impressionantes, mas existem nuances demais que as impedem de substituir um engenheiro de software competente. E essas nuances não desaparecerão com os lançamentos de novos modelos e melhores ferramentas de agentes.

A seguir veremos por que as ferramentas de agentes não podem transformar alguém sem experiência em desenvolvimento de software em um engenheiro de software. Mas primeiro, vamos falar sobre o que essas ferramentas genuinamente podem fazer.

O que você pode fazer com assistentes de codificação de IA de agentes

Embora as ferramentas de IA não sejam tão onipotentes e inteligentes quanto se acredita comumente, elas não são inúteis — longe disso. Aqui estão as coisas que você pode alcançar com elas:

Você pode aumentar substancialmente sua produtividade

Algumas pessoas argumentariam que a IA não aumenta em nada a produtividade, mas isso definitivamente não é verdade. Existem áreas onde os ganhos de produtividade são óbvios.

Por exemplo, você pode dar à IA um *wireframe* e ela criará uma interface de usuário (UI) totalmente funcional com o estilo visual exato do que foi mostrado. Sim, pode não ser perfeito. Pode exigir alguns ajustes manuais. Mas fazer alguns pequenos ajustes manuais ainda é muito mais rápido do que construir do zero ou criar uma UI personalizada a partir de um modelo genérico.

O mesmo se aplica ao código repetitivo (*boilerplate*). Uma grande parte (provavelmente a maior) de qualquer base de código é composta por códigos que não fazem nada de "inteligente", mas servem apenas como uma cola que mantém diferentes elementos unidos. Escrever esse código é tedioso e, devido ao seu volume, fazê-lo à mão leva muito tempo. A IA pode automatizar esse processo. E como o código *boilerplate* é altamente padronizado, esta é a área onde a IA raramente comete erros.

Mas sim, eu concordaria com os críticos da IA no ponto de que o chamado "placebo de produtividade" é real. Pode parecer subjetivamente que você está sendo mais produtivo, enquanto objetivamente não está. Mas esse é um tópico para outra hora, pois tem muitas nuances.

Você pode construir um PoC ou um utilitário pessoal mesmo sem habilidades de programação

Embora você não possa realmente construir um software comercial de produção com IA se não tiver habilidades reais de programação, você ainda pode construir uma Prova de Conceito (PoC) ou um aplicativo de utilidade personalizada.

Em ambos os casos, o fato de o aplicativo funcionar na sua máquina é literalmente tudo o que importa. Não importa se ele não escala. Não importa se existem casos extremos (*edge cases*). Não importa se não é seguro. E nem importa se ele funciona se você o implantar em outro lugar.

Os PoCs- Proof of Concept - são usados apenas para demonstrações. Contanto que funcione em um cenário de demonstração roteirizado, é bom o suficiente. Softwares de utilidade personalizada são usados para resolver um problema que você tem. Você é o único usuário. Você não precisa testar extensivamente os casos extremos porque nunca o usará em tais cenários.

Você pode construir todo um software de produção sem digitar código

Este ponto pode soar controverso para os críticos da IA, mas sim, você pode absolutamente construir um software de produção comercial real com IA tocando raramente (ou nunca) no código manualmente. A ressalva, porém, é que você só conseguirá fazer isso se tiver habilidades reais de um desenvolvedor ou engenhario de software.

Você precisará saber o que perguntar aos agentes. Precisará saber como validar os planos que os agentes propõem. Precisará saber como validar o resultado. Precisará saber como colocar as proteções (*guardrails*) e os portões de qualidade (*quality gates*) adequados.

Essas não são habilidades que você obtém ao concluir um único tutorial online. São habilidades que você desenvolve ao longo do tempo trabalhando em projetos comerciais reais na indústria.

Nas mãos de um engenheiro competente, a IA é um multiplicador de força

Portanto, a IA não é apenas um truque inútil que cria uma ilusão de inteligência, como sugerem alguns de seus críticos. É um multiplicador de força real. Mas ela só se torna isso se for guiada por um engenheiro de software competente.

A IA não substitui suas habilidades. Ela apenas amplifica o que você já tem

Se você for um desenvolvedor disciplinado, conhecedor e experiente, a IA lhe dará muita alavancagem. Você conseguirá realizar muitas coisas muito mais rápido. Se, no entanto, você não souber o que está fazendo, a IA apenas cavará um buraco mais fundo para você com muito mais rapidez.

Você pode se surpreender com essa afirmação. Afinal, o objetivo da IA não é tornar o processo de codificação obsoleto, para que você obtenha software funcional sem nunca precisar olhar para o código? Bem, não exatamente.

As chamadas bases de código "Lights-out" não funcionam

Na indústria, existem as chamadas 'fábricas escuras' (dark factories): unidades tão automatizadas que não precisam de luz, pois não há humanos trabalhando nelas — apenas robôs seguindo ordens precisas.

Alguns entusiastas acreditam que podemos fazer o mesmo com o software. A ideia é criar bases de código 'lights-out' (luzes apagadas), onde IAs escrevem e gerenciam tudo sozinhas. Nesse cenário, o código seria apenas um 'trabalho de bastidor' que ninguém precisaria ver ou entender, desde que o programa final funcionasse. Se isso fosse verdade, o conhecimento técnico humano realmente se tornaria descartável.

No entanto, há um pequeno porém nesta visão. Para começar, há uma diferença fundamental entre o processo de fabricação em uma fábrica física e o processo de construção de software. Em uma fábrica, tudo é totalmente determinístico. Cada máquina faz exatamente o que foi programada para fazer. Não há suposições. Não há tomada de decisão baseada em premissas vagas.

Os Modelos de linguagem Grandes (LLMs), no entanto, não são nada determinísticos. Eles são probabilísticos, o que significa que a mesma entrada, sob circunstâncias diferentes, gerará saídas diferentes.

Alguns defensores da IA sem código insistem que não importa se os LLMs são determinísticos ou não. Afinal, você pode instruir um agente a validar a entrada de outro agente e escrever testes. Todos os testes passaram. O software roda. Todos estão felizes.

Mas há um problema nessa abordagem. O risco de confiar cegamente na IA está na validação. Como garantir que os testes criados por ela refletem sua real intenção ?

No começo, tudo parece funcionar, mas com o tempo surge o desvio (drift): a IA começa a criar testes que apenas confirmam o código que ela mesma escreveu, ignorando as regras de negócio reais. O resultado é uma lacuna cada vez maior entre o que você planejou e o que o software realmente faz.

É por isso que você ainda precisa absolutamente verificar a saída dos agentes por conta própria. Você precisará verificar pelo menos as partes críticas. Para colocar portões de qualidade em prática, você precisa ter experiência em programação.  Sem saber programar, você perde o critério para julgar se os alertas de qualidade emitidos pelas ferramentas automáticas fazem sentido ou se são apenas ruído.

Você não sabe o que não sabe

Muitos entusiastas, conhecidos como 'vibe coders' (aqueles que programam baseados apenas na intuição e no 'feeling'), acreditam que, se a IA entregou exatamente o que foi pedido, eles se tornaram capazes de construir qualquer sistema. No entanto, existe uma grande diferença entre fazer um botão funcionar e construir uma arquitetura de software real.

Se o botão funciona como pretendido, isso cobre apenas os requisitos funcionais. Mas também existem requisitos não funcionais: **portabilidade, escalabilidade, desempenho e segurança.**

-  Se o seu software funciona na sua máquina, não significa que você conseguirá implantá-lo e fazê-lo funcionar em outro lugar (**Portabilidade**).

- Se o seu software funciona para você, não significa que ele não vai parar quando milhares de usuários reais começarem a usá-lo (**Escalabilidade e Desempenho**).

- Você sabe verificar se seu software é seguro? Esse é, talvez, o maior problema do software feito por "vibe coding". Você publica chaves e segredos sem saber, ou expõe um *endpoint* inseguro.

Há uma razão pela qual o PoC inicial pode ser criado em uma única sessão de hackathon, enquanto transformá-lo em um software lançável leva meses. Os requisitos funcionais são apenas a ponta do iceberg. A maior parte do software são as coisas que você não vê: os não funcionais.

A IA é ótima em criar o funcional (fazer o botão funcionar). No entanto, ela costuma falhar nos não funcionais (garantir que aquele botão não abra uma brecha de segurança ou que o código não trave quando o site tiver muitos acessos). É aqui que entra a necessidade de um Engenheiro de Software experiente para configurar os "portões de qualidade".

Não, a IA não é uma fábrica de tecidos da Revolução Industrial

Muitas pessoas comparam a engenharia de software à produção artesanal de tecidos que foi democratizada pela Revolução Industrial. Mas essa analogia não funciona. Uma analogia melhor seria o **Piloto Automático**.

Com um piloto automático, você não precisa pilotar o avião manualmente durante a maior parte da jornada. No entanto, você ainda precisa de suas habilidades de pilotagem durante as partes críticas, como decolagem e pouso, e para lidar com situações extraordinárias. O piloto automático não tornou o cargo de piloto obsoleto; ele apenas mudou a natureza do trabalho.

Conclusão: O futuro do desenvolvimento de software na era da IA

A ideia de que a IA tornará o conhecimento técnico obsoleto é atraente, mas ignora a complexidade do que realmente significa construir software de qualidade. Embora ferramentas de agentes e assistentes de código sejam avanços fenomenais que democratizam a criação de protótipos e aumentam a produtividade de quem já sabe o que está fazendo, elas não substituem o discernimento, a arquitetura e o rigor técnico.

O surgimento do "vibe coding" — o ato de programar apenas por tentativa e erro guiado pela IA — traz um risco real: a proliferação de softwares frágeis, inseguros e impossíveis de manter. Para criar sistemas que resistam ao uso real, que protejam dados de usuários e que escalem com o sucesso do negócio, os fundamentos da engenharia de software continuam sendo indispensáveis.

Em última análise, a IA não veio para substituir o desenvolvedor ou engenheiro, mas para elevar o nível do seu trabalho. O "piloto automático" está cada vez melhor, mas para que a viagem seja segura e o destino seja alcançado, o piloto ainda precisa conhecer as leis da aerodinâmica.

O software do futuro será construído com a velocidade da inteligência artificial, mas sob a governança inegociável da inteligência humana qualificada.

E estamos conversados...  

"Nada façais por contenda ou por vanglória, mas por humildade; cada um considere os outros superiores a si mesmo."
Filipenses 2:3

Referências:


José Carlos Macoratti