Спросить дешевле, чем откатить
Подтверждение стоит пять секунд ожидания. Разбор последствий необратимой операции стоит вечер. Симметрии между ними нет и не будет.
Спор про подтверждения обычно идёт в терминах удобства: агент, который переспрашивает, раздражает и замедляет. Верно. Но сравнивать надо не раздражение с раздражением, а стоимость со стоимостью.
Подтверждение стоит несколько секунд вашего внимания. Умножьте на число операций — получится ощутимо, но конечно.
Ошибочная необратимая операция стоит вечер разбора, а иногда данные, которых уже нет. Величина не просто больше — она из другой шкалы, и ожидание по ней считать нельзя. Даже редкое событие с потерей, которую нечем компенсировать, доминирует над частым событием с пятисекундной ценой.
Отсюда правило, которое я формулирую до начала работы, а не после инцидента: подтверждения ставятся не там, где агент чаще ошибается, а там, где ошибку нельзя отменить.
Список получается коротким и почти одинаковым от проекта к проекту. Удаление чего угодно. Запись во внешнюю систему, у которой нет отката. Отправка сообщения человеку. Публикация. Любые деньги. Всё остальное можно отдать без спроса, потому что откат существует.
Полезный побочный эффект: когда список короткий, подтверждения перестают быть шумом и снова начинают читаться. Агент, спрашивающий разрешения на каждый шаг, обучает нажимать «да» не глядя, — и первое настоящее подтверждение проскочит вместе с остальными.
Про журнал стоит сказать отдельно. Он не заменяет подтверждение и не мешает ему: подтверждение предотвращает, журнал объясняет. Нужны оба, и по разным причинам.