Escrito originalmente em francês. Traduzido por IA — o sentido foi preservado, não a prosa.
Ideia principal
Uma especificação completa é uma ficção: mesmo bem escrita, ela deixa zonas mudas — casos-limite, mensagens de erro, comportamentos implícitos, regras de segurança, tempos de expiração, microinterações, decisões de recuo. Essas zonas sempre foram preenchidas pelo desenvolvedor na hora de codar, sem que ninguém chamasse isso de decisão de produto.
Entregar uma parte do código a um agente elimina esse preenchimento silencioso. É preciso dizer o comportamento esperado, decidir os casos-limite, escrever os critérios de aceitação e conferir a saída, porque a máquina não compartilha nem o hábito da equipe nem a memória das arbitragens passadas. O que era absorvido na implementação sobe à superfície e vira um objeto a enquadrar.
A mudança, portanto, não é que essas decisões apareçam: elas já existiam. É que elas deixam de ser invisíveis, e fica impossível fingir que são apenas questão de execução.
Por que isso importa
Isso transforma uma carga de escrita aparentemente extra numa revelação útil: o tempo gasto para explicitar um comportamento para um agente é tempo gasto numa arbitragem que antes era feita sem deixar rastro.
E isso desloca o debate sobre a responsabilidade de produto dos desenvolvedores: eles não começam a decidir, eles já decidiam — delegar a uma máquina apenas torna a coisa visível e discutível.
Nuances e limites
Explicitar tem um custo, e nem sempre compensa: num comportamento trivial, escrever o que um desenvolvedor teria decidido em três segundos consome mais do que rende.
E o agente também preenche os silêncios, do jeito dele: sem instrução, ele produz uma decisão padrão que tem toda a aparência de uma escolha. O risco passa então do não dito para o não revisado.
Questões em aberto
- Quais zonas mudas merecem ser escritas de uma vez por todas como regras de equipe, em vez de decididas a cada funcionalidade?