<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Diuliano Oliveira</title>
    <description>The latest articles on DEV Community by Diuliano Oliveira (@diuliano_oliveira).</description>
    <link>https://dev.to/diuliano_oliveira</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4051510%2Ffe09eb88-836e-4af1-bf4d-035601adeed4.jpg</url>
      <title>DEV Community: Diuliano Oliveira</title>
      <link>https://dev.to/diuliano_oliveira</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/diuliano_oliveira"/>
    <language>en</language>
    <item>
      <title>Programar com IA não é simplesmente pedir código. É projetar um processo.</title>
      <dc:creator>Diuliano Oliveira</dc:creator>
      <pubDate>Thu, 30 Jul 2026 12:17:49 +0000</pubDate>
      <link>https://dev.to/diuliano_oliveira/programar-com-ia-nao-e-simplesmente-pedir-codigo-e-projetar-um-processo-374i</link>
      <guid>https://dev.to/diuliano_oliveira/programar-com-ia-nao-e-simplesmente-pedir-codigo-e-projetar-um-processo-374i</guid>
      <description>&lt;p&gt;Quando falamos em desenvolvimento com inteligência artificial, qual é a primeira coisa que vem à cabeça?&lt;/p&gt;

&lt;p&gt;Talvez um prompt parecido com este:&lt;/p&gt;

&lt;p&gt;“Crie um sistema escalável, seguro e pronto para produção.”&lt;/p&gt;

&lt;p&gt;O problema é que escalabilidade e segurança não surgem apenas porque essas palavras foram incluídas no prompt.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;É 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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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]&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Mais importante do que preencher toda a janela de contexto é fornecer o contexto certo, na etapa certa.&lt;/p&gt;

&lt;p&gt;É aqui que práticas consolidadas de engenharia voltam a ganhar protagonismo:&lt;/p&gt;

&lt;p&gt;✅ TDD, utilizando testes como especificações executáveis;&lt;br&gt;
✅ BDD, transformando comportamentos e critérios de aceitação em exemplos concretos;&lt;br&gt;
✅ testes unitários, de integração e segurança;&lt;br&gt;
✅ revisão humana e análise estática;&lt;br&gt;
✅ entregas pequenas, verificáveis e reversíveis.&lt;/p&gt;

&lt;p&gt;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]&lt;/p&gt;

&lt;p&gt;Outra abordagem especialmente interessante é o Spec-Driven Development.&lt;/p&gt;

&lt;p&gt;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:&lt;/p&gt;

&lt;p&gt;objetivo e problema de negócio;&lt;br&gt;
requisitos funcionais e não funcionais;&lt;br&gt;
restrições técnicas e de segurança;&lt;br&gt;
cenários e critérios de aceitação;&lt;br&gt;
plano de implementação;&lt;br&gt;
tarefas menores, testáveis e rastreáveis.&lt;/p&gt;

&lt;p&gt;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]&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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]&lt;/p&gt;

&lt;p&gt;Portanto, desenvolver com IA não significa entregar o projeto inteiro ao modelo.&lt;/p&gt;

&lt;p&gt;Significa construir um ciclo controlado:&lt;/p&gt;

&lt;p&gt;especificar → gerar → testar → revisar → corrigir → integrar → monitorar.&lt;/p&gt;

&lt;p&gt;A IA pode acelerar cada uma dessas etapas. Mas arquitetura, segurança, governança e responsabilidade continuam sendo atribuições da engenharia.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Referências&lt;/p&gt;

&lt;p&gt;[1] LIU, Nelson F. et al. Lost in the Middle: How Language Models Use Long Contexts. arXiv, 2023. Disponível em: &lt;a href="https://arxiv.org/abs/2307.03172" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2307.03172&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;[2] MATHEWS, Noble Saji; NAGAPPAN, Meiyappan. Test-Driven Development for Code Generation. arXiv, 2024. Disponível em: &lt;a href="https://arxiv.org/abs/2402.13521" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2402.13521&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;[3] GITHUB. What is Spec-Driven Development? GitHub Spec Kit, 2025. Disponível em: &lt;a href="https://github.github.com/spec-kit/concepts/sdd.html" rel="noopener noreferrer"&gt;https://github.github.com/spec-kit/concepts/sdd.html&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;[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.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
