O sistema do qual dependem as operações de uma empresa — aquele que gerencia pedidos, políticas, arquivos ou remessas — não é construído acumulando fragmentos gerados dinamicamente. Ele precisa de um modelo de dados definido, contratos entre módulos, um modelo de permissões e rastreabilidade, e esses quatro elementos são decisões que alguém toma, não resultados obtidos.
A confusão surge porque a geração assistida funciona muito bem na periferia, o que cria a expectativa de que funcionará da mesma forma no centro.
Critério | Sistema central | Sistema periférico |
|---|---|---|
Se parar de funcionar | A empresa para | Alguém está chateado |
Vida útil esperada | 5 a 15 anos | Meses ou alguns anos |
Número de integrações | Muitos e críticos | Poucos ou nenhum |
Custo de um erro | Dinheiro, cliente ou entrega | Tempo perdido |
Quem deveria ser capaz de apoiá-lo? | Qualquer equipe competente | Quem fez isso? |
A primeira linha é suficiente para classificar os casos 90%. Se a resposta para "o que acontece se isso parar de funcionar por um dia?" for que o faturamento, a produção ou o atendimento ao cliente param, então é um caso essencial e merece ser tratado como tal, independentemente do seu tamanho.
Um erro comum é assumir que o sistema central é o mais importante. Existem sistemas pequenos dos quais toda a operação depende, e sistemas enormes que ninguém sentiria falta por uma semana.
O modelo de dados. Como as entidades comerciais são representadas: o que é um cliente, um arquivo, uma remessa; quais relacionamentos elas mantêm; por quais estados transitam. Essa é a decisão mais custosa de reverter, pois tudo o mais se baseia nela.
Limites da propriedade. Qual módulo tem precedência sobre qual informação e qual consulta? Sem essa decisão, três sistemas aparecem gravando os mesmos dados, e não há como saber qual deles está correto.
O modelo de permissões. Quem vê o quê e quem pode fazer o quê, resolvido em uma camada de sistema e não como condições repetidas em toda a aplicação. É isso que determina se um assistente, um portal do cliente ou uma API podem ser adicionados amanhã sem criar uma vulnerabilidade.
Rastreabilidade. O que é registrado para cada alteração e por quanto tempo? É irreversível: o que não foi salvo deixa de existir.
Nenhuma das quatro pode ser delegada a uma ferramenta de geração, porque todas dependem do conhecimento do negócio e da capacidade de antecipar como ele irá mudar.
Seria absurdo abrir mão da velocidade disponível. Dentro de um núcleo bem estruturado, a geração assistida apresenta bom desempenho em:
A regra é simples: A construção é delegada, não a estrutura.. E a revisão continua sendo obrigatória, pelo motivo que explicamos em O código que ninguém entende é o da dívida.
Existe um critério operacional para determinar se um sistema central está bem construído, e ele não requer auditoria: Será que outra equipe conseguiria assumir esse sistema em um mês, sem falar com a pessoa que o criou?
Para que a resposta seja sim, quatro coisas são necessárias: documentação da arquitetura, contratos de integração versionados, testes que expressem o que o negócio espera e decisões explicadas por escrito.
Um sistema que falha nesse teste representa um risco operacional real, independentemente de sua qualidade técnica: a continuidade da empresa depende da disponibilidade de pessoal específico. E também tem um impacto financeiro, pois é justamente isso que é penalizado em um processo de due diligence tecnológica.
Porque a barreira de entrada para produzir algo que funcione diminuiu significativamente, e com ela a barreira para produzir algo que funcione, mas que não seja sustentável.
Os dados do GitClear sobre 211 milhões de linhas de código revelam o padrão: o trabalho de refatoração caiu de cerca de 251 TP3T de alterações totais em 2021 para menos de 101 TP3T em 2024, enquanto a replicação aumentou oito vezes. Mais está sendo construído e menos está sendo estruturado, e em um sistema periférico isso é administrável; em um sistema central, é um fardo.
Quando se trata de decidir como construir um sistema crítico, a conversa útil não gira em torno de metodologia ou ferramentas. Ela se concentra em três compromissos:
Com esses três compromissos, a velocidade de geração é uma vantagem. Sem eles, é a maneira mais rápida conhecida de construir algo que ninguém pode mudar.
É o sistema do qual a operação depende: se ele parar de funcionar por um único dia, a emissão de faturas, a produção ou o atendimento ao cliente são interrompidos. Ele não é definido pelo seu tamanho — existem sistemas centrais pequenos e sistemas grandes que não são pequenos —, mas sim pelas consequências da sua indisponibilidade.
Quatro: o modelo de dados que representa as entidades de negócio, os limites de propriedade que determinam qual módulo tem controle sobre qual informação, o modelo de permissões resolvido como uma camada de sistema e a rastreabilidade das alterações. Nenhum desses aspectos pode ser delegado a uma ferramenta de geração.
Sim, dentro de uma estrutura predefinida: implementação de regras pré-especificadas, uma camada de apresentação, transformações com critérios de aceitação explícitos e documentação de casos previamente descritos. A regra é delegar a construção, não a estrutura.
O teste de transição envolve avaliar se outra equipe consegue assumir o projeto em um mês sem consultar a equipe original. Isso requer documentação de arquitetura, contratos de integração versionados, testes que demonstrem as expectativas do negócio e decisões claramente explicadas.
Existe um risco operacional — a continuidade depende de pessoas específicas — e um risco financeiro, pois é precisamente isso que é penalizado em uma due diligence tecnológica ao avaliar a empresa ou buscar investimento.
Porque a barreira para produzir código funcional diminuiu significativamente. O GitClear documentou que a refatoração caiu de aproximadamente 25% de alterações totais em 2021 para menos de 10% em 2024, e que a duplicação aumentou oito vezes: mais está sendo construído e menos está sendo estruturado, o que em um sistema crítico se torna um fardo.
Você vai construir um sistema do qual sua operação dependerá? Definimos a arquitetura, o modelo de dados e os contratos antes de escrever o código, e transferimos o código e a documentação para você por meio de contrato. Vamos conversar → |