Projetos de modernização de software frequentemente nascem como promessas de arquiteturas distribuídas elegantes e terminam como pesadelos de manutenção. A resposta para esse fracasso reside em um princípio formulado décadas antes da nuvem, dos microsserviços ou da IA Generativa: A Lei de Gall.

"Um sistema complexo que funciona invariavelmente evoluiu de um sistema simples que funcionava. Um sistema complexo projetado do zero nunca funciona e não pode ser consertado. Você precisa começar de novo, a partir de um sistema simples que funciona." — John Gall

Em uma era dominada pelo hype, que nos empurra para arquiteturas event-driven com dezenas de microsserviços, agentes autônomos de IA e esteiras complexas de observabilidade desde o Day 1, a Lei de Gall atua como um lembrete brutal: a complexidade inicial é uma aposta perdida.

É tentador iniciar um projeto projetando a versão definitiva e final do sistema. No kickoff de uma nova plataforma, a tendência natural das equipes é desenhar a arquitetura que a empresa precisará daqui a cinco anos. O quadro branco rapidamente acumula filas de mensagens, API gateways, service meshes, caches distribuídos e camadas de orquestração.

O problema? Sistemas complexos não nascem prontos. Eles crescem.