Quase todo software é desenhado sob uma suposição tácita: se der errado, tenta de novo. A suposição é razoável para a maior parte do que se constrói e é o que permite iterar rápido sem pensar muito no assunto.
Existe uma classe de decisões em que ela é falsa. Sistemas que despacham recursos físicos, que concedem ou negam crédito, que revogam acesso, que interrompem uma linha de produção, que classificam um caso como prioritário, que autorizam um pagamento. Nesses, errar não custa uma repetição: custa dinheiro que saiu, tempo que não volta, uma pessoa afetada por uma decisão que ninguém revisou. O desenho muda em quatro pontos, e nenhum deles é sobre acertar mais.
Os quatro pontos
01
Reversibilidade
A ação é expressa como intenção antes de virar efeito, para que exista um lugar onde parar.
02
Limite explícito
O sistema sabe onde termina a faixa em que foi validado, e recusar é uma saída desenhada como as outras.
03
Titularidade
Cada decisão tem uma função com nome que responde por ela quando for questionada.
04
Canal de descoberta
Existe um caminho pelo qual o erro aparece antes de aparecer por um cliente, um regulador ou um repórter.