В классическом исследовании ошибки планирования студентов-психологов спросили, когда они сдадут свою дипломную работу. Их также спросили, когда они сдадут её, «если всё пойдёт настолько плохо, насколько вообще возможно». Примерно половина не уложилась даже в эту худшую дату.

Худший случай, который вы себе представляете, — не безопасная дата.

Коротко: ошибка планирования — это склонность недооценивать, сколько времени займут ваши собственные задачи, даже когда вы знаете, что похожие задачи раньше срывали сроки. Daniel Kahneman и Amos Tversky назвали её так в 1979 году. Она возникает из-за того, что прогноз строится от плана в голове, а не от того, сколько такие задачи занимали на самом деле, и из-за памяти, которая укорачивает прошлое. Корректировки, построенные на записанных фактических данных, имеют исследовательскую поддержку, и приведённый здесь рецепт их собирает: запишите десять задач, возьмите медианное отношение факта к оценке и умножьте на него следующую оценку «на глазок».

Что такое ошибка планирования?

Это оптимистическое искажение в прогнозах о собственной работе. Вы ожидаете, что следующая задача пойдёт быстрее, чем несколько предыдущих, — хотя знаете, что предыдущие сорвали сроки. Термин ввели Kahneman и Tversky в 1979 году, а Roger Buehler (2019), ведущий автор классического исследования 1994 года, определяет его как недооценку задачи «несмотря на знание того, что похожие задачи в прошлом обычно занимали у них гораздо больше времени».

Две детали уточняют определение ошибки планирования. Во-первых, речь о ваших собственных задачах: в Buehler, Griffin and Ross (1994) наблюдатели, предсказывавшие время завершения чужой задачи, переоценивали его. Во-вторых, это не курьёз мегапроектов. В обзоре Buehler она обнаруживается и в домашних делах, и в строительстве метро, у разных типов личности и в разных культурах.

Пример ошибки планирования: что показало классическое исследование

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

Buehler, Griffin and Ross (1994) обзвонили 37 студентов последнего семестра курса по подготовке дипломной работы. Среди 33, кто сдал работу, пока исследователи ещё вели записи, средняя лучшая оценка составила 33.9 дня. Средний факт — 55.5. Их средняя оценка лучшего случая — 27.4 дня. Средний худший случай — 48.6, примерно на неделю раньше факта, хотя этот разрыв не был статистически значимым. Лишь 29.7% закончили к своей собственной лучшей оценке.

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

Оценки не были шумом. Прогнозируемое и фактическое время коррелировали с r = .77. Студенты, ожидавшие, что затратят больше, действительно затрачивали больше. Оценки несли реальную информацию — они были смещены, а не случайны, — и именно это делает возможным поправочный коэффициент.

Вспомнить прошлое было недостаточно. В Исследовании 4 123 студента прогнозировали, когда закончат компьютерное задание примерно на час. Предварительное воспоминание о прошлых заданиях не дало значимой разницы: 38.1% закончили к своему прогнозу против 29.3% в контрольной группе.

Студенты, которых провели через связывание этих воспоминаний с новой задачей — когда бы она завершилась, если бы пошла как ваши обычные задания? — достигли 60.0%, и их средний прогноз (7.0 дня) совпал со средним фактом (7.0). Авторы всё равно называют эти прогнозы «не более точными» в абсолютном выражении. Среднее сдвинулось. Разброс — нет.

Kahneman рассказывает версию из собственной карьеры в Kahneman and Lovallo (1993). Его команда писала учебную программу по принятию решений для израильских старших школ. На листках бумаги участники оценили срок до готового черновика в 18–30 месяцев. Затем он спросил эксперта команды по учебным программам, как складывалась судьба сопоставимых команд: около 40% так и не закончили, а среди остальных никто не уложился менее чем в семь лет. Команда закончила примерно через восемь лет.

Закон Hofstadter: ошибка планирования, рекурсивно

Закон Hofstadter происходит из книги Douglas Hofstadter «Гёдель, Эшер, Бах» (1979), из главы о рекурсивных структурах и процессах: «Это всегда занимает больше времени, чем вы ожидаете, даже если вы принимаете во внимание закон Hofstadter». Поводом послужили компьютерные шахматы. Люди прочили, что компьютер станет чемпионом мира через десять лет, а десять лет спустя это всё ещё выглядело более чем в десяти годах.

Это звучит как шутка о рекурсии, и данные по дипломным работам ей соответствуют: студенты, которым велели представить, что всё пойдёт не так, всё равно пропускали эту дату примерно в половине случаев. Запас «на глазок» — слабый выход, потому что запас исходит из того же внутреннего взгляда, который породил оценку. Закон Hofstadter не перехитрить. Но можно перестать угадывать поправку и вместо этого измерить её.

Почему это происходит

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

Вы планируете изнутри. Kahneman and Lovallo (1993) разделяют два способа прогнозировать. Внутренний взгляд строит сценарий из плана перед вами. Внешний взгляд игнорирует детали и спрашивает, как оборачивались подобные случаи. По умолчанию люди выбирают первый: в исследовании Buehler с проговариванием вслух 74% того, что студенты говорили во время прогноза, касалось того, как задача будет разворачиваться, и лишь 7% — релевантного прошлого опыта.

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

Ваша память укорачивает прошлое. Roy, Christenfeld and McKenzie (2005) рассмотрели исследования длительности и предложили объяснение через память: «Люди, по-видимому, недооценивают длительность будущих событий, потому что недооценивают длительность прошлых событий». Если они правы, это неприятно, потому что даже добросовестный внешний взгляд, построенный по памяти, наследует искажение. Я видел это в собственном 30-дневном аудите времени: встречи, которые я помнил как 15-минутные, раз за разом оказывались 40-минутными.

Вы берётесь за проекты, которые выглядят лёгкими. Halkjelsvik and Jørgensen (2018) отмечают, что оптимистическая оценка повышает вероятность взяться за задачу, а узнать, насколько вы ошиблись, можно только по тем задачам, которые вы начали. Длительности ещё и скошены вправо: задача на 2 часа может растянуться на шесть часов сверх, но никогда — на шесть часов меньше. Перерасходы доминируют в том, что вы запоминаете.

Это не универсально. Короткие задачи часто идут в другую сторону. Обзор Roy обнаружил, что задачи короче примерно 5 минут чаще переоцениваются. Обзор Halkjelsvik and Jørgensen показал, что небольшие программистские задачи оцениваются без смещения или даже пессимистично, тогда как проекты от 100 рабочих часов демонстрировали медианный перерасход около 20%. Ошибка планирования живёт в работе, достаточно долгой, чтобы накопить прерывания.

Что снижает ошибку планирования

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

Метод Что вы делаете Доказательства Подвох
Прогноз по референтному классу Прогнозируйте от разброса похожих прошлых результатов Повышает точность на крупных строительных проектах; для личных «может давать схожие преимущества» (Buehler 2019) Нужны данные о сопоставимых задачах
Связать прошлое с настоящим Спросите себя, когда бы вы закончили, если бы задача пошла как ваши обычные Доля уложившихся в срок выросла с 29% до 60% (Buehler 1994, Исследование 4) Смещение снизилось; абсолютная ошибка — нет
Декомпозиция Перечислите подзадачи, затем дайте одну общую оценку Более длинные оценки, менее смещённые в экспериментах 3–4 (Kruger and Evans 2004); проекты, использовавшие чек-листы, занижали оценку в среднем на 10% против 38% без них (Halkjelsvik and Jørgensen 2018) Перечисление необычно коротких или поздних шагов может снизить оценку (Hadjichristidis et al. 2014)
Скорректировать память измеренными длительностями Прежде чем оценивать, посмотрите, сколько занимали похожие задачи Обратная связь повысила точность во всех трёх экспериментах (Roy, Mitten and Christenfeld 2008) Нужен журнал, которому вы доверяете

Buehler откровенен насчёт цены первого метода для отдельных людей: полная процедура «может быть полезнее строителям метро, чем продавцам сэндвичей в метро». Следующий раздел — версия для продавца сэндвичей.

Оценка против факта: личный прогноз по референтному классу за 10 задач

Flyvbjerg (2006) излагает прогноз по референтному классу в трёх шагах. Они сжимаются до одного человека и таблицы:

  1. Выберите класс. Задачи одного вида и примерно одного размера, скажем, задачи разработки, которые вы оценивали в 1–8 часов. Проверка по Flyvbjerg: «достаточно широкий, чтобы быть статистически осмысленным, но достаточно узкий, чтобы быть по-настоящему сопоставимым».
  2. Постройте распределение. Для каждой завершённой задачи разделите факт на оценку. Kahneman and Lovallo (1993) рекомендуют именно такое отношение факта к плану, потому что оно «позволяет осмысленно сравнивать разнородные проекты».
  3. Разместите новую задачу. Умножьте свою оценку «на глазок» на отношение при нужном вам уровне уверенности.

Вот арифметика на десяти демонстрационных задачах, встроенных в бесплатный инструмент «оценка против факта». Нажмите «or load 10 demo tasks», чтобы воспроизвести её. Это выдуманные задачи разработчика, а не чей-то реальный журнал.

Задача Оценка (ч) Факт (ч) Факт ÷ оценка
Рефакторинг middleware авторизации 4 11 2.75
Починка нестабильного теста в оформлении заказа 1 3.5 3.50
Поднятие минорной версии Postgres 2 1.5 0.75
Переписывание онбординг-документации 6 9 1.50
Миграция на Tailwind 4 8 18 2.25
Тёмная тема в админке 3 5 1.67
Локализация сообщений об ошибках 4 4.5 1.13
Расследование 500-й ошибки на проде 1 6 6.00
Дашборд метрик за Q3 5 7.5 1.50
Рефакторинг заметок со стендапов 1 0.5 0.50

Отсортированные, эти отношения дают 0.50, 0.75, 1.13, 1.50, 1.50, 1.67, 2.25, 2.75, 3.50, 6.00. Из этого списка выходят три числа, каждое для своей задачи.

  • Медиана — для планирования одной задачи: (1.50 + 1.67) ÷ 2 = 1.58. Задача, которую чутьё оценивает в 3 часа, попадает в план как 3 × 1.58 ≈ 4.75 часа, примерно 4 ч 45 м. Это как бросок монеты: половина ваших задач должна укладываться в неё. Инструмент показывает это как ×1.58.
  • 80-й перцентиль — для обещаний: 8-е из 10 отсортированных отношений, 2.75. Та же задача превращается в 3 × 2.75 = 8.25 часа, когда от даты зависит кто-то ещё. Это тот уровень, который, по сообщению Flyvbjerg, использует Министерство транспорта Великобритании: 20% риска перерасхода принимается на крупных местных транспортных инвестициях.
  • Отношение сумм — для недели: 66.5 фактических часов ÷ 35 оценённых = 1.90. Двадцать часов оценённых задач означают около 38 часов работы. Медиана здесь — неподходящий инструмент. Halkjelsvik and Jørgensen (2018) показывают, что медианы и наиболее вероятные значения не складываются в реалистичную сумму и что складываются только прогнозируемые средние. Отношение сумм — это взвешенное по оценкам среднее. Инструмент показывает обе суммы.

Только 2 из 10 уложились в ±25% от оценки, поэтому доля «точно в цель» в инструменте показывает 20%.

Одно решение до того, как вы начнёте записывать: вы оцениваете трудозатраты или календарь? Студенты Buehler прогнозировали даты завершения. Трекер времени измеряет часы работы. Задача на 3 часа может занять 4.75 часа трудозатрат и три дня календаря, поэтому держите их в разных классах.

Откуда должны браться фактические данные

Если вы вписываете факт по памяти, искажение, которое вы пытаетесь скорректировать, возвращается прямо в поправку. Roy, Christenfeld and McKenzie (2005) предполагают, что для важных задач «может оказаться полезным вести записи времени начала и окончания задачи». Эксперименты Roy 2008 года показали, что люди хорошо прогнозировали, когда опирались «не на память о длительности прошлых задач, а на измерения фактической длительности».

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

Я делаю Timex — автоматический трекер времени для Mac, и он закрывает сторону трудозатрат без кнопки старта. Он записывает активное приложение, заголовок окна и URL активной вкладки браузера каждую секунду в один локальный файл SQLite. Чтобы вытащить факт по одной задаче:

  • В приложении: раскройте приложение в детализации, чтобы увидеть его основные заголовки окон с временем, либо протяните выделение по таймлайну Today над тем отрезком, когда вы над ней работали, и прочитайте отфильтрованные итоги.
  • Через SQL: откройте файл в бесплатном просмотрщике SQLite и просуммируйте по чему-то, что встречается в заголовках или URL, например по ID тикета:
SELECT ROUND(SUM(duration) / 3600.0, 2) AS hours
FROM activity
WHERE title LIKE '%ACME-142%' OR url LIKE '%ACME-142%';

Вставьте результат в инструмент «оценка против факта» как фактическое время. Timex ничего не оценивает, не планирует и не составляет расписаний. Он поставляет факты, а оценка остаётся за вами. Он также видит только ваш Mac. Телефонный звонок или сессия у доски требуют ручной записи, которую Timex предлагает внести, когда вы отсутствовали 5 минут.

Честные ограничения

Множитель исправляет среднее, а не разброс. Исследование 4 Buehler это уже показало. Обратная связь делает ваше ощущение разброса более реалистичным, но медленно.

В одном исследовании, которое описывают Halkjelsvik and Jørgensen (2018), специалисты по ПО давали 90% диапазоны для 30 задач, причём реальное время раскрывалось после каждой. Эти диапазоны поймали фактическое время в 64% случаев на первых 10 задачах, в 70% на следующих 10 и в 81% на последних 10. Это реалистичнее — и всё ещё меньше 90%. Именно поэтому число, которое вы обещаете, — 80-й перцентиль, а не медиана.

Десять задач — маленькая выборка, и класс дрейфует. 80-й перцентиль десяти точек сдвинется, если изменится одна задача, поэтому продолжайте записывать и пересчитывайте. Не смешивайте часовой багфикс с трёхнедельной миграцией; очень короткие задачи и так могут переоцениваться. И как только вы начнёте корректировать, ваше чутьё может начать закладывать запас самостоятельно. Пересчёт ловит и это.

Закон Parkinson толкает в другую сторону. Работа расширяется, чтобы заполнить доступное время, а Halkjelsvik and Jørgensen добавляют «и ещё немного». Дайте себе число 80-го перцентиля как цель — и запас имеет свойство испаряться. Планируйте день по медиане, обещайте по 80-му перцентилю и держите разницу как видимый буфер вне задачи.

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

Начните со следующих десяти

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

Если вы предпочитаете не запускать секундомер, скачайте Timex и запротоколируйте следующие десять задач с его помощью; триал — это 100 часов отслеженной активности, без кредитной карты.

— DK