Antes de tudo, eu realmente não acho que a engenharia de software vá desaparecer tão cedo. Se é que vai desaparecer. Ela vai evoluir. Para quem tem já compreendeu o cenário atual, ela já evoluiu. Outros vão demorar para perceber isso, mas eventualmente perceberão.
A primeira coisa que mudou foi a revisão de código. Ela praticamente deixará de existir, com exceção de alguns casos de alto risco em que seja necessária uma comprovação de correção, como sistemas bancários, contratos, aviões, pontes, arranha-céus, saúde, missões para outros planetas e assim por diante.
Isso significa que, se você trabalha principalmente escrevendo código de forma operacional, sem se envolver profundamente com arquitetura, design ou decisões técnicas mais complexas, provavelmente será cada vez menos solicitado a escrever código manualmente. E isso não é necessariamente algo negativo. Muitas dessas tarefas de programação podem ser executadas pela IA de forma mais rápida e consistente, permitindo que o profissional concentre seu tempo em atividades de maior valor, como definir soluções, validar resultados, compreender requisitos e resolver problemas.
Mas isso não significa que esse programador terá menos trabalho. Muito pelo contrário. Seu gerente vai esperar mais código de você, e não menos. Você realmente acha que seu gerente, o vice-presidente acima dele ou algum executivo do C-level vai começar a fazer vibe coding pessoalmente? Isso não escala. Não existem executivos suficientes para isso e eles custam caro demais.
Os 10% restantes dos engenheiros de software, aqueles que já trabalham com sistemas de alto risco, usarão IA para escrever dois tipos de código:
1. Transformações pontuais de dados, convertendo um formato em outro formato cujo resultado possa ser verificado. Nesse caso, eles validarão o resultado, não o código.
2. Código pequeno o suficiente para caber em uma tela e ser lido de forma compreensível. Esse código será efetivamente revisado, corrigido manualmente ou iterado com IA até que o engenheiro esteja satisfeito com aquilo que está lendo.
Os arquitetos desses sistemas de alto risco continuarão projetando os grafos de dependência entre os módulos dos projetos. Eles indicarão quais módulos poderão ser entregues aos programadores menos qualificados e quais deverão ficar sob responsabilidade dos engenheiros de software.
Os arquitetos de qualquer projeto de software de alto risco ainda precisarão compreender fundamentos de Ciência da Computação, Cloud Computing, bancos de dados, protocolos da Internet, segurança, manutenção, CPUs, paralelismo, complexidade de algoritmos, Machine Learning e muitos outros temas.
Os profissionais de UX continuarão sendo responsáveis pelas decisões relacionadas à experiência do usuário e precisarão conhecer ergonomia, psicologia do usuário, desenho de experimentos e outras disciplinas relacionadas.
Portanto, estamos diante de uma evolução e não de uma ruptura.
É exatamente por isso que continuo escrevendo artigos sobre fundamentos.
Entender como as coisas realmente funcionam tornou-se ainda mais importante, porque a era da especialização excessivamente estreita na indústria de software está ficando para trás.
Com as ferramentas atuais de IA, uma única pessoa consegue construir em semanas aquilo que antes exigiria equipes inteiras e meses de trabalho. Como consequência, as expectativas das empresas também tendem a aumentar. Cada vez mais, o profissional será chamado não apenas para escrever código, mas para compreender o problema, definir a arquitetura, escolher as tecnologias, integrar diferentes componentes, validar resultados e entregar uma solução funcional de ponta a ponta.
A expectativa será cada vez mais próxima de algo como: “Preciso dessa solução funcionando. Avalie o que é necessário, construa, valide e me avise quando estiver pronta.” Esse é o Futuro da Engenharia de Software.
David Matos
