4 острые бритвы познания — как использовать в IT и в жизни
Про бритву Оккама хоть раз слышал каждый: во многих статьях и книгах встречается призыв не множить сущности без необходимости. Но не все знают, что в науке есть и другие «бритвы», которые помогают избавиться от лишнего. Термин «бритва» используется для обозначения метода, который помогает отбрасывать что-то ненужное, маловероятное, неправдоподобное. Принцип «бритвы» или «лезвия» — это на удивление универсальный инструмент, который помогает не только в процессе научного познания, но и в работе, и в повседневной жизни.
В этой статье я перечислю несколько известных «именных» бритв (про Оккама тоже не забуду) и покажу, как их можно использовать в работе IT-специалиста. Заодно я сформулирую несколько правил, которые сам стараюсь соблюдать при применении этих самых «бритв», чтобы ненароком не ошибиться и не получить результат, противоположный ожидаемому.
1. Бритва Хитченса
Автор: журналист и писатель Кристофер Хитченс, 2003.
Бремя доказательства истинности утверждения лежит на том, кто заявляет его истинность.
Исходная формулировка: «Что можно утверждать без доказательств, то можно отвергнуть без доказательств».
What can be asserted without evidence can also be dismissed without evidence.
Аналог: латинская пословица «Quod gratis asseritur, gratis negatur» — «Что свободно утверждается, то свободно отбрасывается»
Варианты утверждений:
Этот вариант реализации процедуры не соответствует техническому заданию.
Дизайн страницы не соответствует договорённостям. Давайте поиграем шрифтами.
Я считаю, что старый вариант интерфейса был удобнее, чем новый.
Варианты ответов:
Уточните, на какой странице технического задания это написано.
Прошу привести аргументы, которые показывают, что ваш вариант лучше.
Покажите результаты A/B-тестов.
Правила использования бритвы Хитченса:
Помните, что бритва Хитченса действует в обе стороны.
Остерегайтесь противопоставлять бездоказательным утверждениям свои бездоказательные утверждения. Например, в техническом задании явно указан третий вариант реализации, который не совпадает с реализованным вариантом и вариантом вашего оппонента.
Если оппонент смог привести веские доказательства, вам придётся уступить. Такое тоже бывает.
2. Бритва Хайнлайна
Автор: Роберт Хайнлайн, рассказ «Логика империи», 1941.
При поисках причин отрицательного события в первую очередь предполагается человеческая ошибка, и лишь во вторую — чьи-то сознательные злонамеренные действия.
Исходная формулировка: «Вы пытаетесь объяснить злонамеренностью то, что является результатом обычной глупости»
You have attributed conditions to villainy that simply result from stupidity.
Общепринятая формулировка: «Никогда не приписывай злонамеренности то, что вполне объясняется глупостью;, но не исключай злонамеренности».
Аналоги:
«Никогда не приписывайте злому умыслу то, что вполне можно объяснить глупостью» (Роберт Дж. Хэнлон, эпиграф к изданию законов Мерфи, 1980).
«Никогда не приписывай злонамеренности то, что вполне объясняется некомпетентностью» (Наполеон Бонапарт).
«Облажались, а не заговор» (Бернард Ингам).
«Миром правит не тайная ложа, а явная лажа» (Виктор Пелевин).
Варианты утверждений:
Администратор специально поломал базу данных перед увольнением.
Этот разработчик намеренно пишет запутанный и нелогичный код, чтобы никто кроме него в этом не разобрался (это же утверждение можно сформулировать другими, более эмоциональными словами).
«Ураа, я возвращаюсь, я портфель забыл». «Ааа, это вы специально придумали».
Варианты ответов:
Администратор поломал базу данных, потому что он думает о своих проблемах, а не о работе.
Разработчик пишет запутанный и нелогичный код, потому что он банально плохой программист.
Герой кинокомедии забыл портфель, потому что у него похмелье и он крайне рассеян. А ведь у него там ценный веник.
Правила использования бритвы Хайнлайна:
Всегда есть небольшая вероятность, что присутствовали сознательные злонамеренные действия.
Причина не обязательно в глупости. Нужно также рассмотреть забывчивость, рассеянность, неосведомлённость, неквалифицированность, профнепригодность и прочие »-ности».
Все делают ошибки, даже крутые профессионалы.
3. Бритва Оккама
Автор: философ и монах Уильям Оккам, XIV век.
Если существует несколько логически непротиворечивых объяснений какого-либо явления, объясняющих его одинаково хорошо, то следует, при прочих равных условиях, предпочитать самое простое из них.
Исходные формулировки: «Что может быть сделано на основе меньшего числа предположений, не следует делать, исходя из большего» и «Многообразие не следует предполагать без необходимости».
It is pointless to do with more what can be done with fewer.
Plurality must never be posited without necessity.
Аналог: «Всё следует упрощать до тех пор, пока это возможно, но не более того» (Альберт Эйнштейн).
Варианты утверждений:
Этот код не может не компилироваться. Наверное, ошибка в компиляторе.
Я ничего не делал, оно всё само куда-то ушло.
Этот релиз ужасен, потому что его выпустили в период «коридоров затмений», ретроградного Меркурия и прочих.
Варианты ответов:
Если программа не компилируется, то в ней есть ошибка.
Ничего не делал, говоришь? А если мы посмотрим логи?
Релиз вышел неудачным, потому что его плохо спроектировали, разработали и протестировали.
Правила использования бритвы Оккама:
Бритва Оккама предполагает выбор самого простого решения. Для этого нужно чётко понимать, по каким критериям и каким показателям оценивается простота и ранжируются решения. Эти критерии и показатели могут быть разными.
«У кого бритва — тот и Оккам!» (Василий Щепетнёв). Иногда решение искусно объявляется простейшим, хотя по факту таковым не является. При любом сомнительном результате нужно проводить собственное исследование.
4. Бритва Алдера
Автор: австралийский математик Майк Алдер, 2004.
Язык больше, чем Вселенная. Можно в одном предложении сказать о тех вещах, которые невозможно обнаружить в реальном мире.
Известна также под названием «Пылающий лазерный меч Ньютона», потому что этот меч «острее и опаснее, чем бритва Оккама».
Краткая формулировка: «То, что нельзя подтвердить экспериментом, не стоит обсуждать».
We should not dispute propositions unless they can be shown by precise logic and/or mathematics to have observable consequences.
Варианты утверждений:
Да тут нечему ломаться, выкатываем сразу в прод.
Это мощный сервер, он выдержит нагрузку.
Раз так написано в документации, значит так и должно работать.
«Группа была введена по настоянию Романа и Эдика, которые заявили, что всем нутром чуют связь между странностями Януса и странностями попугаев».
Варианты ответов:
Единственный способ доказать отсутствие ошибок — провести эксперимент тестированием.
Теоретическое предположение остаётся гипотезой, пока не будет проведено нагрузочное тестирование.
Ошибка может быть и в коде и в документации.
«Они не смогли ответить на вопрос Корнеева, каков физический смысл понятий «нутро» и «чуять».
Правила использования бритвы Алдера:
Эксперимент не подтверждает полностью гипотезу, а лишь повышает вероятность её истинности. Тестирование не доказывает стопроцентное отсутствие ошибок.
В некоторых случаях эксперимент не так-то просто придумать.
Обращение к авторитету или источникам не заменяет эксперимент.
Микеланджело творил свои произведения, отсекая от камня всё лишнее. Бритвы познания — удобный и подходящий инструмент для создания шедевров. Главное — в творческом запале не порезаться самому и не отсечь что-то нужное и ценное.