Escrito originalmente em francês. Traduzido por IA — o sentido foi preservado, não a prosa.
Ideia principal
Três situações, um único mecanismo. O status de um pedido deduzido de algumas datas e do estado dos seus itens, recalculado em cada tela, sem regra central: duas telas acabam não dizendo mais a mesma coisa, e ninguém sabe qual tem razão. O saldo de um cliente, que não é um número guardado em algum lugar mas o resultado de um cálculo sobre as faturas, os pagamentos, os créditos e os lançamentos de ajuste: cada funcionalidade que "lê o saldo" erra de objeto e devolve um número ligeiramente diferente conforme os movimentos que ela lembrou de incluir. A permissão de acesso de uma pessoa, vinda do seu papel, do plano contratado, das opções ativadas, de uma restrição de período de teste, do perímetro da sua filial e de uma lista de exceções, sem nenhum lugar que diga como ela é calculada.
Nos três casos, a noção existe para os usuários e não existe em lugar nenhum como definição. Ela é, portanto, reconstituída a cada uso, e cada reconstituição é ligeiramente diferente — não por negligência, mas porque nada permite comparar a sua com uma referência.
Três telas, três saldos: a divergência não é um defeito pontual, é a consequência normal de uma noção sem lugar.
Por que isso importa
Isso muda a maneira de tratar essas incoerências: corrigir a tela defeituosa não resolve nada, já que a próxima vai recomeçar. O que falta é uma definição escrita, e a primeira entrega é uma frase, não uma correção.
Isso também dá um sinal de detecção barato: uma noção de que os usuários falam todos os dias e que nenhum lugar do produto define está quase sempre nesse caso.
Nuances e limites
Escrever a definição não basta para unificar o comportamento: enquanto cada tela mantiver seu próprio cálculo, a definição é apenas uma expectativa, e a divergência passa a ser constatável — o que já é um progresso, mas não uma correção.
E certas variações são legítimas: um saldo contábil e um saldo comercial podem diferir com razão. São então duas noções que é preciso nomear separadamente, não uma noção a unificar.
Questões em aberto
- Uma definição escrita fora do código se sustenta ao longo do tempo sem um mecanismo que a confronte com o comportamento real?