O Desenvolvedor acabou! Será?

O DEVIN representa um avanço significativo na automação do desenvolvimento de software, oferecendo uma nova abordagem para a criação de sistemas e levantando questões importantes sobre o futuro da profissão de desenvolvedor. Embora o DEVIN possa aumentar a eficiência e a produtividade no desenvolvimento de software, é importante considerar os desafios e responsabilidades éticas que surgem com o uso dessa tecnologia, além de como os profissionais podem se adaptar a essa nova realidade e continuar a agregar valor no mercado de trabalho. O Desenvolvedor acabou! Será?

É pessoal, acabou! Ou não? A inteligência artificial generativa (IA) tem se mostrado cada vez mais presente no desenvolvimento de software, trazendo promessas de maior eficiência, produtividade e até mesmo mudanças graves na dinâmica do mercado de trabalho. Recentemente a empresa Cognition AI apresentou o DEVIN, uma IA capaz de desenvolver códigos com base em prompts, gerando sistemas completos em diversas linguagens. Comn isso fica o questionamento: “O Desenvolvedor acabou! Será?”

1 – Quem é o DEVIN

A empresa Cognition AI, localizada em Nova York e São Francisco nos Estados Unidos, apresentou uma ferramenta que promete ser revolucionária. Trata-se de uma IA capaz de desenvolver códigos apenas com base em prompts. Então, a empresa apresentou o Devin, uma ferramenta capaz de criar sistemas em Python, Rust, C++ e provavelmente lidar com qualquer linguagem (sem distinção), desde o front-end até o banco de dados.

É bem verdade que eles mostraram apenas alguns poucos vídeos, disseram que receberam grandes investimentos, e mostraram situações não muito complexas. Estou dizendo, com isso, que temos apenas uma promessa e ninguém sabe se será efetiva. Entretanto, ferramentas como essa ganharão cada vez mais destaque e importancia. É só esperar: O Desenvolvedor acabou! Será?

Lendo a documentação dinamicamente

Assim, sabemos que muitos programadores não leem documentação ou mesmo aqueles que leem não gostam. Desse modo, o Devin interpreta um prompt e perceber que uma determinada api ou framework é adequado para o problema. Assim ele se aprofunda lendo e entendendo todas as nuances da documentação corrente.

Low-code e No-code

Esse é apenas um palpite, mas imagino que quem trabalha com ferramentas mais engessadas (Low-code e No-code) serão rapidamente substituídos por engenheiros de prompt. Portanto, veja que os engenheiros têm a real necessidade de saber codificar e, por conta disso, algumas organizações vão decidir continuar com os profissionais que têm.

2 – Responsabilidade nas falhas das decisões

Esse problema é comum a toda a IA Generativa: quanto a empresa tolera falhar aquela atividade em específico? Se um software for produzido dessa maneira, cobrindo o core-business, o que fazer com as falhas? O processo de revisão terá de ser feito com grande cautela.

Sobrecarga cognitiva e consequencia inesperada

Ainda falando em responsabilidade, o programador não precisará pensar tanto, logo ele não terá o mesmo domínio do código que um programador tradicional. Entretanto ele será mais produtivo e agregará mais conhecimentos. A sobrecarga cognitiva será elevada por isso e por conta da pressão de mercado por ter menos profissionais.

Assim, nesse mesmo sentido, como o desenvolvedor criará seus sistemas baseados em prompts, ele não terá o domínio do código, das consequências das chamadas e relação com outros sistemas. No artigo Operações Isentas de Efeitos Colaterais comento sobre os efeitos colaterais que determinadas operações escondem. Com o Devin simplesmente todas as operações, de certo modo, serão desse tipo.

Programador ou revisor de código

Um programador gasta um bom tempo entendendo a demanda, ela pode vir diretamente do cliente/usuário, do analista de negócios, PO/PM, etc. Ele gasta outro tempo realizando o desenvolvimento, testando, debugando, e depois implantando (dependendo do ciclo de vida de desenvolvimento em específico).

Pois bem, com ferramentas como essa o desenvolvedor deverá ser capaz de criar bons prompts, avaliar o código gerado, sugerir correções, melhorar seus prompts, num processo de melhoria contínua. Entretanto teremos um problema na qualidade dos programadores: o pessoal da velha guarda, pré-ia serão muito mais sagazes do que os pós-ia nessa tarefa e não tenho ideia de como corrigir esse gap.

Segurança das aplicações

Essa é uma questão interessante. Se por um lado o devin poderá criar com muita produtividade por outra, não se sabe quais serão as práticas relacionadas as segurança. Certamente ele terá alguns guard-rails produzidos pela própria empresa, mas acreditar que isso é produzir software seguro é outra coisa. O trabalho de revisão deverá considerar isso com fervor, sob pena de ter exposição à vulnerabilidades que terão todas as aplicações construidas via devin ao mesmo tempo.

Privacidade

Essa é outra questão já batida quando o debate era o github copilot. Os dados de negócio mais sensíveis ficarão na mão de uma organização em específico. Veja que isso não é um problema, mas ela ainda tem que ter credibilidade para tal, como é o caso de uma AWS, Azure, GCP, mas ainda não é da Cognition AI.

Hype e as novas balas de prata

Gosto muito de pensar as novidades do mercado através da visão do Hype Cycle do Gartner. A ideia em resumo é que um produto quando lançado gera expectativas; as expectativas entram num pico inflacionado; depois muitos acrerditam que é inútil (indo para um extremo oposto); e depois o mercado encontra um meio termo. No meio termo entendemos que a solução não é uma panaceia mas também não é inútil. Ela se torna o nirvana dos sêniores, ela vira o ‘Depende’.

Não faz muito tempo em que escrevi o artigo No Silver Bullet, de novo, onde relembro o famoso artigo de Frederick Brooks de 1986. Nele o autor demonstra uma descrença na ideia de uma solução mágica para resolver os problemas de desenvolvimento de software, não importanto a abordagem. Será que o Devin será imune a esssa hipótese? Ficamos na dúvida: O Desenvolvedor acabou! Será?

3 – Design de sistemas

Ao utilizar uma IA generativa bons prompts serão algo fundamental. Até porque, a partir de um prompt baseado no negócios, ele não dirá que DDD ou EDA são mais ou menos adequados. Ou se devemos utilizar MVC, Angular, etc. Essas decisões deverão fazer parte do prompt para que a aplicação não fique descontextualizada de um crescimento da organização.

Engenharia de prompts

Então, os desenvolvedores poderão se tornar grandes engenheiros de prompt, com habilidade de gerenciar uma carga cognitiva ainda maior. Nesse processo, como comentei, elementos puramente tecnológicos serão adicionados. Restrições arquiteturais serão informadas. Como por exemplo, há a obrigação de usar MongoDB ao invés de qualquer alternativa.

Recentemente escrevi o artigo Architectural Decision Record, que são conjuntos de decisões de referência para os trabalhos de arquitetura, seja de negócios, aplicação, tecnologia, etc. Note que isso será fundamental para se construir bons prompts.

A acensão da arquitetura corporativa

Essa é a conclusão que tirei de tudo isso. O trabalho do desenvolvedor deverá se voltar para interpretação estratégica do negócio, das percepções de futuro, dos custos e riscos, do que efetivamente do código. Teremos um ganho significativo na engenharia de software, ganhando novas camadas de abstração.

Hoje a arquitetura corporativa como diagramas C4, Archimate, usando TOGAF são marginais e várias empresas ignoram, desconhecem ou dão pouca credibilidade. A percepção que tenho é de que bons programadores se aprofundarão nesse tema, de forma a produzir prompts de base. Engenheiros deverão usar tais promts antes dos mais específicos.

Me parece que emergirá o que estou chamando de Enterprise As Code (EaC). Crio com esse conceito a ideia de que toda a companhia precisa ser codificada. Por exemplo, se uma empresa tem uma estratégia de negócio de adquirir outras menores, analisando dados financeiros e de governança; num segundo momento essa empresa comprada é mesclada a atual e um produto é gerado.

Ao ver esse exemplo pense: como codificar isso para que IA’s generativas possam considerar em seus inputs de maneira integrada? Ou planos estratégicos? Pois bem, soluções como Archimate podem ajudar, mas talvez novas emergirão.

O Desenvolvedor acabou! Será? Onde está a Criatividade genuína

Como comentei, por mais que o Devin tome decisões, revise-as. Ou mais do que isso, as diga no seu prompt. Programadores que simplesmente copiam código de Stack Overflow ou de Chat GPT terão pouco espaço nessa nova economia que disponta. Soluções realmente criativas, que organizam recursos que não são capturáveis pelas IA’s serão fundamentais para a permanência no mercado.

4 – Mercado

Pois bem, isso pode mexer bastante com o mercado. Profissionais bem estabelecidos podem não ser mais necessários, novos profissionais podem surgir, além das novas necessidades de treinamento. As organizações poderão tomar ações enérgicas trocando sua estrutura interna e impactando famílias.

Por outro lado, ainda não se sabe o custo de devin, como é o seu uso em cenários reais, desempenho, etc. Eles são os pioneiros e isso é um grande desafio para eles. Em breve surgirão competidores ainda melhores e mais eficáveis. Outros poderão lidar com outras áreas de TI como segurança, operação, banco de dados, etc.

Note que estamos entrando numa segunda camada de IA Generativa. Assim a primeira era o Chat GPT e semelhantes que suportam essencialmente texto puro. Estamos avançando para ferramentas de IA específicas para segmentos de mercado. Arquitetos, Engenheiros, Advogados, Médicos, etc. passarão pelo mesmo tipo de transformação.

Preço do devin versus preço do dev

Essa ferramenta foi apenas anunciada e gerou um grande reboliço na comunidade dev. Mas veja: ela ainda não foi disponibilizada (MARÇO DE 2024). Ninguém sabe o preço dela, mas ela tenderá a nivelar o preço dos desenvolvedores. Se uma empresa paga 5K para um desenvolvedor mas pode pagar 4K para o devin, ela vai considerar uma potencial troca.

Não me parece que ela seria capaz de eliminar a necessidade de desenvolvedores, mas sim de reduzir a quantidade uma vez que a produtividade de um só desenvolvedor seria muito maior do que antes.

Acerta 13.86%

No site da empresa eles tem um comparativo da capacidade deles corrigirem bugs versus os competidores deles. A taxa do devin é muito superior, mas o número 13 é ruim e concorrentes precisão se esforçar para entregar algo melhor.

Gráfico comparativo do Devin (IA Generativa de programação, seu engenheiro de software IA) mostrando que resolve 13% dos bugs.

Conclusão de O Desenvolvedor acabou! Será?

Para finalizar o artigo O Desenvolvedor acabou! Será? Note que o DEVIN representa um avanço significativo na automação do desenvolvimento de software, oferecendo uma nova abordagem para a criação de sistemas e levantando questões importantes sobre o futuro da profissão de desenvolvedor. Embora o DEVIN possa aumentar a eficiência e a produtividade no desenvolvimento de software, é importante considerar os desafios e responsabilidades éticas que surgem com o uso dessa tecnologia, além de como os profissionais podem se adaptar a essa nova realidade e continuar a agregar valor no mercado de trabalho. Então fica a questão: O Desenvolvedor acabou! Será?


Thiago Anselme
Thiago Anselme - Gerente de TI - Arquiteto de Soluções

Ele atua/atuou como Dev Full Stack C# .NET / Angular / Kubernetes e afins. Ele possui certificações Microsoft MCTS (6x), MCPD em Web, ITIL v3 e CKAD (Kubernetes) . Thiago é apaixonado por tecnologia, entusiasta de TI desde a infância bem como amante de aprendizado contínuo.