A engenharia de software pode não ser mais uma carreira para a vida toda
(seangoedecke.com)- É claro que usar IA reduz o quanto se aprende ao executar uma determinada tarefa, mas isso não é motivo para rejeitar a IA
- Mesmo que a IA enfraqueça as capacidades do engenheiro no longo prazo, se a vantagem de produtividade no curto prazo for suficiente, seu uso se torna inevitável
- Assim como trabalhadores da construção civil levantam objetos pesados apesar da carga física, é preciso seguir as exigências intrínsecas da profissão
- É possível insistir em programar tudo manualmente, mas, assim como não há emprego para um carpinteiro que rejeita ferramentas elétricas, um engenheiro que recusa IA tem grande chance de perder competitividade para outro que a adote
- Engenheiros de software também podem se tornar a primeira geração com carreira de duração limitada, como atletas profissionais, e é necessário planejar levando essa possibilidade em conta
Uso de IA e a duração da carreira de engenheiros de software
- Não há evidências fortes de que a IA reduza a inteligência geral das pessoas, mas é claro que, ao usar IA para realizar certas tarefas, a quantidade de aprendizado sobre aquela tarefa diminui
- A lógica de alguns engenheiros de software que defendem evitar IA no trabalho é mais ou menos a seguinte
- Ao usar IA, você aprende menos durante o processo de trabalho
- Com o tempo, sua capacidade técnica se deteriora, tornando você um engenheiro menos eficaz
- Logo, não se deveria usar IA no trabalho
- No entanto, a segunda premissa não é certa
- Na transição de assembly para C, os programadores se tornaram menos eficazes em alguns aspectos e mais eficazes em outros
- A mudança de escrever código manualmente para usar IA pode ser uma transformação ainda maior, então é difícil cravar o resultado
- Mesmo que o uso de IA torne engenheiros menos eficazes no longo prazo, isso por si só não leva à conclusão de que não se deve usá-la
- Até por volta de 2024, a melhor forma de aprender engenharia de software era fazendo engenharia de software diretamente
- Era possível transformar o hobby de programar em uma carreira de alta renda, e quem gostava do trabalho tendia a melhorar com o tempo
- Isso estava mais próximo de um acaso afortunado do que de uma essência imutável da engenharia de software
Conflito entre produtividade de curto prazo e capacidade de longo prazo
- Mesmo que usar IA piore a capacidade no trabalho ou o raciocínio geral no longo prazo, se o ganho de curto prazo for grande o bastante, engenheiros talvez tenham que usá-la
- Um trabalhador da construção civil precisa levantar peso para trabalhar de forma eficaz, mas esse tipo de atividade pode, no longo prazo, desgastar as costas e as articulações, tornando-o menos eficiente com o tempo
- Trabalhadores da construção não dizem “um bom trabalhador é aquele que não levanta peso”, e sim “não tem jeito, esse é o trabalho”
- Nos canteiros de obra, existem técnicas como guindastes, carrinhos de mão e empilhadeiras para evitar carregar objetos pesados
- Para engenheiros de software, também pode ser necessário haver técnicas para manter o envolvimento mental, mas talvez ainda não tenhamos encontrado um equivalente
- Se a IA realmente estiver tornando as pessoas menos inteligentes, ainda é possível continuar escrevendo código à mão
- Mas, pelo mesmo motivo que quase não há trabalho para um carpinteiro que rejeita ferramentas elétricas, pode ficar difícil ser pago apenas por programar manualmente
- Se os modelos forem bons o suficiente, você perderá competitividade para engenheiros dispostos a trocar capacidade cognitiva de longo prazo por uma carreira altamente lucrativa no curto prazo
- Sindicatos poderiam, em teoria, desacelerar esse processo
- Em outras indústrias, já conseguiram fazer empregadores frearem a corrida para o fundo do poço
- Mas há pessimismo em relação a sindicatos na área de tecnologia, porque os salários são altos e o trabalho pode ser feito de qualquer lugar do mundo, o que facilita a substituição por outra mão de obra
- A carreira de um atleta profissional dura, em geral, no máximo cerca de 15 anos, com a chance de ganhar muito dinheiro até meados dos 30 anos, mas depois o corpo deixa de acompanhar
- Uma figura trágica bastante comum hoje é a do atleta profissional que acredita que “o show vai continuar para sempre” e não se prepara para a aposentadoria
- Engenheiros de software também podem ser a primeira geração colocada nessa mesma situação e, se for esse o caso, é sensato se planejar de acordo
1 comentários
Opiniões do Hacker News
Tenho essa mesma conversa várias vezes por semana: alguém diz que “a IA vai tornar os desenvolvedores irrelevantes”, então eu pergunto por quê, e a resposta é “porque LLMs conseguem escrever código”
Só que, no trabalho que faço para ganhar a vida, escrever código era antes 2~5% e hoje é ainda menos; o resto é entender as coisas e aplicar a capacidade de estruturar soluções
Desenvolvedores que ainda acreditam que o trabalho de desenvolvedor é digitar código talvez não tenham emprego no futuro, e empreendedores que acham que podem substituir desenvolvedores por LLMs e tocar sem eles no fim serão tratados pela seleção natural
Lá pelo quarto dia ele disse: “vou te ensinar a coisa que mais ajudou a minha carreira”, e então falou: “numere sempre os cartões perfurados, assim, se eles caírem, dá para recolocar na ordem facilmente”
Como isso já era muito depois da era dos cartões perfurados, fiquei decepcionado, mas ele acrescentou: “eu disse que isso ajudou a mim, não que ajudaria você. O software está sempre mudando”. Penso nisso com frequência hoje em dia
Também entra aí o tempo de bater a cabeça na parede para fazer funcionar um código reescrito para uma API mal documentada
A formulação do comentário original faz a engenharia de software parecer uma atividade pura e nobre, como matemática, mas na realidade, mesmo entrando com um plano, quando ele não encaixa no mundo real e você precisa dar marteladas em metal para alinhar uma coluna de perfuração sob prazo apertado, isso se parece mais com o trabalho de um operário de perfuração
E o trabalho de “entender as coisas e estruturar soluções” também é uma área na mira da IA
Pode ser apenas que você esteja num ambiente em que suas contribuições são reconhecidas, ou numa indústria/domínio pouco presente nos dados de treino, ou num espaço de problemas complexo demais para a IA lidar
Quem resolve tickets no Jira e faz apps web CRUD tem grandes chances de ver o sustento desaparecer com frequência, ou de ser cobrado a entregar mais pelo mesmo salário ou menos, correndo atrás com IA
Se der certo, vai dar certo, o método vai se espalhar e rapidamente ficará acessível a todos, e o progresso continuará
Se não der, isso vai aparecer na falta de resultados reais, e “eu estou vendo” não basta. Tem que ser uma realidade inevitável e inegável que todos possam ver e usar
Talvez um conselheiro de CTO de altíssimo nível numa big tech, mas aí já estamos falando de uma posição raríssima
A reação polarizada à IA parece depender da lente usada. Funções júnior estão desaparecendo rápido, mas, em funções sênior, experiência e julgamento são mais importantes do que nunca
Então a engenharia de software pode realmente deixar de ser uma carreira para a vida toda para muita gente. É parecido com esportes de elite, que não são uma carreira realista para a maioria, mas ainda assim algumas pessoas farão disso sua profissão, e precisarão fazê-lo
Minha experiência foi o oposto completo. Engenheiros muito qualificados que de fato tentam usar as ferramentas mais recentes, inclusive gente na faixa dos 40 e 50 anos, estão muito melhores do que antes
Um dos motivos pelos quais programadores tradicionais enfraquecem na prática com o tempo é que, como no xadrez, concentração e cálculo profundo diminuem. Um enxadrista mais velho entende muito mais de xadrez do que um gênio de 19 anos, mas não consegue calcular por tanto tempo na mesma velocidade, e no fim a experiência perde para a capacidade bruta de cálculo
Claude Code e Codex aliviam essa carga de cálculo, enquanto todos os instintos acumulados pela experiência e a “intuição” de 2 segundos continuam intactos
Agora não só ficou uma disputa justa; ficou injusta ao contrário. O sênior que antes liderava uma equipe de 6 pessoas agora lidera uma equipe de agentes e revisa código como sempre fez. Às vezes é até mais fácil mudar a direção dos agentes do que a dos júniors ao redor
A questão urgente, mas ainda sem resposta, é se dá para formar bons arquitetos sem passar pelas trincheiras do trabalho prático
LLMs também fazem algo parecido com intuição, então é preciso distinguir. LLMs se parecem mais com o inconsciente coletivo da internet, claramente diferente do gosto que nasce de experiências boas e ruins
A intuição que emerge no fim é “bom gosto”, e isso está muito próximo do trabalho central de funções sênior em qualquer área técnica
Na agricultura, quem foi substituído pelo trator não manteve o emprego. O que seria diferente agora?
A equipe de 6 pessoas não é mais necessária e, logicamente, é removida da empresa
Então engenharia de software continuará sendo profissão para alguns, mas o número de pessoas pode cair 85%
Mas aquela empresa não existe mais, e demoro bem mais para aprender a trabalhar com eficiência nas ferramentas novas de hoje, porque não passei 10 anos absorvendo os detalhes desse novo ambiente
Então a IA me economiza um tempo enorme para descobrir a sintaxe correta e lembrar detalhes do framework de testes unitários. Se eu ficar 1~3 anos nisso, provavelmente vou ficar muito mais rápido e conhecer melhor as ferramentas
Se esse único engenheiro sênior desaparecer, não sobra nada. É melhor ter a equipe de 6 pessoas
A ideia de que “usuários de IA vão atrofiando suas capacidades técnicas com o tempo e se tornam engenheiros menos eficazes” infelizmente me parece, em linhas gerais, correta no longo prazo
Profissionalmente, as pessoas em geral se dividem em dois grupos: as que usam IA para reforçar o raciocínio e as que usam IA para substituir o raciocínio. O primeiro grupo não me preocupa tanto; o segundo, sim
Minha mãe, que é professora de ensino médio da rede pública nos EUA, reclama que muitos alunos tratam o “Google AI overview” como fonte de verdade absoluta
Talvez isso seja um fenômeno novo semelhante ao antigo “não pode citar a Wikipedia”, mas ela sente que, desde a pandemia, a capacidade de pensamento crítico dos alunos que entram em sala caiu de forma perceptível
Já existe há uma ou duas gerações gente criada num ambiente em que influenciadores e anônimos da internet dizem do que gostar, do que não gostar e no que acreditar. Essas pessoas já terceirizavam o raciocínio antes mesmo dos LLMs e não parecem preparadas para interagir de forma produtiva com sistemas projetados para fazê-las sentir que estão obtendo o que querem, mesmo com qualidade duvidosa
O PR inteiro tem a marca do Claude, e é seguro supor que quase não houve edição. Esse é o grupo A
Por outro lado, também tenho colegas que vão até o fim no problema, montam um harness para testar a mudança, validam o resultado, passam por várias soluções até sintetizar um resultado ideal, fazem benchmark, refinam, testam exaustivamente e oferecem no PR um procedimento de validação sensato. Esse é o grupo B
São dois modos de usar IA completamente diferentes. O grupo A parece estar se virando por enquanto, mas o grupo B é uma nova versão do que é possível dentro do tempo disponível e define um novo padrão de engenharia de software que eu raramente via fora de ambientes excepcionalmente profissionais
Acho que o grupo A vai ser empurrado para fora do setor bem rápido. LLMs permitem trabalhar de forma impressionantemente eficaz, desde que exista vontade de aprender. Esse rigor pode virar o padrão e talvez seja o único jeito de humanos continuarem sendo componentes úteis dentro do loop
Anecdoticamente, parece que no começo deste ano houve mesmo uma mudança no mercado de contratação de software nos EUA. Parece que cada vez mais empresas estão adotando uma estratégia de espera para não superinvestir em capital humano nos próximos anos
Sinais de contratação que já eram fracos agora parecem ter desaparecido de vez
Você publica uma vaga e recebe mais de 500 candidaturas e cartas de apresentação escritas por LLM, todas com aparência e tom parecidos
A comparação do texto com atletas profissionais me soa meio estranha. Em trabalhos que rendem dinheiro pelo corpo, os problemas físicos do envelhecimento são claros; já em áreas de trabalho intelectual como direito ou medicina, há muita gente altamente qualificada e afiada ainda nos 40 e 50 anos
Conheço casos de gente que nunca tinha recebido uma única mensagem de recrutador de big tech e agora recebe contato todo dia
Também vi gente dizendo que isso tem a ver com a expiração, no ano passado, de uma certa cláusula americana, mas sou leigo demais para discutir a causa
Em vez disso, a sensação é de que a economia está à beira de despencar, ou pelo menos numa montanha-russa. Os incentivos fiscais para contratar são fracos, a era dos juros zero acabou faz tempo, e recrutadores estão soterrados por candidaturas cheias de ruído
Mesmo assim, chefes adoram dizer que é por causa da IA, porque isso faz parecer que eles estão no controle
Continuo lendo que, se a IA causar isso, “as pessoas podem se requalificar para outra profissão”, mas nunca vejo qual seria essa profissão nem quem pagaria o custo da requalificação
Eu não tenho dinheiro nem tempo para voltar à universidade e começar uma nova carreira do zero
Isso é verdade, mas só até deixar de ser
Um exemplo clássico de como esse tipo de raciocínio pode falhar enormemente é a teoria de Malthus. A ideia de que o crescimento dos alimentos é linear e o da população é exponencial, então a população entraria em colapso, era de fato verdadeira em toda a história anterior ao momento em que Malthus fez essa observação
No plano mecânico, a lógica de “sempre encontramos outros empregos” ignora que isso só foi possível porque os humanos sempre tiveram vantagem intelectual sobre a automação
Mesmo a entrada humana simples numa linha de montagem dependia, no fim, da capacidade humana de fazer ajustes sutis, quase invisíveis, que robôs não conseguiam fazer
Mas, se algo próximo de AGI realmente funcionar, o trabalho humano não terá vantagem alguma sobre a automação, então não está claro por que a lógica passada de que “a automação criou mais empregos humanos” deveria continuar valendo
O governo vai pagar só o suficiente em assistência para manter a situação administrável e depois vai demonizar culturalmente essas pessoas como luditas ou algo do tipo
Claro, por algum tempo ainda existirão trabalhos que exigem esforço físico humano, mas, na prática, muitos empregos braçais são feitos em outras partes do mundo onde o salário é menor
Funções não exportáveis, como encanador ou garçonete, têm demanda limitada. Não dá para empurrar 50% da força de trabalho white-collar atual para esses empregos e esperar que todos encontrem trabalho facilmente ou recebam salários decentes. Essa demanda não existe
Ao mesmo tempo, enquanto empregos white-collar desaparecem, trabalhos físicos “de baixa qualificação” também estão sendo automatizados aos poucos. Caixas de autoatendimento reduzem empregos no varejo, robotáxis e entregas por drone reduzem empregos em entrega e logística, e robôs de armazém vão reduzir empregos em depósitos
Parece haver uma suposição implícita de que a IA criará muitos empregos bem pagos que precisem de empregadores humanos e que, ao mesmo tempo, não possam ser terceirizados para o exterior por um custo menor. Que profissão bem paga seria essa, imune tanto à IA quanto à terceirização? Todo mundo vai virar faxineiro de alto salário? Não faz sentido
O conselho atual para se requalificar como trabalhador da construção ou encanador parece assumir que a demanda por esse tipo de trabalho é infinita, mas não é. Mesmo que a demanda por construção exploda, levaria anos para ter equipamentos, cadeia de suprimentos e infraestrutura suficientes para absorver milhões de pessoas no setor
O cenário mais provável é que as pessoas percam o emprego e fiquem presas numa competição descendente sem fim pelos poucos trabalhos que restarem na economia doméstica. O resto será terceirizado ou feito por robôs e IA
O melhor conselho é começar a se preparar para essa realidade. Não se deve presumir que o governo vai proteger você ou sequer que possa fazê-lo. Quando a riqueza se concentra, a corrupção é quase inevitável, e políticos também têm famílias das quais cuidar
Isso precisa ser levado a sério. Mesmo que eu esteja errado, é melhor se preparar para o pior do que presumir que tudo vai dar certo e que você poderá se requalificar para um novo emprego bem pago
Meus pais eram ambos trabalhadores da construção. Existe a consciência de que não dá para ficar levantando peso para sempre
No fim, eles param de carregar coisas e viram encarregado ou supervisor. Se for desconfortável aprender a fazer outras pessoas executarem o trabalho que antes você fazia com as próprias mãos, seu corpo acaba totalmente destruído, e o resultado é terrível
Isso é uma realidade concreta, mas também foi uma analogia importante para eu internalizar a ideia de delegação na minha carreira. Não é algo totalmente desconectado do uso de IA, embora eu não ache que o encaixe seja perfeitamente limpo
Eu queria que pessoas aparentemente inteligentes parassem de usar analogias de abstração como no texto. A palavra-chave aqui é determinismo
Toda camada de abstração, de ferramentas elétricas a C, adicionou uma camada determinística em que se podia confiar, produzindo sempre o mesmo resultado e permitindo trabalhar de forma mais eficaz
LLMs descrevem a programação em linguagem natural e o resultado, na melhor das hipóteses, varia. Por isso surgem agentes e a necessidade de empurrar os resultados no brute force
Acho que o verdadeiro fosso defensável continua sendo ser alguém que ainda sabe programar de verdade
Você não executa diretamente a saída do LLM; usa o LLM para gerar um artefato uma vez e depois executa esse artefato de forma determinística
A especificação vira código uma vez, e editar a especificação pode atualizar o código, mas não é como reconstruir o programa inteiro do zero toda vez. Então por que o determinismo seria importante?
Por exemplo, como Mark Zuckerberg construía software 5 anos atrás?
Ele também podia abrir um editor como eu, mas, dadas as circunstâncias, tinha à disposição outra interface: recursos humanos. Em vez do editor, interagia com essas pessoas, e elas construíam o software
Essa camada entre ele e o sistema construído, seja determinística ou não, é uma abstração
Hoje temos autoridade mais ampla para delegar mais trabalho do que tínhamos alguns anos atrás
Dependendo da sua visão sobre livre-arbítrio, também dá para argumentar que humanos são efetivamente determinísticos
O conceito que você está tocando aqui é que LLMs e humanos são funções opacas. Não dá para reduzir seu funcionamento a uma sequência de etapas lógicas que caibam na cabeça, não há invariantes que decomponham a complexidade de forma limpa em alguns estados interpretáveis, e os espaços de entrada e saída não são estruturados, são ambíguos, incompletamente especificados e praticamente infinitos
Por isso é quase impossível raciocinar ou sintetizar sobre eles com as estratégias e análises que aplicamos a programas tradicionais
Você pode adicionar não determinismo opcionalmente introduzindo fontes de entropia, mas isso não é essencial. Se todos os provedores de LLM fixassem o seed do gerador pseudoaleatório, quase ninguém perceberia
Não acho que existam muitos fluxos de trabalho que dependam de enviar exatamente o mesmo prompt várias vezes e contar com a saída ter alguma distribuição estatística. Na verdade, você pode acabar recebendo respostas em cache mesmo quando não quer
Se por engenharia de software você quer dizer digitar código num editor de texto, caractere por caractere, vai ficar mais difícil encontrar alguém disposto a pagar por isso
Mas se você quer dizer construir software, então estamos construindo mais software do que nunca, e a definição do que é software também está mais diversa do que nunca. Acho que daqui podem se abrir várias carreiras diferentes
O interessante é que a engenharia de software também precisa evoluir. Processos e ferramentas também devem evoluir, como fizeram ao longo dos anos
Quando me formei na faculdade em 2004, estudávamos o período da “crise do software”, os processos waterfall e o começo das novas “metodologias iterativas”
Também estudávamos a passagem do código espaguete para programação estruturada em Pascal/C, e depois para programação orientada a objetos
As metodologias de engenharia também evoluíram. Houve o famigerado UML, métodos formais como a linguagem Z para verificação formal e medidas de complexidade de software como ABC e complexidade ciclomática
Hoje, como o computador está passando a escrever a maior parte do código, o valor das linguagens atuais e dos processos atuais de desenvolvimento de software está diminuindo. Linguagens de programação foram feitas para humanos. Caso contrário, continuaríamos escrevendo em assembly
Agora precisamos mudar a abstração que usamos para comunicar intenção ao computador e verificar se as instruções finais fazem o que queremos
Tenho muita curiosidade sobre essa nova abstração. Acredito que, quando os pequenos detalhes da codificação forem totalmente automatizados, talvez vejamos mais rigor verdadeiramente engenheirístico nas profissões de engenharia de software
Agora imagine que, em 2026, as duas empresas concluam que a IA deixa os desenvolvedores 10 vezes mais rápidos. Não estou dizendo que isso seja real; é só um número redondo
A empresa 1 demite 90 programadores e faz o mesmo trabalho com 10
A empresa 2 mantém todos os programadores e faz 10 vezes mais, talvez até contratando mais
Quem vence no mercado?
A resposta, como sempre, é “depende”, mas acho que o espaço em que a empresa 1 pode vencer é muito menor do que o da empresa 2. Exige uma combinação muito específica de condições de mercado; não é impossível, mas apostar que você é a exceção é arriscado
Durante a aceleração, enquanto a nova realidade ainda não assentou, a resposta da empresa 1 pode parecer superficialmente atraente para o pessoal do financeiro
Mas, em qualquer mercado, se uma única empresa escolher a solução da empresa 2 e disparar na frente, o resto do setor inteiro será obrigado a seguir para competir de verdade
No médio e longo prazo, também parece improvável que a criação de valor que um programador individual gera e que pode ser capturada em salário diminua
Historicamente, os empregos criados pela automação tendiam a ter salários menores e menos autonomia
Em outras palavras, se toda empresa reinventa a roda várias vezes. Aumentar em 10 vezes o desenvolvimento de software que não traz nada de novo além de ter sido escrito num framework novo e brilhante não tem utilidade
Na minha opinião, deveríamos começar a eliminar a maior parte do software. Voltar ao básico, ver o que é necessário, melhorar isso e concluir. Seria bom terminar um software ao menos uma vez
software engineerporsecretaryecreating softwareportyping correspondence, a frase continua valendoNum mundo em que a IA resolveu a programação e o design de software, o valor vai se acumular para pessoas com expertise em outros domínios. Elas agora terão o poder de 1000 desenvolvedores profissionais, e o valor não vai se acumular para pessoas com habilidade redundante, diante de ferramentas de IA melhores, mais rápidas e mais baratas
A menos que eu esteja perdendo alguma coisa, há um problema lógico claro aqui
Se usar LLMs para ganhar produtividade exige aceitar atrofia de habilidades, então nós, desenvolvedores com vida útil limitada, somos os únicos substituíveis. A próxima geração nem terá desenvolvido essas habilidades manualmente, então não terá um conjunto de competências para atrofiar
E proponho proibir publicamente a analogia de que “geração de código por LLM é como geração de código de máquina por compiladores”. Já cansou ficar repetindo o mesmo debate da mesma ideia