Metanoia: Por que o futuro da Engenharia de Software não é sobre código, mas sobre abstração e design.

Recentemente, minha percepção da realidade tem sofrido algumas mudanças e eu me vejo como no mito da caverna de Platão muitas vezes, acreditando que sombras são o que importam e qualquer coisa que tire essas sombras da nossa visão, é algo que é profano ou inviável. Não há espaço pra pensar o futuro com os mesmos modelos mentais do passado. É normal nos sentirmos desconfortáveis e com incertezas. E com isso em mente, comecei a refletir como cada época, com seus próprios problemas e paradigmas, precisou absorver o impacto de novas tecnologias e como isso transformou a visão de mundo das pessoas que viveram aquele momento.

imagine um feixe de luz descendo pelo vidro manufaturado da janela do escritório e pense comigo, o que um carpinteiro nascido antes de Cristo pensaria dessa peça? Como o reconhecimento de tal artefato mudaria a relação dele com o mundo e como ele lidaria com as incertezas que essanova visão traria?

[metanoia.jpg]

Ao longo da história, esses saltos acontecem em períodos cada vez menores.

A frequência da mudança parece inversamente proporcional ao nosso poder de abstração: quanto mais abstraímos, mais rápido o mundo muda ao redor.

Tenho um exemplo muito próximo disso. Meu pai era mecanógrafo, começou como relojoeiro e depois entrou numa profissão altamente rentável nos anos 1970: consertar máquinas de escrever. Quando alguém lhe ofereceu um curso de computação em meados de 1980, ele recusou. Para ele, aquelas máquinas eram lentas, dependiam de eletricidade e faziam mal aos olhos. Esses sistemas seriam esquecidos em breve. Eu não tiro a validade desses questionamentos do meu amado velhinho. Mas ele estava errado, ele fez uma previsão com o pensamento e as certezas que levaram ele até aquela profissão.

Não existe mudança sem troca. Alguns benefícios são abandonados, algumas certezas são dissolvidas.

Em fevereiro deste ano, a Anthropic publicou um artigo sobre a dívida cognitiva gerada pelo uso excessivo de IA em engenheiros de sistemas. Toda abstração tem seus custos. A forma como usamos essas ferramentas altera profundamente o espírito da época e o subconsciente coletivo de quem vem depois. Mas se você parar para pensar, nós estamos construindo sistemas inteligentes desde os primeiros autômatos do século III a.C., passando pelos controles automáticos da Revolução Industrial, pelas válvulas a gás do século XIX, pelos cartões perfurados, pelo assembly, pelo C e enfim chegamos aqui, da sintaxe de alto nível para a linguagem natural. E isso terá um custo da forma que conversamos com as máquinas, alguns de nós ainda terão de ser bom em baixo nível de verdade, como saber construir chips e entender tudo sobre portas nand, mas a grande maioria avançará além dos frameworks de react e atuarão na fronteira experimentando a nova forma de traduzir abstrações, modelos generativos semânticos.

Darwin sempre se prova efetivo, até em sistemas de informação. É preciso ser adaptável, tirar o véu da ignorância e enxergar as coisas como elas são.

"Os lábios da sabedoria estão selados, exceto aos ouvidos do entendimento." — O Caibalion

Nós, que crescemos amando nossas linguagens de programação, carregamos o código como parte da identidade. Desde as primeiras versões do C por Kernighan e Ritchie, adotamos a sintaxe como instrumento de percepção do mundo. Mas o novo paradigma está aqui, do "Attention Is All You Need" até os modelos mais recentes como Claude oppus 4.6, a forma como produzimos já mudou.(Não farei julgamentos ao modelo da industria de IA e a sustentabilidade dessas empresas, talvez em uma outra hora)

Sistemas são uma extensão da cognição humana. Nós temos empilhado conhecimento como espécie e passado esse bastão por séculos. Não vai ser na engenharia de software que mudaremos como nossa espécie funciona. Sistemas são instrumentalizações formas de agir sobre o mundo com a pouca interferência física que temos através dos nossos corpos.

E isso é o que é.

Toda vez que abstraímos algo, nos aprofundamos no seu aspecto mais basilar. Falando de abstração de código: a forma como entregamos agora vale mais do que a qualidade artesanal, e a forma como a solução é desenhada é mais importante do que nunca. Código não é barato mesmo com LLMs, times de desenvolvimento continuam caros, e o trabalho é abstrato. Poucas pessoas entendem de fato o processo, e na escala Dreyfus, o número é menor ainda, pessoas que tem entendimentos do processo como um especialista de forma intuitiva são cada vez mais raras. Manter código é caro, mas mais caro ainda é não saber o que construir, gastar com infraestrutura sem entender o domínio, sem entender as trocas que todo sistema exige.

Engenharia de software sempre me fascinou e eu corri dela por muito tempo. Para mim, ela nunca foi uma ciência exata. Todas as engenharias carregam um pouco desse aspecto, mas como estamos muitas vezes resolvendo problemas de fluxos de dados e informação, ela acaba sendo um misto de filosofia da arte com lógica intrínseca de sistemas. E é isso que importa, devemos nos concentrar ao que é essencial, essencial é que sistemas de computadores são instrumentalizações do nosso cortex pré-frontal para solucionar problemas abstratos e não menos importante, na verdade muito importante, saber desenhar esses sistemas são em sua grande forma, atividades sociais, software sempre foi comunitário e nos somos um ser social, tentar se isolar e não conhecer o domínio por completo do sistema a ser arquitetado é um grande passo a um abismo de frustrações e expectativas não alinhadas.

Hoje a base importa mais do que qualquer outro aspecto. Você pode trabalhar com um bom modelo, mas se não souber as trocas de cada decisão, vai ser somente mais um no meio de uma multidão que tem sido desafiada constantemente por suas próprias criações.