DigitableCourses
Настройки портала
Показать возможности портала

Локально и без аккаунта. Аккаунта нет, регистрация не нужна: введённое в инструменты остаётся в localStorage браузера и на сервер не уходит.

Свой счётчик считает открытия страниц и дочитывания: уезжает адрес и десятая доля текста. Без cookies и чужих счётчиков, IP не хранится, Do Not Track уважается. Как это проверить

Репозиторий портала не выложен, «открытым кодом» мы его не зовём. Открыто это:

Живёт портал на донатах, платных консультациях и разборах по запросу и покупке Workbench.

Планов делать курсы платными нет.

Логика и ошибки мышления · 67

Логические ошибки

С чего начать

Что-то в этом доводе не так

Вам наверняка встречались такие манипуляции. Нутро подсказывает, что что-то не так, — а логика помогает назвать пропущенный шаг и задать точный вопрос.

Сегодня в школу не пошёл, завтра — в университет, потом на работу не устроишься, и тебя аннигилируют на Солнце.

Из авторской статьи «67 логических и когнитивных ошибок»: логика нужна в речи, программировании, электрике и сантехнике. Начать можно с простого: что утверждают, какие основания привели и действительно ли из них следует вывод?

Разбирайте на примерах

Выберите ошибку в каталоге или найдите слово из знакомой ситуации. В каждом разборе — иллюстрация, пример из жизни, рабочий случай и вариант ответа.

Разобрать скользкую дорожку →

Куда читать дальше

Аристотель — «Риторика»; Челпанов — «Учебник логики»; Петцольд — «Код. Тайный язык информатики». Затем — кванторы, теория множеств и категории.

Название ошибки — повод проверить довод, а не объявить человека неправым. Опыт и источник могут быть важны; вопрос в том, заменяют ли ими проверку самого утверждения.

1 / 67 · Атака на человека

Переход на личность

argumentum ad hominem · ad hominem · argumentum ad personam

Иллюстрация из авторской статьи: Переход на личность
Открыть иллюстрацию ↗

Оценивают того, кто высказал тезис, а не основания тезиса.

Утверждение.

В квитанции за свет дважды посчитали строки и Вы об этом говорите собеседнику

Ты всегда путаешься в цифрах, тебе ли считать.

Почему это ошибка.

Ваши прошлые ошибки в расчётах не меняют содержимого квитанции: строки либо задвоены, либо нет

На работе.

Вы оставили кому-нибудь код ревью, а вам, чтобы не не исправлять говорят: "Как деревенский парень который регулярно ошибается в арифметике может мне говорить что у меня тут расчёты неправильные в функции и что они дублируют значения?! Ты же на созвоне стори поинты сложить не можешь"

Что отвечать.

Допустим, я в этом регулярно ошибаюсь и слаб в арифметике. Посмотри конкретно эти две строчки и скажи всё ли там в порядке?

Тезис и его автор — разные предметы проверки. Ad hominem подменяет вопрос «на чём держится утверждение» вопросом «кто это сказал». Сведения о человеке важны, когда тезис держится на его свидетельстве или квалификации. Но тогда вывод — «нужна независимая проверка», а не «утверждение ложно». Признак ошибки: уберите характеристику автора, и от возражения ничего не останется.

4 / 67 · Атака на человека

Сам такой (tu quoque)

tu quoque · argumentum ad hominem tu quoque · appeal to hypocrisy

Иллюстрация из авторской статьи: Сам такой (tu quoque)
Открыть иллюстрацию ↗

Требование объявляют несостоятельным, потому что требующий сам его нарушает.

Утверждение.

Вы делаете замечание другу, что он выкидывает мусор в неположенном месте

Ты сам вчера бутылку в кусты выкинул

Почему это ошибка.

Фокус не на проблеме, а на том, что вы не выполняете тех требований, которые просите соблюдать окружающих. Проблема в том, что делать с мусором, а не в несоблюдении вами правила.

На работе.

Вы предлагаете на каждую хотелку заказчика заводить отдельную задачу в таск трекере, но Вам говорят: "а сам вчера задачу без теста делал."

Что отвечать.

Верно, вчера я сделал ровно противоположное моим правилам или требованиям. Ты прав. По самому предложению возражения есть?

Требование объявляют несостоятельным на том основании, что сам требующий его нарушает

9 / 67 · Атака на человека

Соломенное чучело

straw man · straw man argument

Иллюстрация из авторской статьи: Соломенное чучело
Открыть иллюстрацию ↗

Позицию заменяют версией, которую легче опровергнуть, опровергают её и объявляют вопрос закрытым.

Утверждение.

Вы предлагаете раз в неделю сверять баланс карты с запланированным бюджетом

То есть теперь мне тебе отчитываться на все покупки?

Почему это ошибка.

Опровергается тотальный учёт, которого никто не предлагал вместо обсуждения недельной сверки: сколько она занимает времени и что даёт, это так и не прозвучало.

На работе.

Вы предлагаете сделать обязтаельное ревью в модуле, который отвечает за проведение платежей. Но Вам говорят: "вы хотите согласовывать каждую строчку и ухудшить time-to-market". Дальше обсуждают уже проблемы TTM, причем ни разу не обсуждают модуль проведения платежей.

Что отвечать.

Я этого не говорил, я говорил следующее - (тут Вы просто повторяете свое предложение 1 в 1 ну или сокращено). Что ты/вы думаешь/думаете по поводу моего предложения. Жду комментариев.

Позицию заменяют более удобной для опровержения версией и опровергают замену

24 / 67 · Атака на человека

Генетическая ошибка

genetic fallacy · fallacy of origins · argumentum ad originem

Иллюстрация из авторской статьи: Генетическая ошибка
Открыть иллюстрацию ↗

Утверждение принимают или отвергают по происхождению, а не по содержанию.

Утверждение.

Вы говорите, что при приготовлении супа в конце стоит добавить соль

Это примета твоей бабушки, у неё половина советов из ниоткуда

Почему это ошибка.

Добавлять соль или нет говорит рецепт, физика или вкусовые предпочтения, но биография бабушки тут непричём

На работе.

Идея писать юнит тесты через BDD пришла от фронтендеров, у нас это не будет работать, мы же на Go-пишем, мы же бекендеры Ну или прям с работы случай - это у вас так у разработчиков, у инженеров по машинному обучению код пишут по-другому О.о

Что отвечать.

Откуда идея это отдельный разговор. Что конкретно не сработает?

Идею принимают или отвергают основываясь на том откуда ноги растут у идеи, например кто заинтересован в идее, насколько тщательно её проверили, какие данные были для формирования этой идеи, а саму идею не обсуждают

48 / 67 · Атака на человека

Ошибка психолога

psychologist's fallacy

Иллюстрация из авторской статьи: Ошибка психолога
Открыть иллюстрацию ↗

Свою трактовку чужого состояния выдают за само это состояние и спорят с ней.

Утверждение.

Вы говорите: мне неудобно ходить в этот зал до него сорок минут идти

На самом деле тебе просто лень заниматься спортом, время тут ни при чём.

Почему это ошибка.

Расстояние проверяется картой, а лень это приписанное состояние, о котором собеседник ничего не говорил. Спор с приписанным состоянием не сокращает сорок минут передвижения.

На работе.

На разборе инцидента (LSR например) коллеги говорят: "ты как дежурный не эскалировал проблему, потому что побоялся показаться некомпетентным специалистом ну или тебе было лень"

Что отвечать.

Ты присываешь мне состояние лени. Я говорил другое: чтобы сделать это мне нужно было дополнительные 40 минут, которых у меня не было. Давай обсуждать сказанное.

Собственную интерпретацию чужого состояния выдают за само это состояние и дальше спорят с ней

55 / 67 · Атака на человека

Обстоятельственный аргумент к человеку

circumstantial ad hominem · argumentum ad hominem circumstantiae

Иллюстрация из авторской статьи: Обстоятельственный аргумент к человеку
Открыть иллюстрацию ↗

Тезис объявляют ложным, потому что автору выгодно так говорить.

Утверждение.

Фильтр для воды нам не нужен, потому что по анализу в доме вода в норме

Понятно, тебе просто денег жалко, вот и говоришь так

Почему это ошибка.

Нежелание тратиться объясняет почему человеку удобен такой вывод, но состав воды определяется анализом, а не состоянием бюджета.

На работе.

О Вас говорят: "он продвигает managed‑базы, потому что раньше работал в компании что делает клауд"

Что отвечать.

Интерес и связи там у меня есть, я его не скрываю. Поэтому проверь цифры, вот расчёт, пересчитай и проверь

Тезис объявляют ложным, потому что положение или выгода автора побуждают его так говорить (аля конфликт интересов).

56 / 67 · Атака на человека

Полиция тона

tone policing · tone argument

Иллюстрация из авторской статьи: Полиция тона
Открыть иллюстрацию ↗

Ответ по существу откладывают, ссылаясь на тон или эмоциональность высказывания.

Утверждение.

Ты второй раз забыл забрать посылку, её отправили обратно!!!111

Пока ты орёшь на меня, я не буду обсуждать эту тему

Почему это ошибка.

Посылка уехала к отправителю независимо от громкости разговора. Тон обсуждать можно, но как вторую тему, а не вместо первой

На работе.

В канале инцидента на Ваше сообщение капсом "АДМИНСКИЙ ПАРОЛЬ В ПУБЛИЧНОМ ДОСТУПЕ!!11" отвечают "давайте без паники"

Что отвечать.

Согласен, скажу спокойнее. Повторяю: … (тут разумеется уже без капса и ора, иначе смысла не будет xD) Что мы с этим делаем прямо сейчас?

Ответ по существу откладывают, ссылаясь на форму, громкость или эмоциональность высказывания.

57 / 67 · Атака на человека

Ошибка ассоциации

guilt by association · association fallacy · damning by association

Иллюстрация из авторской статьи: Ошибка ассоциации
Открыть иллюстрацию ↗

Тезис или вещь дискредитируют через того, кто ещё их разделяет или использует.

Утверждение.

Этот способ мыть окна без разводов классно работает!

Это совет из блога, где советуют гвозди микроскопом забивать.

Почему это ошибка.

Совпадение источника не переносит на способ ни одного свойства. Окно после мытья либо в разводах, либо нет, и это видно без сведений об остальных советах блога

На работе.

Вам говорят: "Эту библиотеку разрабатывает контора, которая в другой библиотеке слила данные пользователей, значит, она небезопасна"

Что отвечать.

Что конкретно в этой библиотеке/способе некорректно? Если наблюдаем какой-то непонятный шаг/функцию назови её/его, посмотрим вместе

Идею дискредитируют через того, кто её ещё разделяет.

58 / 67 · Атака на человека

Аргумент к достижениям

appeal to accomplishment

Иллюстрация из авторской статьи: Аргумент к достижениям
Открыть иллюстрацию ↗

Право судить выводят из послужного списка: сначала добейся, потом рассуждай.

Утверждение.

В этом рецепте многовато молока на такой объём.

Ты хоть раз готовил на двадцать человек? Откроешь ресторан тогда и обсудим.

Почему это ошибка.

Пропорция молока к весу продуктов проверяется весами и пробой. Опыт готовки на двадцать человек делает мнение говорящего более вероятным, но не отменяет возможности пересчитать граммовку прямо сейчас

На работе.

На архитектурном ревью кто-то говорит: "я вывел в прод три системы такого масштаба" вместо расчёта новой схемы шардирования

Что отвечать.

Опыта у тебя больше, а значит тем проще объяснить: на каком шаге мой расчёт ломается? Ведь опыт это причина слушать внимательно, но не замена оценке, например скажи сколько запросов приходится на шард или что будет происходить при респлите?

Право на суждение выводят из послужного списка: сначала добейся, а потом рассуждай.

59 / 67 · Атака на человека

Ответ придворного

courtier's reply

Иллюстрация из авторской статьи: Ответ придворного
Открыть иллюстрацию ↗

Критику отклоняют тем, что оппонент мало изучил предмет, и не отвечают на саму критику.

Утверждение.

Курс по английскому обещает результат за неделю, а из чего этот результат складывается на странице не сказано.

Ты не прошёл ни одного урока и не читал методичку, значит, судить не можешь

Почему это ошибка.

Замечание касается ровно того, что опубликовано: описания результата на странице нет. Методичка могла бы это исправить, но тогда достаточно показать в ней нужный абзац

На работе.

Вам говорят: "сначала прочитай все design doc-и за три года и код крона, потом поговорим про твой вопрос о таймаутах".

Что отвечать.

Дай ссылку на раздел, где это разобрано, прочитаю и сниму вопрос

Критику отклоняют указанием на то, что оппонент недостаточно изучил предмет, не отвечая при этом на саму критику

62 / 67 · Атака на человека

Булверизм

bulverism

Иллюстрация из авторской статьи: Булверизм
Открыть иллюстрацию ↗

Ложность позиции считают установленной и сразу объясняют, почему оппонент к ней пришёл.

Утверждение.

Вы говорите: эта подписка невыгодна потому что за год выходит дороже, чем покупать фильмы по отдельности

Ты просто вырос в семье, где на всём экономили, отсюда и страх подписок

Почему это ошибка.

Даже если Ваша биография описана верно, она объясняет, почему такой вывод человеку близок, но не проверяет арифметику. Отношение суммы подписки к приобретению фильмов складывается независимо от чьего‑либо детства.

На работе.

Вам говорят: ты против k8s-оркестратора, потому что обжёгся на прошлой работе и теперь его боишься

Что отвечать.

Допустим, причины у меня именно такие. Довод я всё же привёл: …. Покажи, где он неверен

Ложность позиции считают уже установленной и сразу переходят к объяснению, почему оппонент до неё дошёл

3 / 67 · Увод в сторону

Увод в сторону (красная селёдка)

red herring · ignoratio elenchi · отвлекающий манёвр

Иллюстрация из авторской статьи: Увод в сторону (красная селёдка)
Открыть иллюстрацию ↗

Вместо ответа вводят другую, более выгодную тему, и разговор уходит за ней.

Утверждение.

Вы говорите: в счёте за интернет второй месяц подряд стоит аренда роутера, который мы уже давно вернули

Зато скорость выросла, у соседей такой нет

Почему это ошибка.

Скорость и лишняя строка в счёте независимые факты. Вопрос о возврате денег остался ровно там же, где был, но обсуждать теперь предлагается тариф

На работе.

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

Что отвечать.

Это тоже стоит обсудить, записал отдельным пунктом. Возвращаюсь к исходному: почему на алерт не реагировали сорок минут?

Вместо ответа на вопрос или утверждение вводится другой аргумент, более выигрышный для ответчика, и обсуждение уезжает в сторону этого аргумента.

7 / 67 · Увод в сторону

Нагруженный вопрос

loaded question · complex question · plurium interrogationum · сложный вопрос

Иллюстрация из авторской статьи: Нагруженный вопрос
Открыть иллюстрацию ↗

Вопрос устроен так, что любой прямой ответ подтверждает непроверенную предпосылку.

Утверждение.

Давай обсудим, кто по вечерам моет посуду

Почему ты вечно всё оставляешь на меня?

Почему это ошибка.

"Вечно" и "всё" не обсуждались и не проверялись. Ответ "потому что поздно прихожу" их подтверждает, ответ "это неправда" выглядит как уход от вопроса. Оба варианта заранее проигрышные

На работе.

На ревью: "почему ты опять игнорируешь наши договорённости по неймингу переменных и фукнций?"

Что отвечать.

Давай по порядку, у тебя в вопрос уже зашиты "опять", и "игнорируешь", хотя спор идёт про нейминг одной конкретной переменной и связанной с ней функцией. Сначала разберёмся с первым, когда ты говоришь "опять", можешь пожалуйста вспомнить конкретные случаи и было ли это игнорированием или осознанным решением? И по второму, какие конкретно договоренности не выполнены?

Вопрос устроен так, что состоит с уже пред-позицией которую не обсуждают, а значит любой прямой ответ подтверждает непроверенную посылку

18 / 67 · Увод в сторону

Апелляция к эмоциям

appeal to emotion · argumentum ad passiones · appeal to pity · appeal to fear

Иллюстрация из авторской статьи: Апелляция к эмоциям
Открыть иллюстрацию ↗

Место недостающего основания занимает чувство — страх, жалость, стыд или насмешка.

Утверждение.

Вы обсуждаете с коллегами, что заявку на отпуск подаёте за две недели до даты отпуска. Ваш подчиненный ждёт согласование заявки на отпуск, вы её не согласуете, так как обсуждаете правило.

Ты серьёзно откажешь? У меня билеты куплены, я весь год ждал этой поездки.

Почему это ошибка.

Купленные билеты это весомая причина сделать исключение конкретно сейчас, но они ничего не говорят о том, нужно ли само правило. Обсуждались две разные вещи, а решается как одна

На работе.

Вам говорят: "не отклоняй PR, человек сидел над ним до трёх ночи"

Что отвечать.

Усилие относится к разговору о нагрузке, а не к корректности кода. Про нагрузку ситуация тяжёлая, и разобраться с ней сможем отдельно. По самому решению, подскажите чем мы рискуем если вольёмся без ревью?

Место недостающего основания заменяют на чувство страха, жалости, стыда или насмешки

38 / 67 · Увод в сторону

Вырывание из контекста

quoting out of context · contextomy · quote mining · ошибка акцента

Иллюстрация из авторской статьи: Вырывание из контекста
Открыть иллюстрацию ↗

Фрагмент чужой фразы цитируют дословно, но без условия и оговорок — и смысл меняется на удобный.

Утверждение.

Вы говорите, что сказано было: "если гости не придут, горячее можно не готовить, ведь обойдёмся салатами".

Ты сам говорил, что готовить не надо.

Почему это ошибка.

Отброшено условие "если гости не придут". Условное разрешение превратилось в безусловное утверждение, хотя цитата формально не искажена

На работе.

В треде обсуждали: "этот сервис можно вынести в отдельный репозиторий, когда стабилизируется контракт". Через месяц в задаче стоит ссылка на тот же тред с формулировкой "команда согласовала перенос". Вам говорят выполнить перенос, ну или Вы заметили, что кто-то взялся за задачу

Что отвечать.

Дай, пожалуйста, ссылку на сообщение целиком, если мне не изменяет память, то там было условие, и оно как раз сейчас не выполняется

Фрагмент чужой посылки или фразы сохраняют дословно, а условие, оговорку и контекст отбрасывают, в итоге смысл меняется на удобный

41 / 67 · Увод в сторону

Раздувание конфликта

conflict inflation · раздувание разногласия

Иллюстрация из авторской статьи: Раздувание конфликта
Открыть иллюстрацию ↗

Частное расхождение раздувают до полного, и вместо одного пункта обсуждают конфликт вообще.

Утверждение.

Давай в этот раз поедем к твоим родителям не на все выходные, а на субботу

То есть тебе тяжело с моей семьёй? Давай тогда сразу решим, общаемся мы с ними или нет

Почему это ошибка.

Возражение касалось длительности одной поездки. Расширенная версия из него не следует, зато её невозможно закрыть за один разговор и исходный вопрос про субботу так и остаётся нерешённым

На работе.

На ревью замечание к одному запросу ("здесь не хватает индекса") превращают в "ты не доверяешь нашей модели данных, давай пересматривать схему целиком": обсуждение съедает полдня, индекс так и не добавлен

Что отвечать.

Притормозим: я спорю про одну строку, а не про схему. По остальному у нас расхождений нет, верно?

Частное растягивают до общего, и вместо одного спорного пункта раздувают конфликт для всего утверждения

44 / 67 · Увод в сторону

Апеллирование к морали

appeal to morality · moralistic fallacy · argumentum ad moralem

Иллюстрация из авторской статьи: Апеллирование к морали
Открыть иллюстрацию ↗

Вместо того, как обстоит дело, обсуждают, каким оно должно быть.

Утверждение.

Если выехать в шесть вечера в пятницу, то простоим в пробке часа два

Нормальные люди не строят жизнь вокруг пробок

Почему это ошибка.

Реплика оценивает того, кто считает время в пути, а не сам прогноз. От оценки пробка не рассосётся, а вопрос о времени выезда остался без ответа

На работе.

"Хорошие инженеры не пишут код без тестов" вместо ответа на вопрос, укладываемся ли мы в срок при написании тестов на этот модуль: разговор переезжает с планирования на то, кто здесь хороший инженер. То же в разборе инцидента: "дежурный обязан был проверить дашборд" это про норму, а не про то, почему в четыре утра дашборд не отличал деградацию от штатного пика. В спорах о техдолге: "нельзя оставлять такое после себя" вместо оценки стоимости и риска при невыполнении этих задач по техдолгу

Что отвечать.

С тем, как правильно, я не спорю. Сейчас мне нужен факт отвечающий на вопрос что именно произошло и что по цифрам?

Вместо того как обстоит дело обсуждают каким оно обязано быть в идеальном мире

51 / 67 · Увод в сторону

Пресекающее мысль клише

thought-terminating cliché · semantic stop sign · мыслепрекращающее клише

Иллюстрация из авторской статьи: Пресекающее мысль клише
Открыть иллюстрацию ↗

Готовая формула закрывает тему, не отвечая ни на один вопрос.

Утверждение.

Почему мы каждый год продлеваем страховку у этого агента, если у соседнего дешевле?

Так заведено, не выдумывай.

Почему это ошибка.

Так заведено описывает привычку, а не причину. Разница в цене не объяснена, но продолжать разговор стало неудобно, а это и есть работа приёма. Или то за что я ненавижу некоторые компании, когда в качестве аргумента используют "так исторически сложилось" и они дальше не слушают. Почему они сами не делают себе фейсом об тейбл?

На работе.

На вопрос "зачем здесь ретрай с интервалом 50 мс" отвечают "легаси, не трогай", а потом через год следующий человек задаст его снова. Типовые заглушки: "это архитектурное решение", "так у всех", "нет времени на это" в ответ на "сколько это стоит", "сеньоры-помидоры лучше знают".

Что отвечать.

Возможно, решение и правда верное, мне нужна причина, чтобы случайно его не сломать. Кто вводил это правило и из‑за чего оно появилось?

Не отвечая ни на один вопрос используют готовое клише, которым постоянно отвечают. Это самое глупое из софистики, что может быть на мой взгляд.

53 / 67 · Увод в сторону

Апелляция к камню

appeal to the stone · argumentum ad lapidem

Иллюстрация из авторской статьи: Апелляция к камню
Открыть иллюстрацию ↗

Тезис объявляют абсурдным, не приводя против него ни одного довода.

Утверждение.

Кажется, счётчик воды врёт: расход вырос втрое, а живём мы так же.

Да ерунда, счётчики не врут.

Почему это ошибка.

Это повторение противоположного мнения, а не возражение: не названо ни другой причины роста расхода, ни способа проверить показания.

На работе.

К архитектурной записке (ADR, TDR, RFC и так далее) приходит комментарий "это оверинжиниринг" без указания, какое требование лишнее и что вместо него дешевле. На груминге оценку в пять дней встречают репликой "да там на час работы", не разобрав ни одного пункта декомпозиции. В обсуждении инцидента: "такого не может быть" вместо запроса логов. Разговор при этом формально идёт по теме, но без единого проверяемого утверждения.

Что отвечать.

Допускаю, что я неправ. Скажи конкретно: какой шаг лишний или какое допущение/трейдофф здесь не выполняется?

Тезис объявляют абсурдным, не приводя против него ни одного довода, как будто бы вместо возражения пинают камень (это емнип один из вариантов происхождения названия)

65 / 67 · Увод в сторону

Два заблуждения не делают истину

two wrongs make a right · two wrongs don't make a right · два зла не делают добра

Иллюстрация из авторской статьи: Два заблуждения не делают истину
Открыть иллюстрацию ↗

Свой сомнительный поступок оправдывают чужим таким же — и обсуждают уже чужой.

Утверждение.

Ты встал на место для инвалидов

Тут все так ставят, вон ещё две машины рядом

Почему это ошибка.

Две соседние машины не делают место разрешённым. Из повторяемости нарушения следует, что проблема массовая, а не что её нет

На работе.

"Да, я захардкодил ключ, но в соседнем сервисе он тоже лежит в конфиге". Так же обходят процесс: "прошлый релиз тоже катили в пятницу без ревью" переводит вопрос "откатываем или чиним" в спор о прошлых релизах.

Что отвечать.

Если там то же самое, то заведём им тикет, спасибо. Этот всё равно надо сделать как и договаривались, без хардкода.

Свой сомнительный аргумент оправдывают чужим случаем таким же по-существу и разбирают уже чужой

6 / 67 · Схема вывода

Особое прошение

special pleading · особое исключение · исключение для себя

Иллюстрация из авторской статьи: Особое прошение
Открыть иллюстрацию ↗

Общее правило признают, но для своего случая делают исключение без общего критерия.

Утверждение.

В подъезде мусор из общего бака выносят по графику, дежурят все по очереди

Да, но у меня маленький ребёнок и я работаю из дома, так что моё дежурство пусть возьмут соседи

Почему это ошибка.

Обстоятельство названо не как критерий, применимый ко всем в такой ситуации, а как повод не выполнять правило именно себе. Ни условий, ни срока, ни возврата в очередь не предложено, исключение существует ровно для одного человека.

На работе.

"Все сервисы проходят security review перед релизом" и сразу в ответ летит "наш экспериментальный живёт в песочнице пет проект, нам не надо". Исключение легитимно, только если policy заранее задаёт область по данным, доступу и аудитории, со сроком, владельцем и автоматическим истечением. Тот же приём: "этот тест flaky только у нас, отключим у себя", "code freeze не про нашу команду", "линтер здесь мешает, поставим ignore".

Что отвечать.

Попросить сформулировать исключение как правило: "Запиши критерий так, чтобы он сработал для любого, кто под него попадёт, и назови срок действия"

Общее правило признаётся, но для своего случая вводится исключение без независимого критерия. Как будто бы есть какой-то маркер позволяющий что-то делать одному и не делать это что-то остальным в рамках правила.

10 / 67 · Схема вывода

Круговая аргументация

circular reasoning · begging the question · petitio principii · предвосхищение основания · круг в доказательстве

Иллюстрация из авторской статьи: Круговая аргументация
Открыть иллюстрацию ↗

Вывод служит собственным основанием — прямо или через пересказ другими словами.

Утверждение.

Вы спрашиваете "кто такая женщина?"

- Женщина это та, кто делает женские дела - А что такое женские дела? - Это те дела, которые делает женщина Тут можно заменить слово женские на всё что угодно

Почему это ошибка.

Основание это тот же тезис другими словами. Проверка должна опираться на что‑то внешнее: сверку со вторым источником или собственный результат, а не на само проверяемое утверждение

На работе.

Метрика качества модели: "модель хорошая, потому что совпадает с разметкой, а разметка хорошая, потому что модель уверенно её воспроизводит". Без независимого golden set система подтверждает сама себя. Тот же круг в эксплуатации: "алерт настроен верно, потому что ложных срабатываний не было, false positive срабатываний не было, потому что он настроен верно"при том, что алерт может не срабатывать вообще.

Что отвечать.

Назови хоть один факт или причину, что я могу проверить, не принимая заранее исходное утверждение

Заключение используется как собственное основание прямо или через цепочку переименований.

Схема: A потому что , B потому что A.

В сжатом виде: A потому что A, где второе A переформулировано другими словами.

Можно просто построить граф в какой-нибудь рисовалке или на листочке, и если между двумя блоками ссылки идут туда-обратно, это круговая аргументация.

15 / 67 · Схема вывода

Подтверждение следствия

affirming the consequent · утверждение следствия · converse error

Иллюстрация из авторской статьи: Подтверждение следствия
Открыть иллюстрацию ↗

Из «если A, то B» и наблюдения B выводят A, хотя B бывает и по другим причинам.

Утверждение.

Если идёт дождь, то асфальт мокрый

Асфальт мокрый значит, шёл дождь

Почему это ошибка.

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

На работе.

"Если сертификат истёк, TLS handshake падает. Handshake падает значит, истёк сертификат". А падает он ещё и из‑за несовпадения cipher suite, неверного SNI, разъехавшегося времени на хосте. То же в CI/CD: "деплой ставит label на PR; label есть значит, был деплой", хотя label просто поставили вручную

Что отвечать.

Какие ещё причины дают тот же симптом? Перечислим их и отсечём измерением, а не догадками

Из "если A, то B" и наблюдения B делают вывод об A, хотя у B бывают другие достаточные причины

Схема: "если A то B; B; следовательно A"  то есть A → B, B ⊢ A.

Она не сохраняет истину: достаточно контрмодели, где A ложно, а B истинно по другой причине; импликация при этом остаётся истинной, посылки истинны, вывод ложен. Источник ошибки чтение "если" как |только если|: достаточное условие принимают за необходимое. Ближайшая валидная форма это modus ponens: A → B, A ⊢ B.

JFYI: символы стрелки и турникета взяты из логики

17 / 67 · Схема вывода

Смещение бремени доказательства

shifting the burden of proof · onus probandi · перенос бремени доказательства

Иллюстрация из авторской статьи: Смещение бремени доказательства
Открыть иллюстрацию ↗

Тезис выдвигает один, а доказывать, что он ложен, требуют от другого.

Утверждение.

Мой пропавший ключ лежит в этом мусорном пакете.

Говорю же нет там его, не веришь открой сам и докажи, что его там нет.

Почему это ошибка.

Утверждение о содержимом сделал первый, и проверка стоит ему одного движения. Требование к собеседнику доказывать отсутствие превращает необоснованное заявление в позицию по умолчанию: пока не опровергнуто , а значит считается верным.

На работе.

"Эта библиотека небезопасна, докажите обратное", "мой патч ничего не ломает, найдите, где ломает". Инженерный порядок обратный: изменение обосновывает автор изменения тестом, бенчмарком, планом отката. В safety и security есть законная асимметрия: недоказанность вреда не обязывает бездействовать, решение принимается по цене ошибок первого и второго рода, но предосторожность не делает угрозу доказанной.

Что отвечать.

"Тезис твой, утверждаешь ты, вот ты и доказывай. Появится доказательство или будет пруф, тогда отвечу по существу"

Тезис выдвигает один, а доказывать его ложность требуют от другого. Вроде пошло от Б. Рассела и его чайника. Например "инопланетяне есть, а ты докажи что их нет, давай-давай". Тут придётся немного объяснить.

Первичное бремя несёт тот, кто выдвигает содержательный тезис. Ответ "докажи, что это не так" подменяет посильную задачу предъявить одно свидетельство практически невыполнимой: исчерпать все возможные случаи. Бремя при этом не приклеено к человеку навечно, после предъявления достаточных свидетельств оно переходит, и вторая сторона обязана оспорить данные, показать альтернативу, ограничить вывод или дать контрсвидетельство. Ошибка не в движении бремени, а в отправке его туда, где нет утверждения. Если что спрашивайте в комментах, или погуглите, но тут именно важно понимать, что не только "доказывать должен тот, кто утверждает", а ещё и про дальнейшее движение бремени.

26 / 67 · Схема вывода

Подтверждение исключения

affirming a disjunct · утверждение дизъюнкта · ложно исключающее или

Иллюстрация из авторской статьи: Подтверждение исключения
Открыть иллюстрацию ↗

Из «A или B» и подтверждения A выводят, что B ложно, хотя «или» может значить «или оба».

Утверждение.

В субботу к нам в гости заглянет Аня или Борис.

Аня уже написала, что придёт, значит, Бориса не будет, а значит, что третий стул не ставим

Почему это ошибка.

Фраза не обещала, что придёт ровно один. Пока не сказано "кто‑то один из двух", приход Ани не сообщает о Борисе ничего.

На работе.

"Причина инцидента ошибка конфигурации или ошибка кода. Конфиг оказался кривой, значит, код чист" и расследование закрывают, а вторая причина остаётся в проде до следующего раза. Тот же дефект в коде (напишу в правой колонке, а то тут не хватает места для читаемости)

Что отвечать.

Это „или“ исключающее? Кто и где это зафиксировал? Пока не зафиксировано проверяем оба варианта.

Из "A или B" и подтверждения A выводят, что B ложно, хотя "или" может быть включающим. Это вообще отдельный прикол, когда ИЛИ по сути И. Душную схему формы оставлю ниже. Без неё может быть трудно понять если вам предметно хочется разобраться.

Схема: "A или B; A; следовательно не B", можно записать так A ∨ B, A ⊢ ¬B. Для включающего ∨ форма не сохраняет истину: A и B могут быть истинны вместе, посылки при этом остаются истинными, а вывод ложен. Валидна она только для явно исключающего "ровно одно из двух": A ⊕ B, A ⊢ ¬B. Для обычного "или" валиден отрицающий модус: A ∨ B, ¬B ⊢ A.

const allowed = isEmployee || hasBetaAccess а ниже if (isEmployee) { assert(!hasBetaAccess); } assert упадёт на сотруднике у которого есть и бета-доступ

29 / 67 · Схема вывода

Апелляция к незнанию

appeal to ignorance · argumentum ad ignorantiam · аргумент от незнания

Иллюстрация из авторской статьи: Апелляция к незнанию
Открыть иллюстрацию ↗

Отсутствие доказательства выдают за доказательство отсутствия — или наоборот.

Утверждение.

В этой квартире завелись мыши

Никто ни разу мышь не видел значит, никаких мышей нет.

Почему это ошибка.

Никто и не искал: ловушек не ставили, за плиту и под мойку не заглядывали. "Мы не наблюдали" и "их нет" это разные утверждения, второе требует поиска, который обнаружил бы мышей, если бы они были

На работе.

"В логах ничего нет — значит, ошибки не было". Может не быть логирования на этом пути, уровень логов может стоять на warning, которые вообще не пишутся например в кибану или мойру, ну или запись могла потеряться при ротации или семплировании.

Что отвечать.

Что именно искали, каким методом, и обнаружил бы этот метод искомое, если бы оно там было? ну или Если бы ошибка была, как бы она выглядела в логах? Сможем симулировать поведение?

Отсутствие доказательства выдают за доказательство отсутствия или наоборот. Тут всё тесно связано с методом поиска (можно попробовать сказать научным методом) рассмотрим это дальше.

Две зеркальные схемы:

"не доказано, что P, следовательно не P"

"не доказано, что не P, следовательно P"

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

33 / 67 · Схема вывода

Отрицание предшествующего

denying the antecedent · отрицание основания · inverse error

Иллюстрация из авторской статьи: Отрицание предшествующего
Открыть иллюстрацию ↗

Из «если A, то B» и «не A» выводят «не B», принимая достаточное условие за необходимое.

Утверждение.

Если товар хрупкий, на коробку клеят специальную наклейку

Наклейки нет значит, товар не хрупкий, можно ставить к нехрупкому.

Почему это ошибка.

Наклейку могли забыть, она могла отклеиться, партию могли собрать по старой инструкции. Правило гарантировало наклейку у хрупкого, а не прочность у всего, что без наклейки

На работе.

"Если запрос от имени администратора, то отчёт доступен. Запрос не от имени администратора, то значит, доступа нет" хотя право может быть у модератора или овнера ресурса. То же при инциденте: "релиза не было, а значит деградация появилась не от внешних изменений", но при этом забывают, что конфиг, фича‑флаги, данные в бд и зависимости на тачке могут меняться без релиза.

Что отвечать.

Это условие достаточное или необходимое? Назови другие пути к тому же результату. К сожалению, тут совсем всё душновато, по сути тут надо пробовать валидировать выполняется ли это условие без изменений извне или нет. С коробкой например - "если товар хрупкий, на коробку клеят специальную наклейку" нужно челленджить действие, спрашивать "а если стикер отклеится, то товар будет считаться не хрупким?" И тоже самое в работе с LSR: если релиза не было и ты считаешь, что деградация не от внешних изменений, то какие причины деградации системы вообще могут быть если мы не будем ничего релизить год или десять?

Из "если A, то B" и "не A" выводят "не B", принимая достаточное условие за необходимое.

Схема:

если A, то B; не A; следовательно не B, то есть A → B, ¬A ⊢ ¬B

Контрмодель строится мгновенно:

пусть B истинно по другой причине при ложном A, тогда обе посылки истинны, вывод ложен.

Импликация запрещает ровно одну комбинацию (A истинно, B ложно) и о случае ложного A не говорит ничего. Ближайшая валидная форма это modus tollens: A → B, ¬B ⊢ ¬A

46 / 67 · Схема вывода

Доказательство через утверждение (повторение)

proof by assertion · proof by repetition · argumentum ad nauseam · доказательство повторением

Иллюстрация из авторской статьи: Доказательство через утверждение (повторение)
Открыть иллюстрацию ↗

Тезис повторяют всё настойчивее вместо того, чтобы его обосновать.

Утверждение.

Через мост ехать до дачи быстрее, чем в объезд.

- Почему?  - Потому что быстрее - Я тебе двадцать раз говорил, просто быстрее, и всё

Почему это ошибка.

На пятом повторении данных о времени в пути столько же, сколько на первом - ноль. Вопрос решается одним замером на двух маршрутах, а не настойчивостью.

На работе.

"Эта библиотека нам не подходит" в третьем сообщении подряд вам говорят без приведения хоть какого-то числа или качественной метрики ну или "у нас так принято" вместо ADR или "микросервисы быстрее" на каждом дизайн‑ревью.

Что отвечать.

Твоя позиция мне давно ясно, тезис я услышал и запомнил. Теперь предоставь хоть какое-то основание: данные, расчёт метрики или ссылку или хоть какой-то другой пруф вместо повторения.

Тезис повторяют без изменений и настойчивее вместо того, чтобы дать ему основание. Это ещё одна из глупых форм софистики. Потому что повторение вообще не добавляет фактов :) ну если только силлогизм не построен на форме повторения xD. Однако стоит понимать, что в психологии повторение работает как манипуляция, если вам повторят что-то тысячу раз, то это начинает казаться правдой. Но в логике это не работает. Этот приём вообще очень похож на круговую аргументацию, только там тезис просто синонимизировали или переименовывали, а тут просто растёт частотность и/или тон и/или громкость высказывания.

54 / 67 · Схема вывода

Ложное опровержение

ignoratio elenchi · irrelevant conclusion · missing the point · мнимое опровержение · незнание опровержения

Иллюстрация из авторской статьи: Ложное опровержение
Открыть иллюстрацию ↗

Опровергают не тот тезис, который выдвинули, и объявляют исходный опровергнутым.

Утверждение.

Чайник подтекает, его пора чинить

Да брось, отличный чайник, мы его пять лет назад покупали, он до сих пор кипятит воду за три минуты

Почему это ошибка.

Никто не спорил, что чайник кипятит и служит пять лет. Опровергнуть требовалось "подтекает", а опровергнуто "плохой" тезис, которого не выдвигали.

На работе.

"Ты говоришь, что для этого потока данных нужна идемпотентность, а Kafka для нас сложная технология" как ответ может быть верным и не касаться требования. Тот же приём в разборе инцидента: на "алерт сработал на сорок минут позже события" отвечают "зато починили за два часа, MTTR хороший". Метрика реальная, а тезис другой и в постмортеме остаётся невыясненная дыра в реагировании на алерт.

Что отвечать.

Зафиксируем исходный тезис дословно. Что именно в нём не так? Или как твой вывод связан с моим утверждением? Конкретно, как одно перетекает в другое?

Дальше все мемы будут от биполярного типа, который сначала утверждает, а затем объясняет что не так, ведь теперь на месте второго в середине уже Вы, тяжко читается, понимаю, но так Вы сможете сюда возвращаться хоть.

Опровергают не тот тезис, который был выдвинут, и объявляют исходный опровергнутым.

Настоящее опровержение требует противоречия тому же предмету, по тому же предикату, в том же отношении, в то же время и в той же модальности и без включения исходного тезиса в основание. Ложное опровержение доказывает нечто соседнее: более слабое утверждение, другую тему, частный случай и переносит эффект победы на исходный тезис. Схема при этом может быть безупречной: сбой тут конечно не в форме вывода, а в адресации заключение истинно и не касается спора.

64 / 67 · Схема вывода

Ошибка «я имею мнение»

I am entitled to my opinion · entitled to my opinion · право на мнение вместо основания · subjectivist fallacy

Иллюстрация из авторской статьи: Ошибка «я имею мнение»
Открыть иллюстрацию ↗

Право высказать мнение выдают за основание считать его верным.

Утверждение.

Это молоко пастеризованное, кипятить его перед кашей не нужно.

Не знаю, я считаю, что любое молоко надо кипятить. Я имею право на своё мнение.

Почему это ошибка.

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

На работе.

На код‑ревью: "мне кажется, слои абстракции стоит разделить", вам отвечают "а мне кажется, не стоит, это дело вкуса".

Что отвечать.

Право на мнение бесспорно, я спрашиваю не о праве. На чём это мнение держится? Есть обоснование чем-то кроме мнения?

Право высказывать мнение выдают за основание считать это мнение истинным.

66 / 67 · Схема вывода

Пустая истина

vacuous truth · пустая истинность · истинность на пустом множестве

Иллюстрация из авторской статьи: Пустая истина
Открыть иллюстрацию ↗

Утверждение истинно только потому, что нет ни одного случая, где его можно проверить, а звучит как подтверждение.

Утверждение.

Все просроченные продукты я выбрасываю в тот же день.

Проверила холодильник, там просрочки нет. Значит, правило работает и соблюдается идеально.

Почему это ошибка.

Правило ни разу не применялось: не нашлось ни одного случая, к которому оно относится. "Ни разу не нарушено" и "подтверждено" это разные вещи. На пустом множестве одинаково истинно и "все просроченные я съедаю"

На работе.

Тест, у которого фильтр отсеял все входные записи, проходит зелёным: "для всех записей выполняется инвариант" истинно на пустой выборке. Так же ведёт себя алерт "за сутки ни одного нарушения SLA", если метрика перестала поступать, и политика "все запросы роли X логируются", если роль X никому не выдана.

Что отвечать.

Сколько случаев реально попало под условие? Если ноль, то утверждение истинно и не сообщает ничего

Утверждение истинно лишь потому, что случаев, способных его опровергнуть, не существует, — а звучит как содержательное подтверждение.

В классической логике импликация A → B истинна всегда, когда A ложно, соответственно ∀x(Sx → Px) истинно, если ни один x не удовлетворяет Sx. "Все единороги в моём подъезде вежливы" является истиной, так как формальной ошибки здесь нет: правило корректно, и отказ от правила ломает больше, чем чинит

67 / 67 · Схема вывода

Ошибка ошибки

fallacy fallacy · argument from fallacy · argumentum ad logicam · ошибка обращения к ошибке

Иллюстрация из авторской статьи: Ошибка ошибки
Открыть иллюстрацию ↗

Из того, что довод за тезис плох, выводят, что сам тезис ложен.

Утверждение.

На таком уклоне машину надо ставить на ручник

Ты сказал "все так делают", а это уже апелляция к большинству, классическая ошибка. Значит, ручник не нужен.

Почему это ошибка.

Довод действительно был слабым, но уклон никуда не делся. Корректный итог "это основание не годится, дай другое", а не "тезис ложен". На месте разобранного аргумента остаётся не опровержение, а пустота.

На работе.

На дизайн‑ревью: "твой довод про latency это post hoc, ты перепутал корреляцию с причиной, поэтому индекс не нужен". Тот же приём в разборе инцидента: назвать чужую гипотезу confirmation bias и на этом её закрыть, не проверив данными, так теряются верные гипотезы, высказанные плохо.

Что отвечать.

Согласен, этот довод не работает. Тезис от этого не стал ложным, есть ли у него другое основание? Можешь дать другой аргумент?

Из того, что аргумент в пользу тезиса плох, выводят, что сам тезис ложен.

2 / 67 · Обобщение и границы

Поспешное обобщение

hasty generalisation · поспешная индукция · generalisation from a small sample

Иллюстрация из авторской статьи: Поспешное обобщение
Открыть иллюстрацию ↗

Вывод обо всём классе делают по нескольким случаям, которые просто попались под руку.

Утверждение.

Курьерская служба работает плохо

Мне два раза привезли заказ с опозданием, значит они всегда опаздывают.

Почему это ошибка.

Два наблюдения одного человека не дают доли опозданий, а человеческая память вдобавок держит провалы охотнее, чем десяток доставок вовремя

На работе.

- Два падения на одном инстансе превращаются в "библиотека течёт"; - Три сообщения в чате в "пользователям не нужна эта фича" - Один прогон бенчмарка на ноутбуке в "новая версия быстрее". Лечится числом наблюдений и разбросом рядом с выводом: например p95 по 40 000 запросов за неделю на проде, а не "у меня открывается быстро".

Что отвечать.

Спросите, сколько было случаев и как они попали в поле зрения. Попросите переформулировать вывод с квантором: в скольких процентах случаев и на какой базе случаев это получилось.

Вывод обо всём классе делают по нескольким случаям, которые просто попались под руку.

Индукция законна, но её сила зависит от размера выборки, способа отбора и разброса внутри класса. Ошибка появляется, когда объём наблюдений не назван, случаи собраны по доступности, а вывод формулируется без квантора и без оговорок. Различать нужно не "мало примеров" против "много", а "выборка отражает класс" против "выборка отражает то, что я успел заметить"

5 / 67 · Обобщение и границы

Скользкая дорожка

slippery slope · скользкий склон · аргумент домино

Иллюстрация из авторской статьи: Скользкая дорожка
Открыть иллюстрацию ↗

Из первого шага выводят неизбежность последнего, не показав ни одного перехода между ними.

Утверждение.

Ребёнок просит лечь спать на полчаса позже в пятницу

Разрешишь один раз и он вообще перестанет ложиться вовремя

Почему это ошибка.

Между "позже в пятницу" и "никогда вовремя" пропущены все шаги, и не сказано, почему правило "в будни как обычно" вдруг перестанет работать. Это кстати классическая энтимема, но в объеме полисиллогизма, пропущена тьма посылок

На работе.

- Дадим одно исключение на code review и контроль развалится - Включим один feature flag без срока и продукт станет набором веток. Второе кстати иногда правда: флаги без ответственного и даты истечения реально накапливаются, и это видно по их количеству.

Что отвечать.

Попросите выписать звенья по одному и для каждого назвать механизм как это работает и ограничитель. Спросите, что именно мешает остановиться на втором шаге и почему оно неизбежно полетит в тартарары

С этого начинается эта публикация как пример про аннигиляцию xD

Из первого шага выводят неизбежность последнего, не показав ни одного промежуточного перехода. Ошибка не в том, что названа цепочка последствий, а в том, что её звенья пропущены: механизм перехода, вероятность каждого шага, время и то, что могло бы цепочку остановить.

8 / 67 · Обобщение и границы

Ложная дихотомия

false dilemma · ложная дилемма · чёрно-белое мышление · either/or fallacy

Иллюстрация из авторской статьи: Ложная дихотомия
Открыть иллюстрацию ↗

Выбор сужают до двух вариантов, хотя есть третий, просто его не назвали.

Утверждение.

Надо решить, что делать со старой машиной

Либо продаём её сейчас, либо ездим на ней ещё пять лет

Почему это ошибка.

Есть ремонт и продажа через год, обмен с доплатой, езда до первой крупной поломки. Список из двух пунктов был выбран осознанно, а не выведен из ограничений. Вас засунули в два неподходящих Вам выбора. И так часто происходит в жизни, заставляют "хавать" то, что удобно.

На работе.

- "Либо микросервисы, либо не масштабируемся" - "Либо переписываем с нуля, либо живём с этим кодом" - "либо 100% покрытия, либо тестов нет" Почти всегда доступны strangler‑миграция, вынос одного модуля, покрытие критического пути.

Что отвечать.

Назовите третий вариант и попросите объяснить, чем именно он исключён. Если нет объяснения, то список был риторическим приёмом.

Пространство вариантов сужают до двух, хотя третий доступен и просто не назван.

Деление по признаку "P или не‑P" исчерпывающе по построению.

13 / 67 · Обобщение и границы

Ошибка композиции

fallacy of composition · перенос свойства частей на целое

Иллюстрация из авторской статьи: Ошибка композиции
Открыть иллюстрацию ↗

Свойство каждой части приписывают целому, хотя у соединения своё поведение.

Утверждение.

Гости хвалили каждое блюдо по отдельности

Значит, ужин целиком удался

Почему это ошибка.

Сочетание может не работать: три похожих вкуса подряд, всё остыло к общей подаче, тяжёлое после тяжёлого. Свойство "вкусно" не складывается автоматически

На работе.

"Каждый сервис держит 1000 RPS, а значит цепочка сервисов держит 1000 RPS": держит она столько, сколько самое узкое звено, и меньше при fan‑out и коррелированных пиках. "Каждый модуль покрыт на 90% - значит поведение системы покрыто на 90%": покрытие модулей ничего не говорит о путях через границы (по сути интеграционного тестирования например нет).

Что отвечать.

Спросите, по какому закону или правилу (или накрайняк аксиоме) свойство переносится на целое, и приведите случай, где целое ведёт себя не так, как части

Свойство каждой части приписывают целому, хотя у соединения своё поведение.

Переход "часть → целое" вполне валиден для аддитивных свойств или при доказанном законе композиции: масса целого равна сумме масс частей. Но у других часто нарушается именно стрелка из-за того, что сочетание частей не производится корректно

14 / 67 · Обобщение и границы

Ошибка деления

fallacy of division · перенос свойства целого на части

Иллюстрация из авторской статьи: Ошибка деления
Открыть иллюстрацию ↗

Свойство целого приписывают каждой его части.

Утверждение.

Команда быстро закрывает задачи

Значит, каждый в команде работает быстро

Почему это ошибка.

Скорость команды это результат распределения работ и взаимной помощи: тяжёлое достаётся тем, кто с этим уже сталкивался. Темп отдельного участника из агрегата не выводится.

На работе.

"Система доступна на 99,9% — значит каждый компонент доступен на 99,9%": у компонентов разные SLO, резерв и место на критическом пути (low, medium, high, critical по CJM), часть из них может лежать без последствий. "Средняя latency 50 мс  значит запросы отвечают за 50 мс", а у хвоста p99 своя жизнь "Компания прибыльна значит каждый продукт прибыльный", а убыточный продукт субсидируется остальными.

Что отвечать.

Спросите, распределяется ли свойство о котором говорят по построению или это агрегат. Попросите разбивку по компонентам и хвост распределения, а не среднее.

Свойство целого приписывают каждой его части. Обратное предыдущему.

19 / 67 · Обобщение и границы

Настоящий шотландец

no true Scotsman · appeal to purity · апелляция к чистоте

Иллюстрация из авторской статьи: Настоящий шотландец
Открыть иллюстрацию ↗

Контрпример не опровергают, а задним числом исключают из класса словом «настоящий».

Утверждение.

Настоящий турист никогда не берёт чемодан на колёсиках

- Марина три недели ходила по горам с чемоданом. - Значит, она не настоящий турист.

Почему это ошибка.

Тезис сделали неопровержимым: любой контрпример теперь автоматически выпадает из класса,

На работе.

"Настоящие микросервисы не превращаются в distributed monolith" - а система, которая превратилась, объявляется не настоящими микросервисами. "Настоящий Agile не требует оценок" - как только команда с оценками работает хорошо, её объявляют не Agile.

Что отвечать.

Спросите, был ли критерий записан до появления контрпримера. Попросите заранее назвать наблюдаемый исход, который считался бы опровержением.

Контрпример не опровергают, а задним числом выводят из класса словом "настоящий".

Обобщение "все A суть B" встречает A, который не B. Вместо ослабления обобщения говорящий меняет определение A так, чтобы неудобный случай в него не попал.

25 / 67 · Обобщение и границы

Ошибка золотой середины

middle ground · argument to moderation · argumentum ad temperantiam · золотая середина

Иллюстрация из авторской статьи: Ошибка золотой середины
Открыть иллюстрацию ↗

Раз две позиции крайние, считают, что истина ровно посередине.

Утверждение.

Сколько соли класть в суп?

- Ложку - Три - Значит, две, ведь истина всегда посередине

Почему это ошибка.

Нужное количество определяется объёмом кастрюли, воды, физикой и вкусом, а не средним из двух мнений. Скажи второй "десять", "истина" уехала бы к пяти

На работе.

"Один оценил переезд с легаси в месяц, другой в год, значит полгода"Срок должен браться из декомпозиции и данных о похожих работах, а не из середины между оценками. То же с латентностью, размером инстанса и сроком хранения логов: середина между двумя цифрами не является измерением.

Что отвечать.

Спросите, чем измеряется ответ. Фактический вопрос - попросите данные; распределительный - называйте компромисс компромиссом, а не истиной. Например можно "абсурдировать" позицию через увеличение числа, "а если пять?" или "а если тысяча?", так можно увидеть, что середина двигается и тем самым дать понять, что первая середина не работает как середина

Из того, что две позиции крайние, выводят, что истина лежит ровно между ними. Прикол в том, что обычно спорящий сам заранее как в торгах выбирает более-менее удобную позицию этой самой середины.

30 / 67 · Обобщение и границы

Ошибка континуума

continuum fallacy · sorites · парадокс кучи · line-drawing fallacy

Иллюстрация из авторской статьи: Ошибка континуума
Открыть иллюстрацию ↗

Раз между состояниями нет резкой границы, считают, что различия нет вовсе.

Утверждение.

Один волос не делает человека лысым

Значит, лысых вообще не бывает, граница ведь нигде не проходит

Почему это ошибка.

Из непрерывности перехода следует, что есть пограничные случаи, а не то, что крайние случаи неразличимы

На работе.

"Никто не назовёт запрос, после которого началась перегрузка, а это значит перегрузки нет": работают порог, интервал и проверка чувствительности решения к порогу. Обратная сторона: "79 мс - быстро, 80 мс - медленно", хотя SLO в 80 мс придумали на встрече.

Что отвечать.

Согласитесь, что граница нечёткая, и всё равно попросите различить два крайних случая. Затем спросите, где порог и кто его выбрал.

Из отсутствия резкой границы между состояниями выводят, что различия нет вовсе.

32 / 67 · Обобщение и границы

Ложная аналогия

false analogy · weak analogy · faulty comparison

Иллюстрация из авторской статьи: Ложная аналогия
Открыть иллюстрацию ↗

Из сходства в одном признаке выводят сходство в другом, хотя эти признаки не связаны.

Утверждение.

Ремонт квартиры надо вести по смете

Квартира как организм, а организм лечат целиком, а значит, ремонт нужно делать сразу во всех комнатах

Почему это ошибка.

Общее у квартиры и организма это метафорическая целостность, а не то, от чего зависит порядок работ. У комнат, в отличие от органов, нет общего кровотока, и жить можно даже в половине квартиры (например в комнате, привет Гарри)

На работе.

"База данных, как файловая система, значит бэкап копированием файлов подойдёт": общего много, но у СУБД есть транзакции и порядок записи. "У них похожий сервис, и им зашло, а значит зайдёт и нам": сходство по языку и домену не переносит вывод, если различаются профиль нагрузки и цена ошибки.

Что отвечать.

Разбор аналогии всегда конечен: выпишите сходства, различия и то, к какому из них привязан вывод. Спросите, по какому именно признаку идёт перенос, и назовите различие, которое ломает вывод.

Из сходства в одном признаке выводят сходство в другом, хотя связи между этими признаками нет.

Аналогия это законный(специально делаю жирным, потому что есть уникумы, кто говорит "аналогии не работают!!!111"), а иногда единственный доступный инструмент: она переносит вывод с изученного случая на неизученный. Сила переноса зависит от того, релевантен ли общий признак выводу и нет ли различий, работающих против. Ошибка появляется, когда переносится несущественный признак, различия не названы, а сходство держится на образе.

39 / 67 · Обобщение и границы

Ложная эквивалентность

false equivalence · false balance · ложный баланс

Иллюстрация из авторской статьи: Ложная эквивалентность
Открыть иллюстрацию ↗

Два случая объявляют одинаковыми по общему признаку, не глядя на масштаб, частоту и последствия.

Утверждение.

Оба соседа шумят

Один раз в год сверлил стену днём это то же самое, что каждую ночь включать музыку. Оба ведь шумят.

Почему это ошибка.

Общая категория "шум" есть, но частота, время и обратимость отличаются на порядки. Равенство держится на названии, а не на измерении.

На работе.

"Обе команды нарушили процесс": одна выкатила hotfix без ревью во время инцидента, другая полгода мержит без тестов. "У обоих вариантов есть риски" верно и бесполезно, пока не названы вероятность и ущерб. В postmortem это самая частая подмена: одно слово "ошибка" используют и на опечатку в дашборде и на потерю данных.

Что отвечать.

Согласитесь с общим признаком и сразу спросите про ось: насколько, как часто, с какими последствиями и обратимо ли.

Два случая объявляют одинаковыми по общему признаку, игнорируя разницу в масштабе, частоте и последствиях. Общее свойство находится всегда: и опоздание на пять минут, и сорванная поездка называют "нарушение договорённости".

45 / 67 · Обобщение и границы

Ошибка нирваны

nirvana fallacy · perfect solution fallacy · сравнение с идеалом

Иллюстрация из авторской статьи: Ошибка нирваны
Открыть иллюстрацию ↗

Рабочее решение отвергают за неидеальность, не сравнив с реальной альтернативой.

Утверждение.

Стоит ли ставить на дверь второй замок

Любой замок можно вскрыть, значит смысла нет

Почему это ошибка.

Вопрос не в гарантии, а в том, как меняются вероятность и издержки по сравнению с одним замком и во сколько это обходится.

На работе.

"Canary не ловит все инциденты значит бесполезен", "линтер не находит логические ошибки, тогда зачем он?", "2FA не спасёт от целенаправленной атаки не будем внедрять".

Что отвечать.

Спросите, с чем именно сравниваем: попросите назвать альтернативу и оценить ущерб в обоих сценариях вместе со стоимостью принятия предлагаемой меры.

Рабочее решение отвергают за неидеальность, не сравнив его с реально доступной альтернативой. Сравнивать надо не с воображаемым совершенством!!!11

16 / 67 · Причины и данные

Личный опыт (анекдотическое свидетельство)

anecdotal evidence · argument from anecdote · «у меня сработало»

Иллюстрация из авторской статьи: Личный опыт (анекдотическое свидетельство)
Открыть иллюстрацию ↗

Один запомнившийся случай ставят вместо данных о том, как часто так бывает.

Утверждение.

Соседка при первых признаках простуды выпила витамины и выздоровела за три дня

Значит, витамины лечат простуду

Почему это ошибка.

Простуда и без лечения проходит за несколько дней, а витамин принимают на пике симптомов. Случаи "пил и болел неделю" в разговорах не всплывают: нет ни группы сравнения, ни числа попыток.

На работе.

"На прошлой работе у нас Kafka теряла сообщения, поэтому не берём" — один инцидент трёхлетней давности, на чужой версии и чужой конфигурации, против опыта тысяч инсталляций. То же в поддержке: три P0-тикета за утро выглядят как эпидемия, пока не посчитаешь долю: 3 обращения на 40к активных сессий, то есть внутри обычного фона.

Что отвечать.

Сколько было таких случаев всего и сколько из них закончились иначе? Мы знаем частоту или только один исход, который запомнился?

Один запомнившийся случай подставляют вместо данных о том, как часто так бывает. Ну или когда кодеры говорят "у меня на компе работает!111"

20 / 67 · Причины и данные

Ошибка техасского стрелка

texas sharpshooter fallacy · мишень вокруг попадания · post hoc субгруппа

Иллюстрация из авторской статьи: Ошибка техасского стрелка
Открыть иллюстрацию ↗

Мишень рисуют после выстрела: гипотезу подгоняют под случайное скопление, уже замеченное в данных.

Утверждение.

В доме на углу за прошлый год родились четверо детей, и все мальчики.

Что‑то в этом доме влияет на пол ребёнка, например вода, планировка дома, место участка

Почему это ошибка.

Дом выбран после того, как совпадение заметили. Четыре мальчика подряд это примерно один шанс из шестнадцати, а в городе с тысячами домов такие серии обязаны встречаться десятками. Мишень нарисована вокруг попадания, а не наоборот

На работе.

A/B‑тест не дал эффекта на всей выборке, аналитик режет данные по сегментам и находит +8% конверсии у Android в Германии на второй неделе. Проверок было около сотни - пять ложных находок ожидаемы даже при полном отсутствии эффекта. Правильным ходом было бы записать находку как гипотезу и проверить её предзарегистрированным тестом на новом трафике, а не выкатывать релиз по субгруппе. То же с алертами и дашбордами: если смотреть 300 графиков, то увидите, что каждый день "деградирует" несколько метрик.

Что отвечать.

Этот сегмент и метрика были выбраны до того, как мы посмотрели данные? Сколько срезов проверено всего и что показали остальные?

Мишень рисуют после выстрела: гипотезу подгоняют под случайный кластер, уже замеченный в данных.

21 / 67 · Причины и данные

Ошибка корреляции

cum hoc ergo propter hoc · корреляция не равна причинности

Иллюстрация из авторской статьи: Ошибка корреляции
Открыть иллюстрацию ↗

Раз две величины меняются вместе, считают, что одна вызывает другую.

Утверждение.

Чем больше в городе за день продают мороженого, тем больше вызовов спасателей на пляже

Мороженое делает людей беспечными в воде

Почему это ошибка.

Общая причина это жара: она одновременно гонит людей к киоску и в воду. Ни одна из двух величин не влияет на другую, потому как уберёте мороженое, и число вызовов не изменится (но может стать так, что те, кто шли за мороженным пойдут в воду, это, конечно, да)

На работе.

На дашборде видно: сервисы с частыми деплоями имеют больше инцидентов. Вывод направшивается сам "частые релизы ломают прод" и оно переворачивает картину. Общая причина это критичность и активность: нагруженные развиваемые сервисы получают и больше изменений, и больше трафика, и более качественную наблюдаемость, то есть просто больше зарегистрированных инцидентов. Возможна и обратная стрелка суждения: после инцидента чинят и выкатывают чаще. Прежде чем вводить релизное окно, смотрите change failure rate на деплой, а не число инцидентов на сервис, и сравнивайте с сервисами сопоставимой критичности.

Что отвечать.

Что могло одновременно повлиять и на предполагаемую причину и на результат? И не может ли быть в обратную сторону?

Из того, что две величины меняются вместе, заключают, что одна вызывает другую.

Совместное изменение совместимо минимум с шестью структурами суждения:

X вызывает Y

обратное направление Y вызывает X

общая причина Z действует и на X, и на Y

связь создана отбором, то есть тем, как данные попали в выборку

обратная связь

наконец, простое совпадение

28 / 67 · Причины и данные

Ошибка невозвратных затрат

sunk cost fallacy · escalation of commitment · «столько уже вложено»

Иллюстрация из авторской статьи: Ошибка невозвратных затрат
Открыть иллюстрацию ↗

Прошлые вложения, которые не вернуть, приводят как довод продолжать, хотя решение зависит только от будущего.

Утверждение.

Билеты в кино куплены, но уже на десятой минуте понятно, что фильм скучный

Надо досидеть до конца, иначе деньги пропадут зря

Почему это ошибка.

Деньги потрачены в обоих вариантах и при досмотре и не при досмотре кино. Выбор идёт между "полтора скучных часа" и "свободный вечер", а вот прошлый платёж в это сравнение не входит вовсе. Я так, например, впервые ушёл из кино, когда сходил на Супермена нового, мне не подходит такой герой, раньше это был сильный персонаж, теперь какие-то комичные сопли. Просто встал и ушёл. Было грустно, но я смог!!1

На работе.

Внутренняя платформа пишется два года силами шести инженеров, плановая миграция сервисов не сдвинулась. Довод "столько вложено, нельзя бросать" подменяет настоящий вопрос: если бы платформы сегодня не существовало, начали бы мы её при текущей цене готового решения и текущих требованиях? Тот же разговор про переписывание легаси, про отказ от A/B-эксперимента с двухмесячным набором данных и про самописный крон. Лечится не силой воли, а процессом: stop‑условия и бюджет фиксируются до старта, kill review стоит в календаре, а решение о продолжении принимает не автор гипотезы.

Что отвечать.

Если бы мы встретили эту возможность сегодня, ничего ещё не вложив, начали бы? Какие затраты остались впереди, а не позади? Что мешает просто остановиться? Есть ли критерий в каком случае мы просто всё остановим и закроем?

Прошлые невозвратные вложения приводят как довод продолжать, хотя решение зависит только от будущего. Погуглите про эффект Конкорда. Там много ярдов вбухали вместо того, чтобы остановить производство. Причём люди, которые релоцируются, достаточно, часто используют эту ошибку как причину к тому чтобы не релоцироваться обратно. У меня много таких коллег, кто просто считает, что раз потратил бабки на релок, то назад уже будет бессмысленно ехать. Решение должно быть взвешенным. (пишу тут про это, чтобы подсветить, что это как раз-таки часто бывает ошибкой)

34 / 67 · Причины и данные

Ошибка ложной причинности

post hoc ergo propter hoc · после этого — значит из-за этого

Иллюстрация из авторской статьи: Ошибка ложной причинности
Открыть иллюстрацию ↗

Раз B случилось после A, считают, что A вызвало B.

Утверждение.

Ребёнок кашлял неделю; вчера дали сироп по совету соседа, сегодня кашля почти нет

Сироп вылечил кашель

Почему это ошибка.

Сироп дали на седьмой день, когда болезнь и так шла на спад. Лекарство почти всегда начинают в худшей точке, а после худшей точки исход в среднем улучшается независимо от лечения, так как это регрессия к среднему, а не эффект сиропа

На работе.

В 14:05 выкатили релиз, в 14:12 p99 вырос втрое, откатили, стало лучше, инцидент закрыт с причиной "релиз". Проверьте: график начал расти до 14:05? Не стартовал ли в это окно ночной batch какой-нибудь, не деградировала ли зависимость, не сменился ли конфиг? Не совпал ли откат с концом пикового часа? Откат меняет сразу всё состояние системы, поэтому "«после отката полегчало" ровно такой же post hoc, как и исходный вывод

Что отвечать.

Что ещё изменилось в этом же окне релиза? Метрика начала расти уже до события? Есть ли пример, где такого события не было из-за релиза? Что будет если запустим релиз через час? А если после-завтра? Ситуация зависит напрямую от времени или дня?

Из того, что B случилось после A, заключают, что A вызвало B.

36 / 67 · Причины и данные

Экологическая ошибка

ecological fallacy · ecological inference fallacy · перенос среднего на индивида

Иллюстрация из авторской статьи: Экологическая ошибка
Открыть иллюстрацию ↗

Среднее свойство группы переносят на каждого её участника.

Утверждение.

В районе A средний доход выше, чем в районе B.

Значит, знакомый из района A зарабатывает больше знакомого из района B

Почему это ошибка.

Среднее ничего не говорит о конкретной паре людей: в A может быть несколько очень обеспеченных домохозяйств и много скромных. Разброс внутри районов больше, чем разница между их средними.

На работе.

Команды с высоким покрытием тестами реже роняют прод, отсюда делают вывод, что каждый инженер, подняв покрытие своего модуля, снизит количество возникающих инцидентов. Единица анализа подменена: на уровне команды работают ревью, CI, дежурства и то, какие сервисы ей достались, а не покрытие само по себе.

Что отвечать.

Мы тут что рассматриваем как единицу в анализе группу или отдельного человека? Разброс внутри групп не больше, чем разница между ними?

Свойство группы, посчитанное в среднем, переносят на каждого её участника.

40 / 67 · Причины и данные

Ошибка историка

historian's fallacy · суд задним числом · hindsight в оценке решений

Иллюстрация из авторской статьи: Ошибка историка
Открыть иллюстрацию ↗

Прошлое решение судят по знанию, которого у решавшего тогда не было.

Утверждение.

Прошлым летом семья выбрала отель по отзывам и фотографиям; на месте под окнами оказалась стройка.

Как можно было не проверить? Надо было просто выбрать другой отель!

Почему это ошибка.

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

На работе.

В постмортеме звучит: "алерт же был в 3:40, почему дежурный не среагировал". В 3:40 этот алерт был одним из семнадцати, четырнадцать из которых шумят каждую ночь; захайлайченным он стал только после того, как мы узнали ответ.

Что отвечать.

Что было известно человеку в ту минуту и как это выглядело среди остального шума? Мы оцениваем решение или уже известный исход?

Прошлое решение оценивают знанием, которого у решавшего в тот момент не было.

42 / 67 · Причины и данные

Неполное сравнение

incomplete comparison · сравнение без базы · «на 30% лучше»

Иллюстрация из авторской статьи: Неполное сравнение
Открыть иллюстрацию ↗

Сравнение подают без второй стороны, без базы и без условий измерения.

Утверждение.

На упаковке йогурта: "Новая формула, на 50% меньше сахара" (ну или как там пишут)

Значит, продукт почти не сладкий и подходит тем, кто следит за питанием

Почему это ошибка.

Не сказано меньше чем что: чем прошлая версия того же бренда, где сахара было вдвое больше обычного? Половина от много всё ещё много. Без исходного уровня и абсолютных граммов на порцию сравнение непроверяемо

На работе.

"Новый сервис в три раза быстрее", а быстрее чего: старой версии на холодном кэше, на другой машине, при другом профиле нагрузки? Какая метрика — среднее или p99, на какой доле запросов, сколько длился прогон?

Что отвечать.

Быстрее, дешевле, лучше - чем именно, по какой метрике и при каких условиях? Какие тут абсолютные числа и что в основе лежит у знаменателя с которым мы сравниваем?

Сравнительное утверждение предъявляют без второго члена сравнения, без базы и без условий измерения, например всякие "быстрее", "дешевле", "на 40% эффективнее".

Это мне как-то на одном проекте продавали clean architecture руководствуясь тезисами "мы сможем быстрее разрабатывать и качество вырастет!". На мой запрос "а с чем сравниваете? где пруфы?" ответа не было(

43 / 67 · Причины и данные

Ошибка игрока

gambler's fallacy · ошибка Монте-Карло · «должно выпасть»

Иллюстрация из авторской статьи: Ошибка игрока
Открыть иллюстрацию ↗

От независимого случайного процесса ждут, что он возместит прошлую серию.

Утверждение.

В лотерее пять розыгрышей подряд не выпадало число 17

Значит, сейчас у 17 больше шансов — оно уже "должно" выпасть

Почему это ошибка.

Шар не помнит прошлых тиражей: вероятность та же, что в первый раз. Силы, выравнивающей частоты на коротком отрезке, не существует, равенство частот наступает на бесконечности, а не в следующем тираже, в теории хаоса это предметно разобрано как раз.

На работе.

"Четыре ночи дежурство было спокойным сегодня точно рванёт" и зеркальное "десять зелёных сборок подряд, пайплайн стабилен, можно снять проверки". Оба вывода принимают независимость на веру.

Что отвечать.

Тесты здесь действительно независимы? Если да, то прошлое не влияет на следующий исход, а вот если нет, то серия говорит об необходимости изменении процесса, а не о долге случайности.

От независимого случайного процесса ждут, что он компенсирует предыдущую серию.

Если испытания независимы и вероятность постоянна, прошлые исходы не меняют следующий: у монеты нет памяти (ну если в ней реально нет памяти разумеется).

47 / 67 · Причины и данные

Черри пикинг

cherry picking · подавленное свидетельство · suppressed evidence

Иллюстрация из авторской статьи: Черри пикинг
Открыть иллюстрацию ↗

Из данных показывают только подтверждающую часть и молчат о такой же опровергающей.

Утверждение.

Знакомый советует онлайн‑курс и присылает пять восторженных отзывов

Отзывы отличные, а значит, курс работает

Почему это ошибка.

Пять отзывов отобраны из сотен, и отбирал заинтересованный человек. Не показаны ни доля бросивших на второй неделе, ни отрицательные отзывы, ни те, кто дошёл до конца и ничего в работе не изменил

На работе.

В отчёте по релизу: конверсия +12% за выбранные девять дней. За кадром, что окно начинается сразу после провального понедельника, что на него пришлась рассылка скидок, что retention и возвраты не показаны, а из двадцати метрик приведены две. То же в бенчмарках: своя система на своём профиле нагрузки, чужая — на дефолтном конфиге и без прогрева (холодный старт так сказать).

Что отвечать.

Какие данные того же качества мы не показали? Метрика и окно были выбраны до того, как мы увидели результат?

Из доступных данных показывают только подтверждающую часть, умалчивая о равнозначной опровергающей. Такое бывает, когда статистику подбивает тот, кто заинтересован в тезисе, типа тот, кому выгодно что-то может для Вас достать и только релевантную тезису статистику, чтобы убедить в своей правоте.

50 / 67 · Причины и данные

Ретроспективный детерминизм

retrospective determinism · «это было неизбежно» · нарратив неизбежности

Иллюстрация из авторской статьи: Ретроспективный детерминизм
Открыть иллюстрацию ↗

Раз событие произошло, считают, что оно не могло не произойти.

Утверждение.

Двое случайно разговорились в очереди, а через год поженились

Им было суждено встретиться, всё к этому и шло

Почему это ошибка.

Неизбежность приписана после факта: тысячи очередей, где ничего не случилось, в рассказ не попадают. Событие произошло, но из этого не следует, что его вероятность была высокой

На работе.

После инцидента разбор звучит как "эта архитектура рано или поздно обязана была упасть". Возможно, но той же логикой одинаково гладко объясняются и три предыдущих года, когда она не падала. Вред двойной: команда переписывает то, что не было главным вкладом, и одновременно теряет способность отличать реально высокий риск от объяснения задним числом. Противоядие это записывать прогнозы с вероятностями заранее: decision log при выборе решения, premortem перед запуском ("представьте, что через полгода это упало, назовите причины"), а после инцидента сверять записи. Тогда видно, было ли падение предсказано или неизбежность дорисована

Что отвечать.

У нас есть запись, что до события мы считали такой исход вероятным? Какие варианты развития событий были возможны тогда и что именно их закрыло?

Из того, что событие произошло, заключают, что оно и не могло не произойти.

52 / 67 · Причины и данные

Ошибка единственной причины

causal oversimplification · single cause fallacy · поиск виноватого

Иллюстрация из авторской статьи: Ошибка единственной причины
Открыть иллюстрацию ↗

У результата нескольких причин называют одну и считают объяснение законченным.

Утверждение.

Ужин подгорел, гости разошлись рано, вечер не удался

Всё из‑за духовки, она перегревает.

Почему это ошибка.

Одновременно сошлись: новый рецепт, таймер не заведён, гостей позвали на будний вечер. Духовка могла быть частью объяснения, но одна она этого исхода не даёт, а назвав её, хозяева остальное проверять не стали

На работе.

"Причина инцидента тяжёлый SQL‑запрос". Рядом обычно лежат ещё четыре условия: индекс не доехал с миграцией, ретраи без backoff, пул соединений равен 20 и алерт триггерит с порогом выше реального SLO. Инцидент случился потому, что совпали все пять, а вот убрав одно, вы снижаете вероятность, но не закрываете целый спектр отказов.

Что отвечать.

Если бы этого фактора не было, то исход точно не наступил бы? Какие ещё условия должны были совпасть, чтобы получилось именно так?

У результата с несколькими взаимодействующими причинами называют одну и считают объяснение законченным.

11 / 67 · Язык и авторитет

Апелляция к авторитету

argumentum ad verecundiam · appeal to authority · ложный авторитет

Иллюстрация из авторской статьи: Апелляция к авторитету
Открыть иллюстрацию ↗

Вместо основания предъявляют имя того, кто высказался.

Утверждение.

Пятно на потолке в ванной скорее всего от протечки сверху

Мой стоматолог сказал, что такие пятна всегда от конденсата

Почему это ошибка.

Стоматолог компетентен в зубах, а вот о влаге в перекрытии его слово обычное частное мнение, и оно вытеснило самый простой шаг: подняться к соседям и посмотреть. Скажи то же самое кровельщик, чинивший сотню таких потолков, тогда это было бы свидетельством чтобы поводом проверить его версию первой, но всё равно не заменой чёткому осмотру.

На работе.

"Так сказал главный архитектор" решит вопрос о времени ответа сервиса, который решается замером за двадцать минут. Отдельная разновидность это анонимный авторитет: "это best practice", "в большой компании такое уже проходили", причём без имени, масштаба, версии и условий, где именно это проверялось. Там, где доступна метрика, ссылка на человека всегда более слабое основание, чем цифра.

Что отвечать.

Это его область, и на какие данные он опирался? Если первичное измерение доступно, то давайте сделаем его, а не пересказываем мнение

Вместо основания предъявляют имя того, кто высказался. Для тех, кто смотрит всяких непрофильных блогеров или тех, кто транслирует, например, научпоп, просто посмотрите интереса ради, есть ли у такого человека степень, например, кандидатская. Часто натыкаясь на блогеров о физике, математике, нейробиологии или информатике ищу информацию о их образовании или заслугах, иначе люди возводят на пьедестал просто любителей, это не хорошо, эксперты ещё норм когда у них профиль и база кейсов позволяет судить о чём-то, но вот просто какой-нибудь популяризатор науки может сделать ей ещё хуже, просто потому что его начали инвайтить повсюду. Обращайте внимание на критерий экспертности.

12 / 67 · Язык и авторитет

Апелляция к природе

appeal to nature · argumentum ad naturam · натуралистическая апелляция

Иллюстрация из авторской статьи: Апелляция к природе
Открыть иллюстрацию ↗

Раз вещь назвали «естественной», считают, что она хорошая.

Утверждение.

В тесто для пирога нужен разрыхлитель

Не надо химии, лучше на закваске, это натурально.

Почему это ошибка.

"Натурально" подставлено вместо ответа на вопрос, который на самом деле решают: вкус, время и предсказуемость подъёма теста. Сода и закваска различаются химией процесса и сроками процесса, а не степенью природности, и спорить надо об этом.

На работе.

"Ручной деплой честнее ведь там живой человек смотрит", "этот фреймворк заставляет писать неестественный код", "органический рост лучше платного"

Что отвечать.

Какое свойство мы на самом деле обсуждаем: безопасность, вкус, цену? Назовём его и сравним напрямую.

Из того, что вещь назвали "естественной" или "так задумано природой", выводят, что она хорошая.

22 / 67 · Язык и авторитет

Личное непонимание (аргумент от недоверия)

argument from incredulity · argumentum ad ignorantiam personalis · апелляция к личному недоверию

Иллюстрация из авторской статьи: Личное непонимание (аргумент от недоверия)
Открыть иллюстрацию ↗

«Я не могу это представить» подают как «этого не может быть».

Утверждение.

Соседский подросток сам собрал себе компьютер из деталей

Да ладно. Я в его возрасте мышку подключить не мог. Значит ему кто‑то помогал собрать.

Почему это ошибка.

Своя биография объявлена мерой того, что бывает. Проверяется это без домыслов одним вопросом: попросить показать, как он подбирал материнскую плату под процессор.

На работе.

"Не верю, что этот запрос отрабатывает за 8 мс, не бывает так" и дальше спор вместо использования профилировщика и выполнения. Тот же приём на ревью: "я не понимаю, как это работает, значит это неправильно"

Что отвечать.

Какой механизм это объясняет и каким измерением его проверить? Непонимание это повод задать вопрос, а не готовый вывод.

"Я не могу это представить" подают как "этого не может быть".

23 / 67 · Язык и авторитет

Ошибка двусмысленности

equivocation · эквивокация · подмена значения термина

Иллюстрация из авторской статьи: Ошибка двусмысленности
Открыть иллюстрацию ↗

Одно слово в двух посылках значит разное, а вывод пользуется обоими значениями сразу.

Утверждение.

В читальном зале нельзя разговаривать и кушать

Свобода это когда нет запретов. В библиотеке есть запреты. Значит, библиотека лишает людей свободы.

Почему это ошибка.

В первой фразе "свобода" это отсутствие любых ограничений, во второй речь идёт о свободе читать и слышать себя. Правила ограничивают первое ради второго, одно слово скрыло, что это разные вещи и без него вывод не строится.

На работе.

Слово "готово". На дейлике "код написан", а в обещании заказчику транслируют "работает у пользователей" статус в трекере ставят по первому значению, срок называют по второму. То же с "стабильным" (не падает / не меняет контракт), "покрытием" (код покрыт / поведение проверено), "средним временем ответа" (среднее / медиана / p99) и "безопасно" (не найдено известных уязвимостей / проверено)

Что отвечать.

В каком значении здесь это слово? Запишем оба и посмотрим, остаётся ли вывод верным при каждом Ну или просто Давай обсудим значение терминов, что ты вкладываешь в термин Х? Кстати у Челпанова в "Учебник логики" примерно с определения понятий и терминов всё и начинается

Одно и то же слово в двух посылках значит разное, а вывод пользуется обоими значениями сразу.

27 / 67 · Язык и авторитет

Аргумент к традиции

appeal to tradition · argumentum ad antiquitatem · апелляция к старине

Иллюстрация из авторской статьи: Аргумент к традиции
Открыть иллюстрацию ↗

«Так делали всегда» стоит вместо объяснения, почему так и надо делать.

Утверждение.

Может, в этом году соберёмся на праздник у нас, а не будем ехать через полстраны?

Мы тридцать лет ездим к бабушке. Это традиция.

Почему это ошибка.

Тридцать лет это свидетельство, что всем это было удобно, и намёк на реальную ценность за традицией. Но как довод срок подан вместо неё: условия изменились, детей стало двое, дорога занимает сутки. Содержательный ответ звучал бы "бабушке важно, чтобы приехали все" и вот его можно обсуждать.

На работе.

"Мы всегда так деплоили", "этот скрипт не трогаем, он с 2016 года работает". Второе не пустой довод: скрипт прошёл сотни релизов, и это данные о надёжности. Пустым он становится, когда мешает спросить, что скрипт делает и почему падает раз в квартал. Симметричная ловушка  выкинуть непонятный шаг из пайплайна, не выяснив, какой инцидент его когда‑то породил.

Что отвечать.

Что именно этот скрипт предотвращает? Если ответ есть запишем его и проверим, актуален ли он сегодня, если нет, то дропаем или актуализируем.

"Так делали всегда" подставлено вместо основания, почему так и надо делать.

31 / 67 · Язык и авторитет

Подмена понятий

moving the goalposts · передвижение ворот · подмена критерия

Иллюстрация из авторской статьи: Подмена понятий
Открыть иллюстрацию ↗

Условие назвали и выполнили — и тогда предмет спора тихо заменяют другим.

Утверждение.

Я поменяю тебе колесо за десять минут

- Поменял, вот - Колесо‑то поменял, но балансировку (вроде так называется)не сделал, так что чинить машину ты не умеешь

Почему это ошибка.

Обещание было про колесо и десять минут, проверка появилась внезапно и уточняет про "умеет чинить вообще". Второй тезис сам по себе законный, но он новый, и задавать его надо было до, а не после выполнения первого.

На работе.

"Покажи бенчмарк" → показали → "но это не прод" → показали canary → "нужен год наблюдений". Вторая форма это подмена метрики: договаривались о p99, в отчёте среднее, и обсуждение уходит на "в среднем‑то лучше". Лечится decision rule, записанным до эксперимента: какое число, на каких данных и за какой период считаем достаточным.

Что отвечать.

Мы договаривались о другом критерии. Если он больше не годится скажи, что изменилось, и зафиксируем новый до следующей проверки.

Условие назвали, условие выполнили и тогда обсуждаемое понятие тихо заменяют другим.

Механика та же, что у эквивокации (предыдущая логическая ошибка, прикольное слово), но подменяется не значение слова внутри вывода, а предмет спора целиком: договаривались о "успеет к пятнице", а потом проверяют "а качество?".

Само новое требование может быть разумным, просто ошибка в том, что прежнее объявлялось достаточным и было отозвано задним числом, без объяснения, что изменилось. Признак, отличающий подмену от честного уточнения: не существует результата, который спорящий согласился бы засчитать.

35 / 67 · Язык и авторитет

Ошибка определения

definist fallacy · persuasive definition · убеждающее определение

Иллюстрация из авторской статьи: Ошибка определения
Открыть иллюстрацию ↗

В определение заранее вложена оценка, и спор выигран до того, как посмотрели на предмет.

Утверждение.

Ремонт в квартире вместо месяца занял три

Хороший мастер это тот, кто укладывается в срок. Значит, он не мастер, и обсуждать нечего

Почему это ошибка.

Определение построено так, что вопрос о причинах задержки , например задержка поставки, скрытая проводка, три раза менявшееся задание не может даже возникнуть. Нейтральное описание "работа заняла 90 дней при плане 30" оставляет место для проверки.

На работе.

"Senior это тот, кто не задаёт вопросов", "хорошая архитектура та, где нет связности", "баг это то, что заведено в трекере, остальное не баг". Последнее особенно живуче: такое определение делает цель "ноль багов" по ZBP достижимой без единой правки в коде, ведь достаточно не заводить тикет.

Что отвечать.

Это определение или уже вывод? Дай описание, из которого оценка не следует автоматически, и обсудим оценку отдельно. А вообще просто ловите этих говорунов прямо на логической ошибке, пусть думают, если они просто не понимали и теперь понимают и вместе разбираются - круто, если нет, то бегите голубцы (типа глупцы, отсылка к LoTR).

В определение заранее вложена оценка, и спор выигран до того, как посмотрели на предмет.

Это самая отвратительная что встречается в карьере, когда ваши руководители могут подавать информацию как им угодно, просто взять и убрать всё, что произошло и что повлияло и какой системный выход из ситуации. Да, иногда это справедливо, но в большинстве случаев эксплуатируется и весьма нагло, в том числе и у заказчиков. Отвратно, когда это юзается против вас, чтобы не дать премию например или просто чтобы скрыть ваш вклад. Мне довелось работать в таких компаниях, у руководителей таких надо отбирать право руководить, потому что у них и звезда во лбу и текучка большая, причём такие рукоблудители думают, что дело в людях, а бревно они вообще не видят.

37 / 67 · Язык и авторитет

Этимологическая ошибка

etymological fallacy · appeal to etymology · апелляция к происхождению слова

Иллюстрация из авторской статьи: Этимологическая ошибка
Открыть иллюстрацию ↗

Из происхождения слова выводят, каким должен быть предмет, который им назван.

Утверждение.

Давай устроим романтический ужин со свечами

"Романтический"  вообще‑то от римского переводится как "от романских языков". При чём тут свечи?

Почему это ошибка.

Слово прошло путь от "написанного на народном языке" до "о любви и чувстве", а вот сегодняшнее значение задано употреблением, а не римским корнем. Спор о корне не отменяет того, что оба собеседника прекрасно поняли, о каком ужине речь.

На работе.

"Микросервис должен быть микро, у вас он на четыре тысячи строк, это не микросервис": приставка стала критерием. Так же спорят про serverless ("там же есть серверы!"), continuous integration и agile вместо обсуждения практики обсуждают верность названия практике.

Что отвечать.

Как этот термин употребляется у нас сегодня? Зафиксируем это значение, потому что история слова к спору не относится. В DDD кстати есть ubiquitous language чтобы вести словарь терминов.

Из происхождения слова выводят, каким обязан быть названный им предмет.

49 / 67 · Язык и авторитет

Ошибка овеществления

reification · hypostatization · гипостазирование · конкретизация абстракции

Иллюстрация из авторской статьи: Ошибка овеществления
Открыть иллюстрацию ↗

С абстракцией обращаются как с вещью, у которой есть воля и свои требования.

Утверждение.

Хочу поставить в прихожей шкаф глубиной шестьдесят сантиметров

Дизайн квартиры этого не допускает

Почему это ошибка.

Не допускает не "дизайн", а ширина прохода, открывающаяся дверь или чей‑то замысел. Пока не сказано, что именно мешает, возразить нечему: абстракция вынесена как приговор. Если мешает вкус, то это тоже довод, но обсуждаемый.

На работе.

"Архитектура требует отдельного сервиса", но на самом деле требует человек, принявший решение, или ограничение, которое можно назвать вслух. И метрика, ставшая целью: velocity придумана как описание темпа, но как только по ней оценивают команду, растут оценки задач, а не сам релиз. То же с "покрытием 80%" и "временем первого ответа на тикет" это всё когда измеряемая тень объекта подменяет собой объект.

Что отвечать.

Кто именно требует и на каком основании? Для метрики - что произойдёт с самим объектом, если число вырастет, а поведение не изменится?

С абстракцией обращаются как с вещью, у которой есть воля, место и собственные требования.

60 / 67 · Язык и авторитет

Апелляция к последствиям

appeal to consequences · argumentum ad consequentiam · аргумент к следствиям

Иллюстрация из авторской статьи: Апелляция к последствиям
Открыть иллюстрацию ↗

Неприятные последствия выдают за ложность утверждения, приятные — за истинность.

Утверждение.

Кажется, за ванной подтекает труба, у соседей снизу пятно на потолке.

Не может быть. Иначе придётся вскрывать плитку, а мы её месяц ложили (триггерит слово, да? буга-га).

Почему это ошибка.

Стоимость ремонта не сообщает ничего о состоянии трубы: она либо течёт, либо нет. Про плитку говорить уместно, когда решают, чинить сейчас или после отпуска, но не когда выясняют, есть ли протечка.

На работе.

"Если признать этот дефект блокирующим, релиз сдвинется значит он не блокирующий". Тяжесть определяется воздействием на пользователя, дата релиза отдельным решением, которое можно принять осознанно и с известным риском. Обратная форма: "эта схема даст нам десятикратный запас, поэтому она правильная" желаемый результат подставлен вместо оценки цены и рисков.

Что отвечать.

Мы сейчас спорим о том, как есть, или о том, что делать? Сначала зафиксируем факт, потом решим, что с ним делать.

Неприятность последствий выдают за ложность утверждения, приятность за истинность. Ну или совсем по-простому, выдавать желаемое за действительеное, так сказать)

61 / 67 · Язык и авторитет

Апелляция к новизне

appeal to novelty · argumentum ad novitatem · аргумент к новому

Иллюстрация из авторской статьи: Апелляция к новизне
Открыть иллюстрацию ↗

«Это новее» стоит вместо «это лучше».

Утверждение.

Нужен чайник взамен сгоревшего.

Бери с сенсорной панелью, это же последняя модель.

Почему это ошибка.

Год выпуска не говорит ни о скорости нагрева, ни о том, сколько живёт сенсор во влажной кухне (и ваших фантазиях). Содержательным довод стал бы так: в новых моделях сменили нагреватель, накипь оседает меньше и это уже можно проверить.

На работе.

"Переходим на новый CI/CD, старая на Jenkins у нас с 2015 года (или когда там он вышел?)". Возраст сам по себе не дефект: у старого инструмента известны обходные пути, найдены баги и предсказуема поддержка. Сравнивают по названным пунктам - время сборки, воспроизводимость, стоимость миграции и отдельно закладывают, что у нового решения баги ещё просто не нашли.

Что отвечать.

Что конкретно изменилось в новой версии и какую нашу проблему это решает?

"Это новее" подставлено вместо "это лучше".

63 / 67 · Язык и авторитет

Хронологический снобизм

chronological snobbery · presentism · снобизм современности

Иллюстрация из авторской статьи: Хронологический снобизм
Открыть иллюстрацию ↗

Утверждение отвергают за то, что оно старое, будто новая эпоха уже опровергла всё прежнее.

Утверждение.

По бабушкиному рецепту тесто должно постоять час в тепле

Это прошлый век, сейчас всё делают комбайном (штука которой месят тесто, не помню как называется)за пять минут

Почему это ошибка.

Час нужен дрожжам, а не традиции, комбайн ускоряет замес, а не брожение. Утверждение можно опровергнуть свойствами дрожжей и температурой, но не возрастом рецепта.

На работе.

"Реляционная база это устаревший подход", "серверные сессии? так делали до SPA". Возраст решения не довод, довод это какое ограничение исчезло: подешевела память, появилась репликация, изменился профиль нагрузки. Обратная сторона: старые тексты про надёжность и сложность систем не устарели, потому что описывают свойства, не зависящие от моды на инструменты.

Что отвечать.

Что мы узнали с тех пор, что делает это неверным? Если ответа нет, то возраст к делу не относится.

Утверждение отвергают за то, что оно старое, будто более поздняя эпоха уже опровергла всё, что было раньше.

Бонус: всё в одном сообщении

67 ошибок в одном рабочем сообщении

Допустим что разработчик предложил добавить синхронизацию доступа к кешу и регрессионный тест в комментах к чужому PR, а в ответ автор PR-а прислал следующую портянищу текста, пусть автором PR вообще будет какой-нибудь руководитель-рукоблудитель:

Ты вечно невнимательный, поэтому твоё замечание о тред рейсинге неверно [1]. Сам вчера тесты не написал [4], теперь предлагаешь каждую переменную обложить согласованиями и вообще перестать релизить [9], как я понимаю идею ты взял из какого-то блога студента, значит, она несостоятельна [24]. На самом деле тебе просто страшно брать ответственность [48], ты заинтересован раздуть задачу, чтобы выглядеть занятым и имитировать бурную деятельность, поэтому твои расчёты неправильные [55]. И вообще, пока так раздражённо и агрессивно пишешь, проблему обсуждать не буду [56], такой подход использовала компания, которая потом обанкротилась, ежу понятно, что он плохой [57]. Сначала запусти столько сервисов, сколько я, потом возражай [58], и вообще прочитай весь репозиторий и все треды за пять лет, иначе твои замечания можно не рассматривать [59], а ещё твоё предложение, конечно, ошибочно, но куда интереснее, какая детская травма заставляет тебя любить дедлок [62]? Кстати, почему никто не обсуждает, сколько у нас красивых новых экранов? [3] Когда ты перестанешь саботировать релизы своими проверками? [7] И ты забыл, что я над этим модулем все выходные сидел, у тебя вообще сердце есть? [18] Ты написал "можно выкатывать после провдения нагрузочного теста", вот твои слова "можно выкатывать", разрешение получено [38]. А когда ты говоришь, что не согласен с одним методом, то это значит, отвергаешь всю нашу архитектуру [41]. Хороший коллега поддерживает команду, следовательно, командное решение технически правильное [44]. И ты забыл главное правило? Работает не трогай! [51]. А твой юз кейс что ты приводишь в комментах просто чушь [53]. В соседнем сервисе тоже нет синхронизации, поэтому и нам можно [65]. По поводу тестов, для всех тесты обязательны, но моему модулю исключение положено: он особенный [6]. Решение надёжное, потому что оно правильное, а правильное потому что надёжное (я даже Гендальфа вспомнил) [10]. У корректного кода тесты зелёные, здесь зелёные, следовательно, код корректен [15]. Докажи, что при любой нагрузке возможен сбой, иначе считаем безопасность доказанной [17]. Причина ошибки о которой ты говоришь это конфигурация или код, конфигурация неправильная, а значит, код точно чистый [26]. Никто не доказал наличие уязвимости, следовательно, её нет [29]. Если есть гонка потоков, то возможен сбой, гонки здесь нет, поэтому никакие сбои невозможны [33]. Модуль готов. Готов. Я сказал: готов, сколько раз ешё повторить? [46] Ты утверждаешь, что кеш возвращает устаревшие данные, но приложение быстро запускается, значит твоё замечание опровергнуто [54]. А что по поводу всего этого, так это моё мнение, я имею на него право, поэтому обосновывать не обязан [64]. Все нагрузочные тесты завершились успешно, прогонов пока было ноль, значит, готовность подтверждена [66]. А ещё в твоём объяснении я нашёл логическую ошибку следовательно, гонки потоков точно не существует [67]. Ещё стоит заметить, что два запроса прошли при любой нагрузке, значит всё будет хорошо, твои изменения нужны [2]. Почему? Ну вот смотри сегодня добавим один тест, завтра тысячу, потом релизы остановятся и бизнес закроется [5]. Либо мержим сейчас, либо ты против продукта [8]. Ведь каждая функция итак быстрая, поэтому весь сервис гарантированно быстрый [13]. Смотри, система надёжная, значит, любая её функция надёжна [14]. Ещё я видел там что-то про баг, а вот настоящий разработчик таких багов не допускает; допустил значит, ты разработчиком не считаешься [19]. Ты предлагаешь ноль потерянных записей в своём предожении, я допускаю сто, а пятьдесят будет объективно правильным ответом [25]. Точную границу между небольшой и большой нагрузкой провести трудно, поэтому между ними вообще нет разницы [30]. В кафе один кассир обслуживает очередь лока потока вот и сервер должен работать так же [32]. Ещё твой пробел в отступах и моя потеря пользовательских данных по сути одинаковые баги, обсуждать серьёзность бессмысленно [39]. И ты забываешь, что тесты всё равно не находят абсолютно все ошибки, поэтому добавлять их незачем [45]. Я посмотрел, у меня на ноутбуке всё работает, а значит, работает везде [16]. Я сначала посмотрел результаты ста прогонов, затем придумал правило "надёжны сервисы с названием на S": именно удачные прогоны под него подошли, значит, закономерность открыта [20]. Чем больше у нас микросервисов, тем выше выручка, следовательно, выручку создаёт само дробление [21]. Мы уже потратили на текущий кеш месяц, поэтому обязаны его оставить [28]. После установки предыдущего плагина тесты ускорились, а значит, ускорил именно плагин [34]. Ещё ты забываешь, что у нашей команды лучшая средняя производительность, следовательно, каждый написанный тобой обработчик быстрее чужих [36]. Сегодня по полным логам причина очевидна, а значит, вчера до аварии ты тоже обязан был её знать [40]. Новая поставка фич на 40% быстрее относительно чего и по какой метрике не столь неважно [42]. Пять выкладок прошли успешно, шестая теперь обязана упасть, случайность должна выровняться [43]. Из ста замеров приложу только три удачных, они и доказывают стабильность [47]. Прошлый релиз упал теперь ясно, что иначе он закончиться не мог [50]. Я смотрю во всём виноват один медленный запрос; лимиты, ретраи и настройки пула исследовать не требуется [52]. Вчера на созвоне архитектор сказал, что решение верное, следовательно, оно верное, а ты переделывать собрался [11]. Ручное управление кешем естественнее автоматического, поэтому безопаснее, чем твой вариант [12]. Я не понимаю, как твой вариант может работать, следовательно, он работать не может [22]. Код "готов" в смысле написан значит, "готов" и в смысле проверен на пользователях [23]. Мы всегда так делали, поэтому так делать правильно, твоё предложение неправильное [27]. Кстати, ты забываешься, я обещал принять решение после того как получу бенчмарк, бенчмарк прошёл, но теперь требую год эксплуатации, а потом придумаю ещё условие [31]. Надёжным кодом по определению называется код, который одобрил я, мой код одобрен мной, вопрос закрыт [35]. Микросервис обязан занимать мало строк: в названии же "микро" [37]. Архитектура сама требует эту реализацию, спрашивать, кто и зачем её выбрал, бессмысленно [49]. Если баг настоящий, придётся переносить релиз, поэтому баг ненастоящий [60]. Библиотека вышла вчера, следовательно, она лучше проверенной [61]. А твои рассуждения о транзакциях из прошлого века, поэтому неверны [63]. Мержи давай!

Тимлид показал риски запуска и попросил время на устранение проблем. Его руководитель-рукоблудитель ответил:

Ты просто слабый руководитель, поэтому твоя оценка срока неправильная [1]. Сам в прошлом квартале торопил соседнюю команду [4]. Теперь хочешь бесконечный бюджет и полгода ничего не выпускать [9]. Твой план пришёл от консультантов, а всё консультантское бессмысленно [24]. На самом деле ты боишься потерять авторитет перед командой [48]. Ты просишь людей, потому что заинтересован увеличить своё подразделение, значит, расчёт загрузки ложный [55]. С таким недовольным тоном обсуждать сроки не будем [56]. Этой методикой пользовался наш провалившийся конкурент, поэтому методика плохая [57]. Построишь компанию моего размера получишь право оценивать решения [58]. Пока не изучишь все управленческие книги из моего списка, твои возражения не заслуживают ответа [59]. Твой план ошибочен осталось объяснить, какие комплексы заставили тебя его предложить [62]. Лучше поговорим о том, сколько наград получила компания [3]. Почему ты опять прикрываешь безделье команды разговорами о рисках? [7] Люди ждут премии, а ты хочешь лишить их праздника своим переносом [18]. Ты написал "срок достижим при сокращении объёма", я процитировал наверх "срок достижим", этого достаточно [38]. Возражаешь против дедлайна значит, не разделяешь стратегию компании [41]. Порядочный сотрудник верен компании, следовательно, верность доказывает правильность нашего плана [44]. Кто хочет ищет возможности [51]. А твоя оценка это ерунда [53]. Другие отделы тоже скрывают переработки, значит, и нам допустимо [65]. Все обязаны подтверждать сроки расчётами, но мой срок особенный, ему подтверждение не нужно [6]. План реалистичный, потому что его можно выполнить, выполнить его можно, потому что он реалистичный [10]. У сильной команды задачи закрываются, сам гляди задачи закрываются, следовательно, команда выдержит любую нагрузку [15]. Докажи, что никто никаким способом не успеет к пятнице, иначе пятница обоснована [17]. Провал бывает из‑за ресурсов или управления, ресурсов мало, следовательно, управленческих ошибок нет [26]. Невозможность запуска никто окончательно не доказал, значит, запуск точно возможен [29]. Если команда перегружена, сроки могут сорваться, команда не перегружена, следовательно, срыв невозможен [33]. Срок реалистичный. Реалистичный. Запиши: реалистичный [46]. Ты говоришь, что дежурные не успевают реагировать, но клиенты любят наш дизайн твоё замечание неверно [54]. Я имею право на собственное управленческое мнение, этого достаточно для его правильности [64]. Все аварийные переключения у нас успешны, переключений ещё не было, следовательно, готовность доказана [66]. В твоей презентации есть ошибочный вывод, значит, нехватки ресурсов не существует [67]. Обрати внимание, два сотрудника справились с авралом, вся команда может работать так постоянно [2]. Сегодня перенесём релиз, завтра клиенты перестанут верить, затем инвесторы уйдут и компания исчезнет [5]. Либо запускаемся в пятницу, либо признаём команду ненужной [8]. Каждый сотрудник укладывается в свои задачи, значит, весь проект гарантированно уложится независимо от зависимостей [13]. Отдел успешный, следовательно, каждый сотрудник в нём успешен [14]. Настоящие тимлиды сроки не срывают, сорвал значит, что ты ненастоящий тимлид [19]. Ты оцениваешь работу в восемь недель, я в две: пять недель и есть доказанный срок [25]. Точную границу между рабочей нагрузкой и перегрузкой определить трудно, поэтому перегрузки вообще нет [30]. Спортсмены тренируются через усталость, следовательно, инженерам тоже полезно постоянно работать сверхурочно [32]. Задержка внутреннего отчёта и суточная остановка оплаты одинаковые нарушения сроков [39]. Новый процесс не исключит все инциденты, поэтому вводить его бессмысленно [45]. Я однажды руководил проектом без планирования спринтов, и всё получилось: планирование никому не нужно [16]. Я просмотрел результаты отделов, потом выбрал совпавший признак успешных, им оказались короткие стендапы, теперь это доказанный рецепт успеха [20]. С ростом числа совещаний росла выручка, значит, выручку увеличивают совещания [21]. В инициативу вложили сорок миллионов, поэтому продолжать её выгодно независимо от будущих расходов [28]. После смены тимлида метрики выросли, следовательно, единственная причина роста это смена тимлида [34]. У отдела высокая средняя загрузка, значит, каждый его сотрудник перегружен одинаково [36]. Теперь мы знаем, что поставщик задержал интеграцию значит, ты обязан был знать это ещё при подписании плана [40]. Производительность стала выше на 30% что считали производительностью и с чем сравнивали, уточнять незачем [42]. Три квартала были неудачными, четвёртый обязан стать успешным: полоса должна закончиться [43]. Для подтверждения успеха программы покажем только команды, у которых показатели выросли [47]. Раз проект провалился, значит, провал с самого начала был неизбежен [50]. Причина всех проблем один тимлид, а бюджет, зависимости и решения руководства рассматривать не будем [52]. Этот подход рекомендовал известный предприниматель, следовательно, в наших условиях он обязательно верен [11]. Самоорганизация естественна, поэтому команда без явных правил всегда эффективнее [12]. Не могу представить, чтобы нормальным специалистам требовалось столько времени, значит, оценка завышена [22]. Команда «взяла задачу» в смысле согласилась исследовать значит, "взяла обязательство" выпустить её к пятнице [23]. У нас десять лет согласуют всё через меня, следовательно, это лучший порядок [27]. Ты выполнил условие по выручке, но теперь для признания результата потребую ещё удержание, затем найду следующий показатель [31]. Эффективная команда по определению та, которая выполняет мои планы; следовательно, невыполнение любого моего плана доказывает неэффективность [35]. "Менеджер" означает управляющий, поэтому любое решение он обязан принимать лично [37]. Бизнес требует эту дату; кто её выбрал и из каких ограничений, спрашивать нельзя [49]. Если твоя оценка правдива, придётся пересматривать обещания инвесторам, поэтому оценка ложная [60]. Метод управления новый, следовательно, лучше нашего [61]. А твои принципы ограничения нагрузки придуманы давно, поэтому больше не действуют [63]. Жду подтверждение срока до конца дня.

Проверить рассуждение

Вставьте рассуждение: словарь, посылки и вывод после слова «Следовательно». Компилятор flang проверит, следует ли вывод из посылок по форме. Если не следует — покажет пример против.

Первая проверка скачает компилятор flang 0.7.32 со страниц языка, около 10 МБ. Текст остаётся во вкладке.