Академический и инженерный разбор
Инженер редко получает одну чистую дедукцию. Он:
- наблюдает симптом;
- предлагает возможную причину;
- выводит проверяемые следствия;
- вмешивается;
- обновляет уверенность;
- выбирает действие с учётом риска.
Это сплав логики, статистики, причинного анализа и теории решений.
Правило главы
Не смешивайте четыре артефакта: наблюдение, объяснение, проверку и решение.
У каждого свой стандарт качества.
1. Дедукция
Дедукция переносит истинность от посылок к заключению:
Все события этого типа должны иметь idempotency key.
Событие E относится к этому типу.
Следовательно, E должно иметь idempotency key.
Если посылки истинны и форма валидна, заключение необходимо.
Дедукция не сообщает, истинна ли классификация E и хороша ли исходная policy.
2. Индукция
Индукция обобщает наблюдаемые случаи:
В сопоставимых релизах canary уменьшал число одновременно затронутых
пользователей.
Следовательно, canary обычно уменьшает blast radius.
Заключение расширяет информацию и поэтому может оказаться ложным.
Качество зависит от:
- репрезентативности;
- числа и разнообразия случаев;
- устойчивого механизма;
- отсутствия подавленных контрпримеров;
- точности измерения;
- области переноса.
3. Абдукция
Абдукция выбирает лучшее из доступных объяснений:
Наблюдение:
ошибки начались после изменения схемы;
только старые consumers падают;
rollback schema устраняет ошибку.
Гипотеза:
нарушена backward compatibility.
Это не утверждение следствия, если вывод формулируется как гипотеза и
конкурирует с альтернативами.
Критерии объяснения
- объяснительная сила;
- простота без ad hoc исключений;
- согласие с фоновым знанием;
- способность предсказывать новые наблюдения;
- механизм;
- проверяемость;
- превосходство над альтернативами.
4. Гипотетико-дедуктивный цикл
flowchart LR
O["Наблюдение"] --> H["Набор гипотез"]
H --> P["Различающие предсказания"]
P --> T["Тест / вмешательство"]
T --> E["Свидетельство"]
E --> U["Обновление уверенности"]
U --> D["Решение"]
U --> H
D --> M["Мониторинг последствий"]
M --> O
Шаги:
- Описать наблюдение без причины.
- Сгенерировать несколько гипотез.
- Для каждой вывести предсказания.
- Выбрать тест, где предсказания расходятся.
- Зафиксировать результат и качество измерения.
- Обновить относительную поддержку.
- Выбрать действие по риску.
5. Подтверждение и опровержение
Если гипотеза H предсказывает E:
не доказывает H: это было бы утверждением следствия.
Но E может повышать вероятность H, если:
- без H E маловероятно;
- альтернативы предсказывают E хуже;
- тест не был выбран post hoc;
- измерение надёжно.
Если:
modus tollens валиден, но в науке предсказание обычно зависит от вспомогательных
предпосылок:
Ложно может быть H, настройка эксперимента, измерение или одна из A. Поэтому
«один эксперимент опроверг теорию» требует проверки всей цепочки.
6. Методы Милля в традиционной логике
Челпанов излагает методы индуктивного исследования, идущие от Джона Стюарта
Милля. Они не заменяют современную causal inference, но дают хороший язык
проектирования различающих наблюдений.
6.1. Метод сходства
Если у случаев с результатом Y общий только фактор X, X — кандидат на причину.
Инциденты в разных регионах и версиях имеют общий feature flag.
Слабость: общий фактор мог быть не измерен.
6.2. Метод различия
Случаи одинаковы, кроме X; Y появляется только при X.
Canary и control отличаются включённым parser; ошибка только в canary.
Это интуиция контролируемого эксперимента.
6.3. Совместный метод сходства и различия
X присутствует во всех случаях Y и отсутствует в сопоставимых случаях без Y.
6.4. Сопутствующие изменения
При изменении X систематически меняется Y.
Чем больше concurrency, тем выше conflict rate.
Дозозависимость поддерживает механизм, но confounding остаётся возможным.
6.5. Метод остатков
Из общего эффекта вычитают уже объяснённые части; остаток связывают с оставшимся
фактором. Опасность: ошибки модели накапливаются в «остатке».
7. Эксперимент и наблюдение
Наблюдение фиксирует естественный ход событий. Эксперимент вмешивается
и сравнивает потенциальные исходы.
Для causal claim спрашивайте:
каково intervention?
какова единица назначения?
есть ли control?
как обеспечена сопоставимость?
есть ли interference между единицами?
как обработаны attrition и missing data?
Рандомизация в среднем балансирует известные и неизвестные confounders, но не
исправляет плохое измерение, noncompliance, interference и неверную целевую
популяцию.
8. Гипотеза у Челпанова и современная оговорка
Традиционная схема:
- наблюдается явление;
- строится предположение;
- из него выводятся следствия;
- следствия сопоставляются с фактами;
- гипотеза усиливается или отбрасывается.
Нельзя считать гипотезу доказанной только потому, что несколько следствий
совпали. Современная наука говорит о степени поддержки, конкурирующих моделях,
погрешности и границах применимости.
Теория — не «бывшая гипотеза, окончательно доказанная», а развитая система
объяснений, моделей и свидетельств, открытая уточнению.
9. Качество свидетельства
Прямота
Измеряем нужный объект или proxy?
число строк кода ≠ продуктивность
время в приложении ≠ ценность
количество алертов ≠ безопасность
Независимость
Десять статей, копирующих один пресс-релиз, — одно свидетельство.
Точность
Ошибка измерения, разметки, часов и агрегации.
Репрезентативность
Совпадает ли выборка с целевой популяцией?
Воспроизводимость
Другой человек может повторить процедуру по описанию?
Фальсифицируемость
Какой наблюдаемый результат был бы несовместим с тезисом?
Robustness
Сохраняется ли результат при разумных:
- спецификациях;
- окнах;
- критериях исключения;
- способах агрегации?
10. Иерархия свидетельств зависит от вопроса
Нельзя построить одну лестницу для всего:
- RCT силён для среднего causal effect вмешательства;
- production trace лучше показывает конкретный failure path;
- экспертное интервью необходимо для tacit knowledge;
- статический анализ доказывает свойства выбранной модели;
- case study раскрывает механизм и контекст;
- систематический обзор агрегирует поле, но наследует качество работ.
Выберите дизайн, соответствующий тезису.
11. Threats to validity
Construct validity
Измеряем ли понятие, которое называем?
Internal validity
Обоснован ли причинный вывод внутри исследования?
External validity
Переносится ли результат на другие команды, системы, время?
Statistical conclusion validity
Хватает ли мощности, корректна ли модель, показана ли неопределённость?
Пример:
AI ускорил разработчиков.
Нужно раскрыть:
- что такое AI;
- что такое скорость;
- какие разработчики и задачи;
- как назначали инструмент;
- что с качеством;
- какой горизонт;
- насколько велик и точен эффект.
12. От исследования к решению
Даже идеальное исследование не выбирает ценности автоматически.
Свидетельство:
вариант A снижает latency на 20 мс.
Решение требует:
ценность 20 мс
стоимость миграции
риск отказа
влияние на команду
обратимость
альтернативная стоимость
Фактическая и нормативная части должны быть видны.
13. SDD как аргумент
Хорошая software design document — не описание любимого решения, а проверяемая
цепочка:
Outcome
↓
Наблюдаемая проблема
↓
Ограничения и quality attributes
↓
Варианты
↓
Модель trade-off
↓
Решение
↓
Риски и проверки
↓
Evidence после внедрения
Логические дефекты SDD
- решение появляется до требований;
- один вариант сравнивается с карикатурой;
- trade-off описан только плюсами;
- «best practice» заменяет механизм;
- метрика успеха не связана с outcome;
- нет условия пересмотра;
- риск превращён в абстрактное «может сломаться».
14. ADR
Минимальная логика ADR:
Контекст:
какие факты и силы действуют?
Решение:
что именно принято?
Альтернативы:
какие реальные варианты отклонены?
Следствия:
что приобретаем и чем платим?
Статус:
когда решение пересмотреть?
ADR без альтернатив — журнал команды, но слабый аргумент.
15. Code review
Плохая реплика:
Так никто не пишет.
Сильная:
Наблюдение:
функция открывает транзакцию до сетевого вызова.
Механизм:
медленный вызов удерживает connection и row locks.
Риск:
при деградации dependency pool исчерпывается и блокирует независимые
запросы.
Предложение:
получить внешние данные до транзакции либо разделить phase и добавить
idempotency check.
Проверка:
fault-injection с задержкой dependency и метрики pool saturation.
Это воспроизводимый инженерный аргумент.
16. Расследование инцидента
Не начинайте с причины
Факт:
с 12:04 до 12:17 p99 вырос, error rate достиг X.
Не факт:
новая версия сломала базу.
Таблица гипотез
| Гипотеза |
Предсказывает |
Противоречит |
Следующий тест |
| новая версия |
только новые pods имеют симптом |
старые тоже падают |
сравнить cohort |
| база |
рост lock waits |
waits стабильны |
trace / pg_stat |
| dependency |
совпадение latency |
локальный path тоже медленный |
synthetic call |
Root cause не обязан быть один
Разделяйте:
- trigger;
- contributing factors;
- amplification;
- detection gap;
- recovery delay;
- organizational conditions.
«Человеческая ошибка» обычно останавливает объяснение до проектируемого
механизма.
17. Threat modeling
Аргумент угрозы:
Актив:
что защищаем?
Актор:
какие возможности и мотив?
Путь:
как достигается воздействие?
Предусловия:
что должно быть истинно?
Ущерб:
кому и какой?
Контроль:
какое ребро пути разрывает?
Остаточный риск:
что остаётся?
Страх без пути — слабый аргумент; отсутствие известных атак — не безопасность.
18. Требования и нормы
Закон / policy / договор
↓ интерпретация области
Факт о системе
↓ классификация
Обязанность
↓ дизайн контроля
Проверяемое acceptance criterion
Типовые ошибки:
- ссылка на название закона без нормы;
- смешение «можно», «нужно» и «рекомендуется»;
- перенос требования на объект вне области;
- контроль не связан с угрозой или правом;
- доказательство compliance подменяет безопасность.
19. Работа с LLM
LLM генерирует правдоподобную языковую форму, а не сертификат истинности.
Проверяйте:
- происхождение фактов;
- точность цитаты;
- существование источника;
- согласованность чисел;
- направление импликаций;
- скрытые посылки;
- контрпримеры;
- независимую верификацию инструментом.
Полезный prompt-контракт:
1. Отдели факты от предположений.
2. Для каждого вывода выпиши основания.
3. Дай минимум две альтернативные гипотезы.
4. Назови результат, который опровергнет основную.
5. Не придумывай источник; отмечай отсутствие данных.
20. Decision record с калибровкой
Перед решением сохраните:
decision: "..."
date: "..."
claim: "..."
evidence:
- "..."
assumptions:
- "..."
alternatives:
- "..."
predictions:
- metric: "..."
expected: "..."
horizon: "..."
confidence: 0.7
revisit_when:
- "..."
Через горизонт сравните прогноз и реальность. Так организация обучает не
только результат, но и качество собственного мышления.
21. Протокол инженерного аргумента
- Одним предложением сформулируйте outcome или тезис.
- Зафиксируйте наблюдаемые факты и provenance.
- Разделите факт, интерпретацию, прогноз и ценность.
- Восстановите скрытые гарантии перехода.
- Перечислите альтернативные модели.
- Проверьте форму контрпримером.
- Для эмпирики нарисуйте причинный граф.
- Выберите различающий тест.
- Покажите неопределённость и область переноса.
- Сравните реальные альтернативы.
- Примите решение по заранее заданной функции потерь.
- Запишите предсказание и условие пересмотра.
22. Чек-лист
- Наблюдение отделено от объяснения?
- Есть конкурирующие гипотезы?
- Тест различает их, а не только подтверждает любимую?
- Вспомогательные предпосылки проверки видны?
- Метод соответствует типу тезиса?
- Construct/internal/external/statistical validity рассмотрены?
- Отрицательный результат и missing data опубликованы?
- Фактический вывод не превращён в норму без ценностной посылки?
- SDD сравнивает реальные альтернативы?
- Риск имеет механизм, вероятность и ущерб?
- Decision rule и stop conditions заданы до результата?
- Прогноз сохранён для последующей калибровки?
23. Задания
- Постройте три гипотезы для роста error rate после релиза и тест, различающий
две лучшие.
- Разложите фразу «микросервисы ускорили delivery» по четырём threats to
validity.
- Перепишите комментарий «это не масштабируется» в полный инженерный
аргумент.
- Создайте ADR, где альтернатива «ничего не менять» описана честно.
- Для AI-помощника задайте outcome, primary metric, guardrails и условие
остановки.
- Проведите premortem решения и затем оцените вероятность каждого сценария,
чтобы не спутать генерацию с прогнозом.
Источники
- Георгий Челпанов.
«Учебник логики», главы XIX–XXIII.
- John Stuart Mill. A System of Logic.
- Karl Popper. The Logic of Scientific Discovery.
- Charles S. Peirce. Работы об абдукции и научном исследовании.
- Judea Pearl. Causality.
- Deborah Mayo. Statistical Inference as Severe Testing.
- David Deutsch. The Beginning of Infinity — объяснения и критика.
Что дальше
Последняя глава превращает курс в рабочую процедуру: карточка разбора, дерево
диагностики, набор кейсов и ответы. Этот же формат станет контрактом будущего
тренажёра.
Практикум по логике