Теперь вернемся к реальному миру: ниже показана дифференциальная диаграмма риска для срока сдачи проекта и (непосредственно под ней) ее кумулятивный эквивалент:
Здесь снова оба графика показывают одни и те же данные, просто представленные слегка по- разному. Заметно, что шкалу по вертикали при кумулятивной форме несколько легче понять: она показывает непосредственно вероятность от 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 мили. Это тоже можно изобразить как распределение:
Эти данные более «зернистые» из-за недостаточного их количества.
Итак, сколько займет ваш следующий забег? Вы помните, что время — это расстояние, деленное на скорость (мили расстояния, поделенные на мили/час). Если расстояние и скорость были бы фиксированными величинами, то нам предстояло бы элементарное арифметическое действие, но в данном случае, оба параметра являются неопределенными, меняющимися в рамках определенного диапазона. Это обеспечивает наличие неопределенности также и в результате:
В целях
Вместо того чтобы