10.15

Смотреть на английском

10.15 Оценка и прогнозирование

Обзор и мотивация

Каждой программной команде задают один и тот же вопрос: когда будет готово? За этим вопросом стоит оценка трудозатрат разработки программного обеспечения, практика предсказания того, сколько работы что-то потребует, до того как вы это сделали. Это одно из самых трудных дел, что мы делаем, и одно из самых лёгких для плохого исполнения. Беда в том, что программное обеспечение работа открытия. Вы строите то, чего никогда не существовало, и многое из того, что вы узнаете о проблеме, становится видимым только пока вы строите. Предсказание усилия обучения подлинно отличается от предсказания усилия повторения известной задачи.

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

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

Ключевые принципы

  • Оценка это предсказание, а не обещание. Держите её отдельно от целей и обязательств.
  • Неопределённость реальна, поэтому выражайте её. Диапазон с вероятностью побеждает ложную единичную дату.
  • Прошлое предсказывает будущее лучше оптимизма. Предпочитайте измеренную историю свежим догадкам.
  • Декомпозируйте, чтобы понять, прогнозируйте, чтобы обязаться. Малые срезы снижают и риск, и нужду в оценке.
  • Берите взгляд со стороны. Сравнивайте с похожими прошлыми усилиями, прежде чем доверять своей внутренней истории.
  • Перепрогнозируйте непрерывно. Предсказание, сделанное раз и никогда не обновляемое, декорация.
  • Оценивайте, только когда ответ изменит решение. Иначе это потеря.

Рекомендации

Отделяйте оценку, цель и обязательство

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

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

Понимайте, почему оценки неверны и в какую сторону

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

Поверх этой структурной неопределённости лежит человеческая предвзятость. Ошибка планирования это наша надёжная склонность недооценивать время, цену и риск собственных планов, воображая лучший случай. Мы рисуем счастливый путь, забываем прерывания, сюрпризы интеграции и больничные дни и производим число, предполагающее, что ничего не пойдёт не так. Запас обычный защитный ответ, но запас, добавленный на ощущение, это просто вторая догадка поверх первой, и он вытесняется в момент ужимания расписаний. Лекарство не больше силы воли; это метод. Опирайте предсказания на то, сколько на самом деле заняла похожая работа, а не на то, как эта работа ощущается изнутри.

Используйте декомпозицию и экспертное суждение и знайте их пределы

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

Для всего, на что нужно поставить число, предпочитайте трёхточечную оценку, просящую оптимистичную, наиболее вероятную и пессимистичную цифры и объединяющую их, нередко как взвешенное среднее PERT (оптимистичная плюс четыре раза наиболее вероятная плюс пессимистичная, делённое на шесть). Ценность не в точной формуле. Она в том, что трёхточечная оценка заставляет высказать неопределённость вслух и производит диапазон вместо ложной точки. Методы относительного размера вроде очков истории и размеров футболок (малый, средний, большой, очень большой) обходят ловушку предсказания точных часов, сравнивая элементы друг с другом. Они хорошо работают для упорядочивания и грубой мощности, но воспринимайте их как входы прогноза, а не валюту. Очки не часы, а умножение скорости на очки для получения даты вновь вводит каждую проблему, которую относительный размер призван был избежать.

Прогнозируйте вероятностно по собственным данным потока

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

Строгая версия запускает симуляцию методом Монте-Карло: выборка из вашей исторической недельной пропускной способности тысячи раз для построения распределения возможных дат завершения, затем ответ читается как вероятность. «С вероятностью 85 процентов мы закончим к 14 марта и с вероятностью 50 процентов к 28 февраля» несравнимо полезнее и честнее, чем «будет готово 1 марта». Этот подход напрямую связан с теорией очередей (глава 11.3): время выполнения равно работе в процессе, делённой на пропускную способность, так что те же метрики потока, что управляют движением работы, управляют и временем её прибытия. Вероятностное прогнозирование требует истории и достаточно стабильного процесса, именно поэтому оно вознаграждает команды, держащие работу малой, а поток ровным. Оно также тихо убирает большую часть церемонии оценки, потому что вам больше не нужно оценивать размер каждого элемента, чтобы знать, когда приземлится партия.

Берите взгляд со стороны для больших программ

Для больших, долгих, дорогих программ отдельные оценки и даже прогнозы потока могут вводить в заблуждение, потому что у новой программы ещё нет истории пропускной способности, а её внутренняя история как раз то место, где ошибка планирования кусает сильнее всего. Противоядие прогнозирование по референтному классу: найдите референтный класс похожих завершённых усилий, посмотрите, сколько времени и денег они действительно заняли, и поместите вашу программу в это распределение, прежде чем доверять собственному плану снизу вверх. Если сопоставимые замены платформ в вашей компании превысили первоначальные оценки в среднем на 60 процентов, это число лучшее свидетельство о вашей, чем аккуратный план, который только что собрала ваша команда. Взгляд со стороны ощущается обескураживающим, и в этом его ценность: он противостоит оптимизму, что несёт каждый свежий план. Используйте его для финансирования портфеля и бюджетирования мегапрограмм (глава 10.1), где цена систематического превышения измеряется миллионами и доверием.

Оценивайте меньше, нарезая мельче, и упорядочивайте по цене задержки

Порой правильное количество оценки почти нулевое. Аргумент #NoEstimates в своём разумном ядре замечает, что если вы нарезаете работу на куски, достаточно малые, чтобы каждый занимал день-два, оценка любого отдельного куска перестаёт иметь значение. Вы просто считаете пропускную способность и прогнозируете по счёту. Когда срезы единообразны и малы, сложная оценка размера потеря: она тратит усилия на точность, которая прогнозу не нужна. Это не довод против мышления наперёд. Это довод за то, чтобы сделать отдельные предсказания дешёвыми, делая отдельные куски малыми.

То, что всё ещё требует решения, порядок. Когда нельзя сделать всё сразу, упорядочивайте по цене задержки: ценности, теряемой за каждую единицу времени опоздания данной работы. Функция, открывающая большой контракт в следующем квартале, имеет высокую цену задержки и должна обогнать приятное дополнение без неё, даже если приятное дополнение легче. Взвешивание цены задержки против усилия (эвристика «сначала самая короткая работа с весом» из бережливого мышления) говорит, что делать дальше, гораздо надёжнее очереди, отсортированной на ощущение. Заметьте, что это переформулирует весь разговор: вместо «когда будет готово всё», что приглашает ложную точность, вы спрашиваете «что самое ценное завершить дальше», на что можно действительно ответить.

Компромиссы: плюсы и минусы

ПодходПлюсыМинусы
Оценка единичной датойПросто; то, что просят заинтересованные стороныТочно неверна; скрывает риск; становится случайным обязательством
Трёхточечная / PERT-оценкаВыводит неопределённость наружу; дёшевоВсё ещё догадка; формула подразумевает ложную строгость
Очки истории / размеры футболокБыстро; хорошо для упорядочивания и грубой мощностиНе часы; математика скорости протаскивает единичные даты обратно
Вероятностный прогноз потокаОснован на свидетельствах; самообновляется; честные диапазоныНужна история и стабильный поток; выглядит менее «уверенно»
Прогнозирование по референтному классуИсправляет оптимизм на больших программахНужны сопоставимые прошлые усилия; обескураживающе слышать
#NoEstimates (малые срезы)Убирает потери; прогноз по счётуНужна дисциплинированная нарезка; тревожит финансирующих, желающих число

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

Вопросы для обсуждения с командой

  1. Когда кто-то просит у вас дату, даёте ли вы оценку, цель или обязательство и знают ли все в комнате, какое именно? Это вопрос, предотвращающий больше всего ущерба за наименьшие усилия. В большинстве организаций эти три схлопываются в одно число в момент, когда оно покидает рот команды, и никто не решал принять риск, что предсказание стало обещанием. Принесите реальный пример: возьмите ваш последний обязанный срок и проследите его назад до разговора, где он впервые прозвучал, и спросите, был ли он когда-либо чем-то иным, чем обнадёживающая догадка в костюме. Ответ должен навсегда изменить ваш язык, так что оценки уходят диапазонами, цели называются бизнес-пожеланиями, а обязательства даются намеренно, с взвешенной и записанной как решение неопределённостью (глава 1.5). Если ваша команда не может указать, где обязательство было сознательно принято, вы даёте обещания случайно.

  2. Могли бы вы прогнозировать ваш следующий выпуск по измеренной пропускной способности вместо свежих оценок и что мешает? У большинства команд уже есть данные, чтобы ответить на «когда будет готово» эмпирически, лежащие без дела в инструменте, отслеживающем их работу. Если вы знаете, сколько элементов ваша команда завершала в неделю за последний квартал, вы можете смоделировать распределение дат завершения и назвать вероятность вместо пожелания. Принесите вашу фактическую историю пропускной способности и число оставшихся элементов и сравните прогноз на основе потока с любой датой, что команда оценила на ощущение; разрыв обычно поучителен. Если блокировщик в том, что ваши элементы дико различаются по размеру или ваш поток неровен, это само находка, потому что нестабильный поток проблема поставки, которую стоит исправлять независимо (главы 11.2, 11.3). Переход от оценки к измерению нередко меньше смена инструментов, чем решение доверять собственной истории больше оптимизма.

  3. Для вашей крупнейшей текущей программы брали ли вы взгляд со стороны или только строили внутренний план? Большие программы то место, где оптимизм накапливается в дорогие превышения и где уверенный план снизу вверх наиболее соблазнителен и наименее надёжен. Дисциплина в том, чтобы назвать референтный класс похожих завершённых усилий внутри или вне вашей организации, найти, чего они действительно стоили и сколько действительно заняли, и честно поместить вашу программу в это распределение, прежде чем защищать свои числа. Принесите данные: как сопоставимые инициативы здесь превышали первые оценки и не предполагает ли ваш текущий план тихо, что вы превзойдёте каждую из них? Если да, вы ставите на исключительность, а такую ставку базовые частоты надёжно проигрывают. Взгляд со стороны сделает ваш прогноз менее лестным и гораздо более защитимым перед финансирующими и аудиторами, которые запомнят названное вами число (глава 10.1).

  4. Когда финансирующий, контракт или законодатель требует одну фиксированную дату, как вы отвечаете, не лжа и не отказываясь? Здесь давление свирепее всего и честные команды чаще всего сдаются, потому что «с вероятностью 70 процентов к сентябрю» звучит уклончиво рядом с уверенным «сентябрь» конкурента. Для большой организации ставки умножаются: одна фиксированная дата расходится по бюджетам, зависимым программам и публичным обещаниям, так что число, выбранное ради комфорта, становится системным обязательством в момент, когда сдвигается. Принесите язык, которым вы на самом деле планируете пользоваться, проработанный пример диапазона с уровнями уверенности и малое раннее приращение, по которому можно обязаться твёрдо, оставив более поздний объём финансируемым диапазоном. Конкурирующее соображение реально, поскольку некоторые сроки (регуляторное переключение, запуск к выставке) подлинно фиксированы, и верный ход там зафиксировать дату и гнуть объём, а не делать вид, что усилие определено. В корпоративной и государственной среде свяжите это с формой контракта: модульное финансируемое приращениями соглашение позволяет честно обязаться по ценному ядру, тогда как единый контракт с фиксированной ценой и объёмом, привязанный к далёкой вехе, навязывает именно ложную определённость, производящую превышение и заголовок.

  5. Как ваша команда решает, что строить дальше, и изменило бы явное упорядочивание по цене задержки порядок? Большинство очередей упорядочены смесью ощущения, того, кто громче кричал, и грубого усилия, что тихо оптимизирует лёгкие победы, а не ценные. Цена задержки, ценность, теряемая за каждую единицу времени опоздания работы, переформулирует вопрос с «когда будет готово всё» на «что самое ценное завершить дальше», на что можно ответить свидетельствами. Принесите три-четыре реальных элемента очереди с честной оценкой ценности, что каждый открывает, и когда эта ценность истекает, затем ранжируйте их по ценности, теряемой в неделю, против усилия и сравните порядок с вашим текущим планом; переупорядочивание обычно удивляет и трудно оспаривается. Конкурирующее соображение в том, что цена задержки сама оценка и может быть подтасована тем, кто хочет свой элемент первым, поэтому назовите, кто владеет числами и как их оспаривают. Для корпоративного портфеля или государственной программы эта дисциплина позволяет защищать решения об упорядочивании перед заинтересованными сторонами, каждая из которых считает, что её инициатива должна идти первой, потому что порядок опирается на заявленную ценность, а не политику.

  6. Кто перепрогнозирует, как часто и кто подотчётен за действия, когда прогноз сдвигается? Предсказание, сделанное раз при запуске и никогда не пересматриваемое, декорация, а самые дорогие опоздания те, что живой прогноз показал бы за месяцы до того, как срок сделал их неоспоримыми. Для большой команды провал редко отсутствие данных и обычно отсутствие постоянного ритма и названного владельца: пропускная способность дрейфует, распределение дат завершения сдвигается вправо, и никто, чья работа это заметить, не смотрит. Принесите ваш фактический ритм перепрогноза (или признайте, что его нет), последний раз, когда прогноз изменил решение, и дрейф, который вы видели с момента задания текущего обязательства. Конкурирующее соображение усталость от прогнозов, поскольку слишком шумный перепрогноз приглашает метания и разъедает доверие, поэтому договоритесь о разумном интервале и пороге, запускающем эскалацию, а не реагируйте на каждое колебание. В корпоративных и государственных контекстах свяжите это с надзором: информируйте органы управления обновлённым диапазоном вероятностей по фиксированному расписанию, чтобы опоздание всплывало как управляемый перепрогноз, на который руководители могут отреагировать, а не как сюрприз, обнаруженный на вехе.

Взгляд по секторам

Стартап. Пропустите церемонию оценки почти целиком. Нарезайте работу на куски по день-два, считайте, что завершаете каждую неделю, и называйте основателям и инвесторам сужающийся диапазон вместо героической единичной даты. Ваша история коротка, а процесс изменчив, поэтому опирайтесь на конус неопределённости как честное объяснение, а не оправдание, и перепрогнозируйте каждую пятницу по мере прояснения картины.

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

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

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

Примеры

Стартап. Стартапу из девяти человек, готовящему демонстрацию серии A, нужно знать, будет ли готова ключевая интеграция. Вместо того чтобы позволить основателям пообещать инвесторам дату, ведущий называет оценку диапазоном и объясняет стоящий за ней конус неопределённости. Команда закрывала от пяти до девяти элементов очереди в неделю, поэтому они запускают быстрый прогноз Монте-Карло на оставшуюся работу и сообщают «с вероятностью 80 процентов к третьей неделе квартала, равные шансы на неделю раньше». Они нарезают интеграцию на двухдневные куски, чтобы никакая отдельная оценка не имела большого значения, упорядочивают по цене задержки, чтобы сначала построить путь, видимый инвесторам, и перепрогнозируют каждую пятницу. Инвесторы получают честную сужающуюся проекцию вместо уверенного числа, которое бы сдвинулось.

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

Государственный сектор. Ведомство, модернизирующее систему пособий, работает под ассигнованиями и общественным вниманием, где пропущенная публичная дата заголовок. Вместо единого контракта с фиксированной ценой и объёмом, привязанного к одной далёкой вехе, оно закупает модульные приращения и публично обязуется по ценному ядру, поставленному рано, с более поздним объёмом, выраженным финансируемым диапазоном, а не обещанием. Руководители программы информируют надзорные органы вероятностными прогнозами и сравнениями референтного класса, объясняя уровни уверенности простым языком, так что «70 процентов к сентябрю» понимается именно так. Продемонстрированные работающие приращения становятся свидетельством, которому доверяет общество, прочнее любой оценки, что мог бы подписать подрядчик.

Бизнес-обоснование: мотивы, ROI и TCO

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

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

Антипаттерны и ловушки

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

Модель зрелости

  • Уровень 1, Начальный: Оценки это единичные даты, произведённые на ощущение и воспринимаемые как обещания; нет различия между оценкой, целью и обязательством; прогнозирование реактивно и стихийно; превышения удивляют всех и сваливаются на команду.
  • Уровень 2, Развитие: Существует некоторая структурированная оценка (декомпозиция, очки истории, трёхточечные цифры), но практика различается от команды к команде; оценки всё ещё в основном единичные числа; скорость используется для проекции дат; прогнозы делаются раз при запуске и редко пересматриваются.
  • Уровень 3, Стандартизация: Документированный стандарт принуждается по организации: оценки выражаются диапазонами с заявленной неопределённостью, оценка, цель и обязательство разделены по определению, команды отслеживают пропускную способность и перепрогнозируют по заданному ритму, а большие программы обязаны использовать сравнения с референтным классом.
  • Уровень 4, Управление: Практика измеряется и контролируется данными. Точность прогноза отслеживается относительно фактических исходов и проверяется калибровка, так что вы можете сказать, действительно ли ваши даты «80 процентов к» приземляются восемь раз из десяти; ведутся базовые значения пропускной способности и времени цикла; цена задержки количественно оценена; дрейф прогноза мониторится относительно порогов и запускает эскалацию; обязательства даются относительно свидетельств, а не оптимизма.
  • Уровень 5, Оркестрация: Вероятностное прогнозирование по данным потока непрерывно и пользуется доверием, потому что история калибровки доказала его честность; обязательства это намеренные решения, взвешивающие уверенность против цены; работа нарезана достаточно мелко, чтобы оценка была минимальной, а цена задержки двигала порядок; оценка интегрирована с финансированием портфеля и планированием рисков, а организация рутинно пересматривает объём и перебалансирует по мере сдвигов прогнозов, адаптируя план к свидетельствам, а не защищая исходное число.

Идеи для обсуждения

  1. Что изменилось бы в вашей организации, если бы каждая оценка должна была покидать команду диапазоном с уровнем уверенности, а единичные даты были бы запрещены?
  2. Где вы тратите усилия на оценку работы, уже достаточно малой и единообразной, чтобы прогнозировать счётом?
  3. Если бы вы подали пропускную способность двух последних кварталов в симуляцию Монте-Карло, согласился бы прогноз с датами, по которым вы на самом деле обязались?
  4. Для вашей крупнейшей программы каков честный референтный класс и насколько плохо базовая частота противоречит вашему текущему плану?
  5. Как ваша команда сегодня решает порядок и изменило бы явное упорядочивание по цене задержки то, что вы построите дальше?
  6. Когда обязательство принимается в вашей организации, неопределённость записывается как часть решения или исчезает в момент, когда дата записана?

Главные выводы

  • Держите оценку, цель и обязательство раздельно; их схлопывание то, как проекты начинают лгать себе.
  • Оценки систематически неверны в известных направлениях: конус неопределённости расширяет раннюю работу, а ошибка планирования делает оптимизм умолчанием.
  • Предпочитайте вероятностное прогнозирование по измеренной пропускной способности свежим догадкам; называйте диапазоны и уровни уверенности и перепрогнозируйте непрерывно.
  • Берите взгляд со стороны прогнозированием по референтному классу на больших программах, где оптимизм наиболее дорог (глава 10.1).
  • Нарезайте мелко, чтобы отдельные оценки перестали иметь значение, и упорядочивайте по цене задержки, а не на ощущение.
  • Оценивайте, только когда это меняет решение; иначе это потеря. См. главы 10.6 (управление проектами), 11.2 (поставка), 11.3 (теория очередей) и 1.5 (принятие решений и управление).

Источники и дополнительное чтение

  • Steve McConnell, Software Estimation: Demystifying the Black Art.
  • Daniel Vacanti, Actionable Agile Metrics for Predictability and When Will It Be Done? (probabilistic forecasting from flow data).
  • Troy Magennis, Forecasting and Simulating Software Development Projects (Monte Carlo methods).
  • Bent Flyvbjerg and Dan Gardner, How Big Things Get Done (reference class forecasting and megaprojects).
  • Daniel Kahneman, Thinking, Fast and Slow (the planning fallacy and the outside view).
  • Donald Reinertsen, The Principles of Product Development Flow (cost of delay and queue economics).
  • Vasco Duarte, NoEstimates: How to Measure Project Progress Without Estimating.
  • Frederick Brooks, The Mythical Man-Month (why software schedules go wrong).
  • Todd Little, “Schedule Estimation and Uncertainty Surrounding the Cone of Uncertainty” (IEEE Software, 2006).