Эту диаграмму следует читать несколько иначе: график показывает вероятность того, что ребенок, прыгающий вам на колени, будет принадлежать к указанной весовой группе или одной из предшествующих ей. Ниже первой весовой группы, вероятность нулевая (в классе нет ребят, весящих меньше 100 фунтов). Оказаться в верхней весовой группе и предшествующих ей можно со 100%-ной вероятностью, поскольку все дети в классе отвечают этому определению.
Обе диаграммы представляют одинаковые данные. Первая показывает относительную вероятность оказаться ребенком из данной группы, а вторая показывает кумулятивную вероятность оказаться ребенком в указанной группе или любой из предшествующих ей. Мы назовем эти типы диаграмм неопределенности дифференциальным (incremental) и кумулятивным, соответственно.
Теперь вернемся к реальному миру: ниже показана дифференциальная диаграмма риска для срока сдачи проекта и (непосредственно под ней) ее кумулятивный эквивалент:
Здесь снова оба графика показывают одни и те же данные, просто представленные слегка по-разному. Заметно, что шкалу по вертикали при кумулятивной форме несколько легче понять: она показывает непосредственно вероятность от 0 до 100%. Любая дата влево от 1 января безнадежна (0%-ная вероятность), но если мы захотим пройти весь путь до конца декабря следующего года, есть 100%-ная вероятность того, что к сроку все будет готово. Факт, что 1 мая следующего года дает вероятность 50 на 50, сразу виден на кумулятивной диаграмме, а на дифференциальной нужно оценить площади слева и справа отданной точки.
Обе формы полезны, и если у вас есть данные для одной из них, вы всегда можете использовать их для построения другой.
Глава 12
Инструменты и процедуры
В этой главе у нас две задачи: (1) снабдить нас удобным инструментом для оценки рисков и (2) дать некоторые основные знания о пользовании им. Инструмент, названный RISKOLOGY, можно бесплатно скачать с нашего сайта в Интернете (http://www.systemsguild.com/riskology/)[21]. Это – модель риска в смысле, описанном в предыдущей главе. Инструмент предназначен для использования вместе с вашей собственной производственной моделью или механизмом параметрического оценивания. Наш инструмент не оценивает, сколько времени будет длиться ваш проект, он всего лишь говорит вам о том, сколько неопределенности следует приписать любой выдвигаемой оценке.
Модель представлена в виде электронной таблицы. Она исходит из логики, необходимой для работы с набором рисков в количественном выражении, включая исходную базу данных для четырех главных рисков разработки программного обеспечения. (Мы обсудим главные риски в главе 13).
Как можно водить машину без понимания всех тонкостей ее устройства, так можно использовать модель риска без глубокого понимания того, как она работает. В этой главе мы все же дадим вам возможность заглянуть внутрь модели. Это поможет слегка уменьшить суеверный страх и дать вам точку опоры, если вы решите самостоятельно подстроить электронные таблицы, чтобы они лучше соответствовали вашим задачам. Индивидуальная подгонка может быть важна, поскольку позволяет вам уничтожить, по крайней мере, некоторые из явных неопределенностей, относящихся к вашим проектам. Ваши собственные данные могут оказаться более оптимистичными и более применимыми, чем наша общеотраслевая информация.
Прежде, чем погрузиться в детали, обещаем не напрягать ваши мозги: мы не использовали «крутой» математики в этой главе. Если вы хоть немного знаете арифметику, эта глава будет вам посильна. Если вы собрались использовать электронную таблицу, например, для прогнозирования размера своей пенсии, у вас не должно быть проблем с тем, чтобы разобрать эту модель риска и собрать ее обратно, если решите заняться ее подгонкой.
В центре любой модели риска – метод определения объединенного воздействия двух и более неопределенностей:
К концу следующей главы будет показано, как это работает в проектах разработки программного обеспечения. А прямо сейчас мы намерены предложить для иллюстрации рассказ об очевидно надуманной проблеме, которую зато легче понять.
Предположим, что вы – бегун. Вы честно бегаете ежедневно, но время пробежки варьируется в зависимости от других ваших дел. Ваша ежедневная тренировка занимает от 15 минут до 1 часа. Вы ведете записи и обнаруживаете, что совершенно независимо от расстояния (в указанном временном диапазоне) скорость бега варьируется от 6,5 до 9 миль/час. Записи вы ведете так давно, что накоплена вполне приличная статистика:
Реальные данные, возможно, были в форме гистограммы, а то, что мы показываем здесь, является огибающей кривой, примерно повторяющей эту гистограмму. Это похоже на диаграмму неопределенности, ею она и является. На самом деле это можно представить в двух обычных формах, как показано ниже:
Это распределение прошлых результатов можно рассматривать как представление неопределенности в отношении того, как быстро вы побежите в следующий раз.
Предположим, что ваша скорость является не единственной неопределенностью, влияющей на следующий забег. Предположим, вы решили побежать по дорожке неизвестной длины: по периметру площадки для гольфа. Поскольку вы никогда раньше там не бегали, вы совсем не уверены, сколь длительным будет забег. У вас есть какие-то данные, полученные от Профессиональной ассоциации гольфа, о периметре площадки, из которых следует, что это расстояние может быть от двух до четырех миль, причем наиболее вероятна длина периметра примерно в 2,8 мили. Это тоже можно изобразить как распределение:
Эти данные более «зернистые» из-за недостаточного их количества.
Итак, сколько займет ваш следующий забег? Вы помните, что время – это расстояние, деленное на скорость (мили расстояния, поделенные на мили/час). Если расстояние и скорость были бы фиксированными величинами, то нам предстояло бы элементарное арифметическое действие, но в данном случае, оба параметра являются неопределенными, меняющимися в рамках определенного диапазона. Это обеспечивает наличие неопределенности также и в результате:
В целях выведения результирующей кривой, составленной из двух входных кривых, нам понадобилось бы использовать метод из области интегрального исчисления. Но такая «крутая» математика непозволительна в этой главе. Что же нам делать?
Вместо того чтобы строить кривую, мы намерены создать ее приближенный вариант путем моделирования ряда последовательных забегов. Для этого нам понадобится построить инструмент, который даст ряд выборочных данных из неопределенности любого вида и в то же время гарантирует соблюдение формы этой неопределенности по времени. Такой инструмент в применении к диаграмме скорости будет выглядеть так:
Если бы вы сами осуществляли механизм выборки в этом случае, как бы вы действовали дальше? Первую точку выбрать легко: смотрите на переход от минимума к максимуму и берете любую точку где-то посередине между ними. Кто оспорит ваше решение, на каком бы числе вы ни остановили свой выбор? Но если это нужно проделать больше одного раза, требование «соблюдать форму неопределенности во времени» заставляет задуматься. Как выбрать ряд данных с соблюдением такого же разброса вероятностей, как показан на исходной диаграмме неопределенности?
Как бы вы это ни сделали, фигура из выбранных точек должна, в конечном счете, повторять изначальную диаграмму неопределенности. Чтобы проверить себя, вы можете собрать свои результаты за некоторый период времени, рассортированные по удобным группам, и использовать их для построения гистограммы своих выбранных результатов. Если вы правильно рассчитали процесс выборки, последовательные гистограммы (для все большего и большего числа элементов выборки) могли бы выглядеть так: