Poderia
a IA substituir as habilidades de um desenvolvedor ?
![]() |
Este artigo, adaptado do original de Fiodar Sazanavets, discute 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:
NET - Unit of Work - Padrão Unidade de ...