Acho que estamos desperdiçando IA na parte errada do desenvolvimento de software
Passei o último ano construindo ferramentas de desenvolvimento assistidas por IA, e comecei a questionar uma premissa que praticamente toda ferramenta de código com IA parece adotar.
A premissa é: a IA deve gerar tudo.
Depois de centenas de experimentos, começo a achar que isso é ineficiente.
Coisas como:
- autenticação
- RBAC
- CRUD
- roteamento
- estrutura de projeto
- migrations
- validação
- scaffolding de API
são problemas determinísticos.
Já existem padrões e boas práticas bem estabelecidos para a maioria deles. Ainda assim, continuamos pedindo para LLMs regerarem o mesmo boilerplate repetidamente.
Isso significa:
- mais prompts
- mais tokens (que hoje pagamos planos subsidiados, que em algum momento acabarão)
- tempos de geração maiores (que são muito menores em relação aos que nós conseguiríamos programando)
- implementações inconsistentes
- mais debugging
Meu raciocínio atual é quase o oposto.
Gere a fundação da aplicação de forma determinística. Depois deixe a IA focar no que realmente é difícil para humanos:
- regras de negócio
- workflows
- lógica específica do domínio
- melhorias de UX
- edge cases
- refinamento iterativo
Em outras palavras:
Use geração determinística para a infraestrutura da aplicação (CRUDs, RBAC, Login etc).
Use IA para a criatividade.
Fico curioso para saber se mais alguém chegou à mesma conclusão depois de trabalhar bastante com ferramentas de código com IA.
Estou deixando passar alguma coisa? Estou validando uma tese.