Quando falamos em desenvolvimento com inteligência artificial, qual é a primeira coisa que vem à cabeça?
Talvez um prompt parecido com este:
“Crie um sistema escalável, seguro e pronto para produção.”
O problema é que escalabilidade e segurança não surgem apenas porque essas palavras foram incluídas no prompt.
Um modelo pode gerar rapidamente APIs, bancos de dados, testes e arquivos de infraestrutura. Porém, sem requisitos claros, critérios de aceitação, decisões arquiteturais e mecanismos de validação, ele também pode produzir uma solução aparentemente funcional, mas difícil de manter, insegura ou incompatível com o contexto real do negócio.
É nesse ponto que muitos gestores e empresas entram em conflito com o desenvolvimento assistido por IA: confundem velocidade de geração com qualidade de engenharia.
Modelos com 7B, 15B, 32B ou centenas de bilhões de parâmetros podem apresentar diferenças relevantes. Entretanto, o número de parâmetros não determina sozinho a qualidade da solução. Capacidade de seguir instruções, treinamento para programação, janela de contexto, uso de ferramentas, acesso ao repositório e qualidade dos testes também influenciam diretamente o resultado.
Além disso, ter uma janela de contexto extensa não significa que o modelo utilizará todas as informações com a mesma eficiência. Estudos sobre o fenômeno conhecido como lost in the middle mostram que informações posicionadas no meio de contextos longos podem ser recuperadas com menor precisão. [1]
Por isso, em alguns fluxos de trabalho, utilizo aproximadamente 40% da capacidade disponível como margem operacional. Não considero esse percentual uma regra científica, mas uma heurística para reservar espaço para respostas, código, resultados de ferramentas, erros, testes e ciclos de correção.
Mais importante do que preencher toda a janela de contexto é fornecer o contexto certo, na etapa certa.
É aqui que práticas consolidadas de engenharia voltam a ganhar protagonismo:
✅ TDD, utilizando testes como especificações executáveis;
✅ BDD, transformando comportamentos e critérios de aceitação em exemplos concretos;
✅ testes unitários, de integração e segurança;
✅ revisão humana e análise estática;
✅ entregas pequenas, verificáveis e reversíveis.
Pesquisas recentes indicam que fornecer testes junto aos requisitos pode aumentar a capacidade dos modelos de produzir implementações compatíveis com o comportamento esperado. [2]
Outra abordagem especialmente interessante é o Spec-Driven Development.
Em vez de entregar ao modelo um pedido amplo e esperar que ele tome todas as decisões, começamos por uma especificação estruturada:
objetivo e problema de negócio;
requisitos funcionais e não funcionais;
restrições técnicas e de segurança;
cenários e critérios de aceitação;
plano de implementação;
tarefas menores, testáveis e rastreáveis.
A especificação passa a ser o centro do processo, orientando a implementação e reduzindo a improvisação frequentemente associada ao chamado vibe coding. Essa abordagem vem sendo aplicada em ferramentas como o Spec Kit, projeto aberto do GitHub para organizar fluxos de desenvolvimento com agentes de IA. [3]
Essa granularização não serve apenas para reduzir o consumo desnecessário de tokens. Ela melhora a rastreabilidade, facilita a revisão, limita o escopo de cada execução e permite identificar exatamente em qual decisão o modelo errou.
Para sistemas seguros, a IA também não substitui um ciclo de desenvolvimento seguro. Práticas como revisão de código, testes de segurança, proteção do ambiente de desenvolvimento, gestão de vulnerabilidades e verificação dos componentes precisam estar integradas ao processo. [4]
Portanto, desenvolver com IA não significa entregar o projeto inteiro ao modelo.
Significa construir um ciclo controlado:
especificar → gerar → testar → revisar → corrigir → integrar → monitorar.
A IA pode acelerar cada uma dessas etapas. Mas arquitetura, segurança, governança e responsabilidade continuam sendo atribuições da engenharia.
O futuro não será apenas de quem escreve os melhores prompts. Será de quem constrói os melhores processos para transformar as respostas da IA em software confiável.
Referências
[1] LIU, Nelson F. et al. Lost in the Middle: How Language Models Use Long Contexts. arXiv, 2023. Disponível em: https://arxiv.org/abs/2307.03172.
[2] MATHEWS, Noble Saji; NAGAPPAN, Meiyappan. Test-Driven Development for Code Generation. arXiv, 2024. Disponível em: https://arxiv.org/abs/2402.13521.
[3] GITHUB. What is Spec-Driven Development? GitHub Spec Kit, 2025. Disponível em: https://github.github.com/spec-kit/concepts/sdd.html.
[4] NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY. Secure Software Development Framework — SSDF Version 1.1. Gaithersburg: NIST, 2022. DOI: 10.6028/NIST.SP.800-218.
Top comments (0)