Прогноз без пророчества: дисциплина в простом тексте
Почему я оставляю будущее астрологии и беру вместо этого опорные классы, премортемы и журналы калибровки. Дисциплинированная неопределённость в тексте.
Я огненный Овен под Марсом, и даже я не стану делать вид, что будущее можно прочесть с карты. Калиброванная неопределённость делает работу, которую обещает предсказание. Разница видна через полгода, когда то, что ты записал, ещё можно оценить. Деплой, собеседование, переезд, тяжёлый разговор с коллегой. Вопрос один и тот же.
Минимальный цикл прогноза
Пять шагов, превращающих вопрос в нечто, чему можно поставить оценку через полгода.
Иллюзия точечных оценок
Самая частая ошибка не в предвзятости. В ложной точности ответа.
Опытный инженер говорит: «Уверен на 70%, что выкатимся до конца Q2». Цифра звучит дисциплинированно. Истории оценок за ней нет. Тот же инженер говорил «70%» и в прошлом квартале, и в позапрошлом, и три раза из четырёх результат оказывался в разных корзинах. «70%» здесь это переодетое в проценты ощущение.
Та же ловушка работает далеко за пределами окна деплоя. Друг «почти уверен», что новый режим сна выдержит рабочую неделю. Знакомый «достаточно уверен», что виза успеет к дате. Основатель «на 70% уверен», что раунд закроется за шесть недель. Журнала прогнозов нет ни за одной цифрой.
Точечные вероятности без журнала это театр. Они носят костюм строгости (десятичная дробь, знак процента), а самой калибровки за ними нет.
Та же беда живёт ниже по AI-стеку. Retrieval возвращает score: 0.83, и команда обращается с ним как с истиной. Модель отдаёт confidence: 0.91, и поверх неё строят процесс утверждения. Ни одна из цифр не сверена с реальными исходами. Поверхностная форма привычки, которой ещё нет.
Лекарство не в том, чтобы перестать пользоваться числами. Пользоваться диапазонами вместо точек, пока журнал калибровки не оправдает точность. «20–35%» защитима. «27%» без журнала это костюм.
Сначала опорный класс, потом история
Вторая по частоте ошибка: начинать с внутреннего взгляда. История проекта, история отношений, история деплоя.
Опорный класс лечит. Изначальная рамка пришла от Канемана и Ловалло, а наиболее жёстко её внедрил Бент Флайвбьорг на больших инфраструктурных проектах: инсайдеры систематически переоценивали успех, а внешние базовые частоты рассказывали историю поспокойнее и поточнее.
Процедура короткая.
Назови два-четыре класса, к которым относится случай. Не метафорических. Наблюдаемых, со счётными исходами. «Запуски consumer-SaaS соло-основателем без платного привлечения». «Первый внешний наём через реферал в компании до 30 человек». «Друзья, замолчавшие на десять дней после напряжённого разговора». «Инди-романы, доведённые от плана до готового черновика за двенадцать месяцев».
Оцени априорные шансы целевого исхода по этим базовым частотам. Используй диапазоны.
Корректируй умеренно (не больше чем на 30–40 процентных пунктов) и только если доказательство по конкретному случаю одновременно сильное и различающее.
Если подходящего опорного класса нет, уверенность автоматически падает.
Дисциплина живёт в порядке. Сначала запиши априор, потом рассказывай историю. Стоит истории попасть в голову, и каждый класс начнёт казаться «другим в нашем случае», и внешний взгляд рационализируется в ничто. Я делал это с собой на переезде, на собеседовании, на вопросе «приедут ли родители весной». Записать априор до нарратива. Это единственное, что у меня сработало.
Премортем оказался самым дешёвым улучшением качества решений из всего, что я запускал. Технику связывают со статьёй Гэри Клейна в HBR за 2007 год. Дисциплина старше. Это намеренная инверсия обычной позы на старте проекта. Работает на переезде, на тяжёлом разговоре с коллегой, на вопросе «потянем ли мы новую аренду из подушки безопасности».
Процедура простым текстом:
1. Сцена: прошло шесть месяцев, проект провалился.2. Каждый участник пишет в одиночку самую сильную и конкретную причину провала.3. Зачитываем ответы вслух. Кластеризуем.4. Каждый кластер становится фальсификатором или смягчающим шагом в живом плане.
Складываются два эффекта. Первый. Вопрос «почему провалилось» рождает более честные гипотезы, чем «что может пойти не так», потому что в воображаемой ленте провал уже факт. Никто не спорит, может ли это случиться, спорят только о том, как именно. Второй. Причины, пережившие кластеризацию, превращаются в фальсификаторы: наблюдения, которые, если случатся, означают, что план сломан. Фальсификаторы превращают расплывчатый риск в опережающий индикатор, за которым реально можно следить.
Это стыкуется с тем, как я веду feature flags и постепенные роллауты в агентных системах. Условия выключения флага обычно пишут небрежно. Их нужно писать как фальсификаторы. «Если за две недельные когорты подряд уровень регрессий превысит 4%, роллаут провален и мы откатываемся». Это можно прогнозировать. «Будем приглядывать за регрессиями» нельзя. Та же форма работает за пределами кода. «Если на третий день курса антибиотика появится тошнота, я возвращаюсь к врачу». Это фальсификатор. «Посмотрю, как буду себя чувствовать» нет.
Воздержание считается
Третья частая ошибка: отвечать, когда честный ответ звучит так. «Пока не знаю, и вот что бы это решило».
В большинстве организаций и в большинстве личных разговоров воздержание считается режимом отказа. В дисциплинированном прогнозе это функция. Две причины.
Калибровка. Тот, кто воздерживается на действительно недоопределённых случаях, выдаёт лучшие Brier-метрики, чем тот, кто отвечает на всё пожатым «50%».
Качество решений. Вопрос «какое доказательство это решит?» переводит ситуацию из «что я думаю?» в «куда мне дальше посмотреть?». Это тот вопрос, который реально двигает проекты вперёд и тихо снимает большинство семейных споров о гипотетическом будущем.
Технический аналог, который полезно знать, называется conformal prediction. Доступное описание есть в tutorial Ангелопулоса и Бейтса 2021 года. На выходе не одна метка с уверенностью. Множество меток, гарантированно содержащее истину как минимум в (1 − α) случаев. Один элемент в множестве. Уверенный прогноз. Шесть. Модель честно признаётся: «без новых доказательств я их не различу». Размер множества и есть сигнал воздержания.
Conformal-инфраструктура не нужна. Принцип такой: размер ответа должен соответствовать размеру неопределённости. Короткий однострочный прогноз для уверенного случая. Двух-трёхветочный для среднеизвестного. Явное «воздерживаюсь, потому что X, Y, Z это решат» для недоопределённого. Эта идея соседствует с моим взглядом на безопасность продукта без театра. Отказ ответить иногда и есть самый сильный ответ системы.
Калибровка как привычка
Прогноз не закончен, пока не получил оценку.
Метрика, к которой я возвращаюсь, называется Brier score. Кратко описан на странице Wikipedia. Чем ниже, тем лучше. Ноль идеален. Удобное свойство: метрика раскладывается на калибровку и разрешение. Можно ошибаться потому, что вероятности не совпадают с наблюдаемыми частотами, или потому, что прогнозы не отделяют вероятное от маловероятного. Два разных лекарства.
Чтобы отслеживать калибровку, инфраструктура не нужна. Хватит markdown-таблицы из четырёх колонок:
| Дата | Вопрос | Прогноз | Исход | Заметка ||------------|-------------------------------------|-------------|---------|-----------------------|| 2026-03-01 | Кандидат X согласится до 03-15? | 35-50% | да | согласился 03-09 || 2026-03-04 | Деплой пройдёт чисто 03-08? | 60-75% | нет | пул соединений к БД || 2026-03-09 | Друг ответит в ближайшие 48 часов? | 40-55% | нет | ответил на пятый день || 2026-03-12 | Хозяин продлит на тех же условиях? | 55-70% | да | поднял на CPI |
Через два месяца записей проступают систематические перекосы. Переоценка темы, в которой «разбираешься». Недооценка темы, которой боишься. Точечные оценки, прячущие широкий разброс. Диапазоны, прячущие отсутствующий опорный класс. Те же перекосы, что вылезают на деплоях, вылезают на хозяевах квартир, на друзьях и на вопросе, окупится ли концерт группы по выручке с входа.
Журнал я держу живым файлом. Новая запись занимает меньше минуты. Дисциплина не в записи. Она в перечитывании, раз в месяц, в спокойное воскресенье, когда прошломесячные прогнозы лежат рядом с прошломесячными исходами.
Если это звучит занудно, альтернатива простая. Версия тебя, которая никогда не узнает, точны ли её прогнозы. Публичные суперпрогнозисты, описанные в Good Judgment Project, в среднем выше остальных по подвижному интеллекту и активной открытости ума. Сильнейший единичный предиктор попадания в топ 2%: привычка постоянно обновлять оценки, примерно втрое сильнее IQ. И они ведут счёт.
Сценарии в простом тексте
Сюжет с одной историей. Самый дорогой default в неформальном прогнозе. «Думаю, нас сольют». «Думаю, раунд закроется за шесть недель». «Думаю, забастовка кончится к пятнице». Одна история со скрытым мотивом подменяет работу по генерации конкурирующих гипотез.
Лекарство: таблица сценариев. Пишется один раз, с тремя-пятью ветками, которые осмысленно конкурируют:
Сценарий
Диапазон вероятности
Сильнейшее «за»
Сильнейшее «против»
Опережающий индикатор
Статус-кво продолжается
30–45%
послужной список бездействия
недавняя смена стимулов
нет решения в ближайшие 14 дней
Осторожное улучшение
25–35%
мелкие видимые жесты на прошлой неделе
история регрессий
один содержательный запрос отвечен
Эскалация или разрыв
10–20%
паттерн ультиматумов
спокойный недавний тон
одностороннее действие со стороны
Стратегическая дистанция
10–20%
ресурсы явно ограничены
зависимость от этой ветки
падает вовлечённость, не контакт
Внешний шок
5–10%
три конкурента шевелятся
сектор в остальном тих
третья сторона делает вопрос неактуальным
Та же форма ложится на календарь регулятора, поиск работы, медицинский режим или замолчавшую семейную переписку. Меняешь строки. Колонки остаются.
Два правила оправдывают таблицу.
Диапазоны вероятностей, а не одиночные числа, пока нет журнала, дающего точность. Сумма середин диапазонов должна быть в районе 100%. Точно 100 не выйдет (это диапазоны), но если колонка даёт в сумме 50%, неполной оказалась подборка сценариев, не арифметика.
Один фальсификатор на строку. Сценарий без фальсификатора это желание или страх, не сценарий. Колонка с опережающим индикатором делает работу. Она называет наблюдение, которое, если случится на следующей неделе, сместит вероятность ветки вверх или вниз.
Приятный побочный эффект простого текста. Таблицу можно вставить в тред, передать коллеге, скормить модели за вторым мнением, без шага экспорта. Та же текстовая дисциплина, которая делает spec-driven development переживающим переключения контекста, делает то же со сценарными таблицами.
Попробуй на чём-нибудь маленьком
Вся дисциплина рассыпается, если применять её только к редким крупным вопросам. Не накопишь данных для калибровки. Не разовьёшь мышцу. Не узнаешь, какие перекосы твои.
Начни с того, чему можно поставить оценку за две недели. Квартальный ревью, оффер, стыковочный рейс, субботний концерт, который должен окупиться по выручке с входа. Что угодно, чей исход наступит раньше, чем ты забудешь, что делал прогноз.
Если две из трёх через две недели окажутся сильно мимо, урок в зазоре, не в смущении. Перечитай исходные записи. Какой шаг ты пропустил? Начал с истории вместо опорного класса? Дал точечную оценку вместо диапазона? Забыл фальсификатор?
Будущее остаётся непредсказуемым. И это нормально. Задача не в пророчестве. Задача в том, чтобы построить более спокойный и чуть более честный интерфейс к хаотичному миру и оставить достаточно следов, чтобы будущая версия тебя могла поставить оценку нынешним прогнозам и чему-то научиться.