Segundo El Maghraoui, os engenheiros de software estão evoluindo de produtores de código para curadores de código. "Embora a programação continue essencial, a ênfase está mudando para a engenharia de prompts. Como formulamos as consultas certas no contexto desses LLMs? E, em vez de escrever cada linha de código, os desenvolvedores estão cada vez mais orquestrando código gerado por IA, unindo as partes.”
Essa evolução, no entanto, é apenas a ponta do iceberg. El Maghraoui acredita que as funções dos desenvolvedores evoluirão para o que ela chama de "engenharia orientada por intenção.” A ideia é se afastar da sintaxe e focar na estrutura, deixar os detalhes mais refinados de lado e ampliar a visão para o panorama geral, além de passar do o quê para o porquê, destacando objetivos, resultados e impacto.
Para McGinn, os LLMs para código podem ser tratados como bibliotecas importadas para um programa. “Os problemas podem ser resolvidos mais rapidamente da mesma forma que as bibliotecas nos ajudam, como engenheiros, a aproveitar funcionalidades que já foram criadas e a não precisar reinventar a roda.”
Essa visão está alinhada à computação generativa. Nesse framework, um modelo de código é integrado aos sistemas como um componente modular de software e tratado como uma interface programável. Assim, ele pode abstrair tarefas de baixo nível, permitindo que os desenvolvedores direcionem mais de seus esforços para a resolução de problemas de ordem superior.
“Eles precisam considerar o pensamento de design em vez de escrever código", diz Satoh. “Precisamos de engenheiros de nível mais alto que possam criar a arquitetura de um sistema.”
É uma função que está se tornando mais multidisciplinar, incorporando não apenas design e arquitetura, mas também outras dimensões, como ética e segurança. "É menos manual e há mais automação, mas é mais estratégico", diz El Maghraoui. “Você está combinando engenharia de software com pensamento em nível de sistema, pensamento de produto e raciocínio ético. Agora, não somos apenas alfabetizados em código, estamos nos tornando engenheiros alfabetizados em IA e orientados por IA.”
Isso abre caminhos para o aprimoramento de habilidades nessas tarefas de nível mais alto, especialmente para desenvolvedores juniores. "O objetivo de muitos benchmarks é alcançar a funcionalidade de um desenvolvedor júnior. Então, se essa é uma métrica que estamos buscando, a ideia é não ter tanta necessidade disso", diz McGinn. “Precisamos de pessoas que tenham um nível mais profundo do que o de um desenvolvedor júnior, ou talvez elas não precisem mais ter passado pela função de desenvolvedor júnior para entender o que um desenvolvedor sênior faz.”