Почему ошибки неизбежны
Попалось эссе философов о природе человеческих ошибок. Авторы в 1975 году исследовали медицину и врачебные ошибки, но мы можем для себя и сейчас многое почерпнуть. Они рассуждают не только о том почему возникают ошибки, но и как правильно к ним относиться.
Я постарался передать ключевые мысли и как их можно применять относительно нашей отрасли.
1. Неполное знание «Все врут», поэтому медики никогда не знают всего о пациенте. Также и у нас бывает, что документация неполная, окружение странное, а пользователи делают не то, что нужно. Поэтому ошибки появляются, даже если код правильный.
2. Общие правила <> Конкретный случай Медицинские протоколы созданы и работают «в среднем» и в большинстве случаев они действительно помогают. Наши стандарты, паттерны и лучшие практики тоже. Но всегда возникают уникальные случаи, которые нельзя решить обычными способами.
3. Принципиальная возможность ошибок Авторы пишут, что медицина по своей природе содержит неопределённость и поэтому ошибки неизбежны даже при знании лучших практик. В коде то же самое, даже при самых лучших тестах, CI/CD и код-ревью всегда остается вероятность, что что-то пойдет не так.
4. Этика и ответственность Ошибка врача куда серьезнее, чем ошибка программиста. Там порой цена — чья-то жизнь. У нас ставки существенно ниже. Мы обычно рискуем деньгами компании, нервами пользователей или репутацией себя или команды. Здесь важно уметь признавать ошибки и улучшать культуру и процессы, а не только молча исправить ошибку.
5. Мудрость в применении знаний Хороший врач понимает как применять знания к конкретному пациенту, а не просто помнит учебник наизусть. У хороших разработчиков также. Важно не просто знать стандарты и паттерны, а понимать когда они реально нужны, применять их по делу.
И в медицине, и в программировании ошибки неизбежны. Но очень важно не отрицать их, а строить процессы, которые помогают:
- Быстро находить и замечать их
- Честно признавать
- Исправлять с минимальным ущербом
- Учиться на них