Почему ошибки неизбежны

Попалось эссе философов о природе человеческих ошибок. Авторы в 1975 году исследовали медицину и врачебные ошибки, но мы можем для себя и сейчас многое почерпнуть. Они рассуждают не только о том почему возникают ошибки, но и как правильно к ним относиться.

Я постарался передать ключевые мысли и как их можно применять относительно нашей отрасли.

1. Неполное знание «Все врут», поэтому медики никогда не знают всего о пациенте. Также и у нас бывает, что документация неполная, окружение странное, а пользователи делают не то, что нужно. Поэтому ошибки появляются, даже если код правильный.

2. Общие правила <> Конкретный случай Медицинские протоколы созданы и работают «в среднем» и в большинстве случаев они действительно помогают. Наши стандарты, паттерны и лучшие практики тоже. Но всегда возникают уникальные случаи, которые нельзя решить обычными способами.

3. Принципиальная возможность ошибок Авторы пишут, что медицина по своей природе содержит неопределённость и поэтому ошибки неизбежны даже при знании лучших практик. В коде то же самое, даже при самых лучших тестах, CI/CD и код-ревью всегда остается вероятность, что что-то пойдет не так.

4. Этика и ответственность Ошибка врача куда серьезнее, чем ошибка программиста. Там порой цена — чья-то жизнь. У нас ставки существенно ниже. Мы обычно рискуем деньгами компании, нервами пользователей или репутацией себя или команды. Здесь важно уметь признавать ошибки и улучшать культуру и процессы, а не только молча исправить ошибку.

5. Мудрость в применении знаний Хороший врач понимает как применять знания к конкретному пациенту, а не просто помнит учебник наизусть. У хороших разработчиков также. Важно не просто знать стандарты и паттерны, а понимать когда они реально нужны, применять их по делу.

И в медицине, и в программировании ошибки неизбежны. Но очень важно не отрицать их, а строить процессы, которые помогают:

  • Быстро находить и замечать их
  • Честно признавать
  • Исправлять с минимальным ущербом
  • Учиться на них