Ações irreversíveis e ações reversíveis
No capítulo anterior, foi mencionado que operações irreversíveis (ou seja, aquelas que não podem ser desfeitas) exigem uma verificação feita por dois agentes distintos. Mas o que significa, concretamente, "irreversível"?
Continuar usando esse termo sem explicá-lo deixa uma dúvida no ar: "no fundo, o que é uma ação irreversível?". Este capítulo organiza de frente a distinção entre reversível e irreversível. Quando a definição do termo se firma, fica claro onde é preciso seguir procedimentos cuidadosos — e onde é possível agir com leveza.
A diferença entre reversível e irreversível
Uma ação reversível é aquela que pode ser refeita.
Por exemplo: escrever um rascunho e salvar. Alterar configurações em um ambiente local. Editar e sobrescrever um texto. Todas essas operações podem ser desfeitas com passos como "voltar ao estado anterior", "reescrever" ou "restaurar a configuração". É possível recuperar o que foi feito.
Uma ação irreversível é aquela que, uma vez executada, não pode ser desfeita — ou cuja recuperação exige um esforço considerável.
Por exemplo: publicar um artigo na web. Deletar dados. Enviar uma requisição a um serviço externo. Mandar um e-mail. Após executar essas operações, não é possível dizer "como se nunca tivesse acontecido". O artigo publicado pode já ter sido lido. Os dados deletados não voltam sem um backup. O e-mail enviado já chegou à caixa de entrada do destinatário.
"É possível desfazer, ou não?" — essa é a linha que divide reversível de irreversível.
Onde exatamente está essa fronteira
Vamos detalhar um pouco mais com exemplos concretos.
Exemplos de ações reversíveis: salvar um arquivo localmente; editar um artigo ainda em rascunho; modificar um arquivo de configuração (desde que haja backup); verificar o funcionamento em um ambiente de staging (ou seja, um ambiente de testes antes da publicação). Quando algo dá errado nessas operações, é possível refazer ou reverter. O impacto fica dentro do alcance de quem executa.
Exemplos de ações irreversíveis: publicar um artigo externamente; deletar dados do ambiente de produção; enviar uma requisição a uma API externa (aqui: a interface de conexão para se comunicar com um serviço externo); distribuir avisos ou notificações para um público não determinado. Essas operações produzem efeitos que saem para fora. Uma vez que o impacto está do lado de fora, não há como trazê-lo de volta.
No entanto, essa fronteira não é absoluta.
Por exemplo: mesmo o ato de "publicar um artigo" pode ter impacto pequeno se o número de acessos for próximo de zero. Se os backups estiverem bem organizados, "atualizar dados em produção" se aproxima de algo reversível. O que é ou não irreversível varia conforme o estado dos mecanismos de proteção existentes e o alcance do impacto.
O que importa não é completar uma tabela de classificações, mas sim criar o hábito de perguntar, antes de executar: "esta operação pode ser desfeita?"
Como tratar cada tipo de forma diferente
A razão pela qual a distinção entre reversível e irreversível é necessária é simples: para ajustar o peso dos procedimentos aplicados a cada tipo.
Para ações reversíveis, procedimentos leves são suficientes. É possível agir com a premissa de "experimentar e, se houver problema, desfazer". Não é necessário inserir verificações pesadas a cada vez. Interromper tarefas simples repetidamente congestionaria todo o fluxo.
Para ações irreversíveis, procedimentos mais rigorosos são exigidos. Concretamente, dois aspectos são fundamentais: verificar com um segundo olhar antes de executar, e registrar a execução.
Verificar com um segundo olhar serve para que "uma única pessoa não tome a decisão sozinha". Pontos que passam despercebidos para quem executa muitas vezes aparecem quando outro agente analisa. É esse o significado da regra de duas pessoas (aqui: a exigência de que dois agentes distintos confirmem antes de executar uma ação irreversível).
Registrar a execução serve para que seja possível explicar depois "por que aquela decisão foi tomada". Como operações irreversíveis não podem ser canceladas depois, ter o registro da justificativa permite retornar ao ponto de partida quando surge um problema. Sem registro, o histórico das decisões desaparece.
Tratar operações reversíveis com leveza, e inserir verificação e registro nas irreversíveis — essa distinção é parte do mecanismo que estabiliza o funcionamento de uma organização de IA (aqui: organização de IAs com papéis e responsabilidades definidos).
Na prática, a grande maioria das tarefas são operações reversíveis. Escrever rascunhos, editar, verificar localmente — tudo isso pode ser delegado ao lado da IA, reduzindo o número de confirmações humanas. As operações irreversíveis são relativamente poucas. E exatamente por isso é possível concentrar a verificação nesses pontos.
Quando se está igualmente envolvido em tudo, a atenção não se direciona para as decisões que realmente importam. Saber usar pesos diferentes é o segredo para manter o mecanismo funcionando por muito tempo.