Contextualizando a profissão de desenvolvimento
Antes de seguirmos trabalhando com modelos de inteligência artificial, como os Large Language Models (Modelos de Linguagem Grande), vamos falar sobre como é a profissão. O que é ser uma pessoa desenvolvedora? Como é trabalhar com desenvolvimento de software (programas)? Como era antes e por que está tão diferente? Embora nem sempre façamos essas perguntas no início, elas são especialmente relevantes neste momento da trilha. Vamos ampliar o olhar para entender o que significa ser uma pessoa engenheira, alguém que faz engenharia de software (programas).
No trabalho clássico de uma pessoa desenvolvedora, lidamos com código novo: desenvolvemos uma funcionalidade que ainda não existe. Também lemos código existente para entender o que o sistema faz. Se recebemos, por exemplo, um bug (erro), precisamos primeiro analisar o que está ocorrendo: observar a parte do código que executa aquela função, entender o que está acontecendo, identificar onde está o erro e então solicitar o ajuste ou até conversar com o modelo para corrigir.
Descrevendo rotinas do trabalho de desenvolvimento
Além disso, buscamos manter a base do código em ordem. Às vezes identificamos trechos que podem ser melhorados e aplicamos essas melhorias para facilitar nosso trabalho no futuro. Portanto, não pensamos apenas no agora; mantemos e aprimoramos o que já está em funcionamento.
Também acompanhamos o que outras pessoas, colegas de profissão, estão fazendo. Quando terminamos uma funcionalidade e executamos os testes, submetemos para revisão de código, solicitando que alguém do time revise. Esse processo promove entendimento compartilhado e pode gerar discussões construtivas sobre a implementação, resultando em pequenos ajustes.
Também precisamos depurar quando algo quebra. Essa palavra não existe em português; em inglês temos o termo debug (depurar), que literalmente remete a remover o bug (erro). Acabamos “brasileirizando” como “debugar”, mas a ideia é entender por que está quebrado e corrigir.
Colaborando com o time e enfatizando revisão de código
É fundamental manter conversas e alinhamento com o time, com as pessoas que trabalham conosco — não serão apenas pessoas desenvolvedoras. Haverá pessoas de design, produto e controle de qualidade. Pode haver separação entre especialistas de back-end (lógica de servidor) e especialistas de front-end (interface), e é essencial mantermos conexão constante com essas pessoas.
No dia a dia, o que entregamos? Além de escrever código — essa geração de código é apenas uma parte do trabalho, não o trabalho inteiro.
Revisaremos muito código, seja de outras pessoas ou da IA, e isso será muito importante. Voltaremos a esse ponto, pois a etapa de revisão de código é central.
Comparando o antes e depois com ia
Dissemos que iríamos falar sobre o antes e o depois. Imagine o cenário anterior aos agentes de IA: escrevíamos todo o código, literalmente caractere por caractere. Havia recursos de autocompletar que ajudavam, mas ainda assim precisávamos escrever integralmente o algoritmo, a lógica e o código.
Agora, a IA trouxe aceleração, isto é, acelera a execução. Aquela parte em que precisávamos digitar todo o código que já estava em nossa cabeça pode ser delegada: pedimos à IA e ela gera o código. Passamos a nos concentrar em julgar e decidir se o resultado corresponde exatamente ao que precisamos.
A execução ficou mais rápida e “mais barata”. O que queremos dizer com “barata”? Não que a IA seja barata — ela tem custo e pode ser cara —, mas que a execução consome menos tempo. Antes, ao pensar em uma funcionalidade grande, em sistemas de grande porte, bancários e afins, levávamos tempo para alterar algo ou adicionar uma nova funcionalidade, porque precisávamos escrever e nos preocupar com diversos aspectos e múltiplos contextos.
É aí que a IA acelera. Ela consegue, muito mais rapidamente do que nós, analisar múltiplos fatores e seguir adiante, especialmente quando se trata de algo padrão. Estamos falando de uma linguagem de programação — é uma linguagem —, portanto a IA consegue prever o que precisa ser feito, o que desloca o foco para pensar e decidir.
Destacando o papel humano nas decisões e no entendimento do problema
Podemos até tentar delegar essas decisões à IA, mas ela nunca terá todo o contexto que nós possuímos, principalmente os contextos externos: clientes, pessoas usuárias e, às vezes, aspectos culturais. Entender o problema, hoje, é o que faz a diferença.
Algumas coisas não mudaram. Alguém precisa, de fato, compreender o problema: o que queremos resolver? Precisamos entender que existe um problema; por exemplo, precisamos de uma conta no banco para guardar dinheiro, teremos de pagar contas, transferir valores para outros lugares, existem diferentes formas de transferência e pode surgir a necessidade de uma transferência internacional. Pensar em tudo isso ainda é trabalho humano: o que vamos fazer e qual dor estamos resolvendo.
Além disso, após implementar a solução, alguém precisa avaliar: está adequado? Vamos conseguir manter essa aplicação funcionando nos próximos anos? Esse enfoque é mais ou menos propenso a gerar bugs (erros)? Aprenderemos conceitos como “isso escala ou não escala?”. Podemos continuar incorporando mais pessoas, mais agentes, mais funcionalidades, e fazer isso de forma saudável, sem gerar efeitos colaterais excessivos?
Tudo isso precisa ser avaliado, e quem fará essa avaliação é você. Essa trilha vai ensinar os fundamentos necessários para que você saiba o que pedir e, em seguida, saiba validar se o que foi produzido corresponde exatamente ao que foi solicitado.