Sua Configuração de Codificação com IA é uma Ferramenta Complicada. Sua Base de Código é Complexa.

Novas ferramentas de codificação com IA prometem tornar os agentes mais confiáveis. Você vê frameworks para habilidades, superpoderes e desenvolvimento orientado a especificações (spec-driven development). Essas ferramentas funcionam. Elas ajudam os agentes a seguir um processo em vez de apenas adivinhar.

Mas há uma armadilha. As pessoas pensam que uma configuração melhor para uma tarefa cria um sistema coerente. Não cria.

Para entender o porquê, use o framework Cynefin. Ele separa os problemas em dois tipos: Complicados e Complexos.

Problemas Complicados Estes possuem uma resposta conhecível. Você usa análise e habilidade para encontrá-la. Exemplos incluem refatorar um módulo ou escrever uma função de validação. Uma vez que você encontra a resposta, pode repeti-la. A maioria das ferramentas de codificação com IA vive aqui. Elas focam na unidade de trabalho. Elas tornam as tarefas repetíveis e verificáveis.

Problemas Complexos Estes não possuem uma resposta previsível. O sistema é uma teia de partes. Os resultados só aparecem depois que você age. Será que quarenta mudanças mescladas quebrarão a arquitetura em seis meses? O Agente A contradirá o Agente B? Você não consegue encontrar essas respostas olhando para apenas um arquivo. Elas emergem da forma como as partes interagem.

O descompasso ocorre quando você espera que ferramentas Complicadas resolvam problemas Complexos.

Uma ferramenta pode fazer um agente escrever uma função perfeita. Mas se uma tarefa usa userId e outra usa user_id, o sistema quebra. Ambas as tarefas estavam "corretas" isoladamente. A falha é emergente. Ela reside na interação, não na unidade.

Mesmo janelas de contexto massivas não conseguem resolver isso. Uma janela maior ajuda você a ver mais, mas ver não é o mesmo que deduzir. Você pode ler uma base de código inteira e ainda assim não saber se ela sofrerá um deadlock sob carga de produção. Isso é uma propriedade de tempo de execução (runtime).

Como lidar com ambos:

  • Para a camada Complicada: Use habilidades, especificações (specs) e TDD. Isso torna a saída individual do agente rigorosa.
  • Para a camada Complexa: Use probe-sense-respond (sondar-perceber-responder). Você não pode prever o que irá quebrar. Você deve mesclar, implantar e observar. Use testes de integração e observabilidade para perceber o que acontece quando as peças se combinam.

Não caia na promessa de que uma especificação melhor torna seu sistema estável. Especificações tornam a unidade confiável. Elas não tornam o sistema coerente.

Combine seu método ao domínio. Use ferramentas para aperfeiçoar a unidade. Use a experimentação para entender o sistema.

Fonte: https://dev.to/bala_paranj_059d338e44e7e/your-ai-coding-setup-is-a-complicated-domain-tool-your-codebase-is-complex-3mkc

Comunidade de aprendizado opcional: https://t.me/GyaanSetuAi