Quando nosso ponto de controle de lançamento encontrou uma correspondência que era só um rótulo
Um ponto de controle do nosso processo bloqueou um trabalho concluído e atual e o chamou de inseguro. O trabalho estava certo. O ponto de controle tinha comparado as coisas erradas e informado uma correspondência.
Esse ponto de controle tem uma função útil. Ele impede que um processo termine se o arquivo que serve de apoio estiver desatualizado. Quando ele disparou, a primeira leitura foi que tinha feito exatamente isso, e que tinha pego um problema real antes que não desse mais para desfazer. Mas o arquivo ligado a esse trabalho estava atual, e o alerta não batia com o que tínhamos na frente.
Ele comparou nomes e jogou fora os locais
O ponto de controle não estava comparando locais completos. Estava comparando nomes curtos.
Parece um detalhe pequeno, mas faz toda a diferença. Dois arquivos diferentes, em lugares diferentes, podem facilmente ter o mesmo nome curto. Quando o ponto de controle tirou o local e ficou só com o nome, ele deixou de saber qual arquivo tinha encontrado. Só sabia que existia, em algum lugar da busca, algo com um rótulo igual.
Não confiamos no alerta. Verificamos primeiro o arquivo ligado ao trabalho real, depois o arquivo que supostamente tinha correspondido a ele. Eram arquivos diferentes, e a única coisa em comum era o nome.
Nada estava desatualizado. O ponto de controle tinha transformado a pergunta sobre qual arquivo ele estava olhando em uma pergunta sobre um rótulo.
Duas correções que estariam erradas
Remover o ponto de controle faria o alarme falso desaparecer. Também traria de volta o risco exato que ele foi criado para pegar. Isso é desistir, não consertar.
Manter a mesma comparação e acrescentar outra verificação por cima, como a data da última alteração de cada arquivo, também não funcionaria. Um arquivo alterado recentemente no lugar errado continua sendo o arquivo errado, e empilhar mais verificações sobre uma comparação quebrada só torna o erro mais difícil de enxergar.
A correção foi comparar primeiro a identidade completa e específica, o local inteiro e não só o rótulo, antes de perguntar se o que foi encontrado estava atual. Só dá para perguntar se algo está em dia depois de saber que é a coisa certa.
Por que esse tipo de erro é difícil de pegar
Ele não avisa com uma falha. O processo simplesmente para, e o ponto de controle oferece um motivo plausível. Um ponto de controle que dá respostas confiantes, com cara de específicas e erradas, ensina as pessoas a contorná-lo. Na prática, um sistema de segurança em que ninguém confia é pior do que nenhum.
O que exigir dos seus próprios pontos de controle
Um ponto de controle que bloqueia algo precisa mostrar todo o seu raciocínio: a identidade completa do que ele comparou, e não um rótulo abreviado que só parece convincente. Se ele não consegue mostrar isso, não ganhou autoridade para parar o trabalho.
Então pergunte isto sobre qualquer ponto de controle automático nas suas operações: o que exatamente ele compara, e ele consegue mostrar a identidade completa das duas coisas? Uma verificação que compara por um rótulo curto pode bloquear um trabalho bom e dar um motivo convincente, porém errado. Faça com que ele confirme a identidade antes de checar se está atual, e que mostre seu raciocínio sempre que parar alguma coisa.