«Проект без риска — удел неудачников. Риски и выгода всегда ходят рука об руку» . Том Демарко. «Вальсируя с Медведями. Управление рисками в проектах по разработке программного обеспечения»
Добрый день, уважаемый читатель! Какие ассоциации у вас возникают с летом? Эх, лето-лето - пора массовых отпусков. Кто-то выбирает страны по жарче, чтобы потешиться в лучах заморского солнца, кто-то любит умеренный климат с живописной природой, а лично мне нравится Монте-Карло. Только я сейчас имею ввиду не какой-то там городишко с ярким маститым казино и узкими улочками, а самый что ни на есть метод имитационного моделирования проекта. Но перед тем как я перейду к математике - парочку сухих определений из моих залежавшихся университетских конспектов.
Проект — временное предприятие, предназначенное для создания уникальных продуктов, услуг или результатов. В свою очередь, каждый мало-мальски проект имеет целый вагон рисков. И пускай этот проект будет иметь название "покупки в гастрономе №4", однако риск не купить молока все-таки присутствует. Рассуждая глобально, проектам в ИТ-сфере присущи куда более целая россыпь рисков.
Риск — неопределенное событие или условие, наступление которого отрицательно или положительно сказывается на целях проекта. Так хорошо. Есть проект, есть риски, а каков критерий успеха нашего детища? Успешность проекта зависит от трех "китов".
Cодержание, стоимость, время - найдите грань между тремя этими "железными" ограничениями и успех вам гарантирован (все по 60 градусов)). Но! Меняя один из углов треугольника - волей не волей будут изменяться и два других ( как в тригонометрии сумма всех углов треугольника = 180 градусов)
Риск — неопределенное событие или условие, наступление которого отрицательно или положительно сказывается на целях проекта. Так хорошо. Есть проект, есть риски, а каков критерий успеха нашего детища? Успешность проекта зависит от трех "китов".
Cодержание, стоимость, время - найдите грань между тремя этими "железными" ограничениями и успех вам гарантирован (все по 60 градусов)). Но! Меняя один из углов треугольника - волей не волей будут изменяться и два других ( как в тригонометрии сумма всех углов треугольника = 180 градусов)
Рисунок 1 - «Железный треугольник» ограничений проекта
Посему резюмируем, что задача проекта — достижение конкретной бизнес-цели, при соблюдении ограничений «железного треугольника».
Согласно текущей редакции стандарта PMBOK (4-той если мне не изменяет память), проект считается успешным, если удовлетворены все требования заказчика и участников проекта. Поэтому у проекта разработки ПО сегодня не три, а четыре фактора успеха:
1. Выполнен в соответствие со спецификациями.
2. Выполнен в срок.
3. Выполнен в пределах бюджета.
4. Каждый участник команды уходит с работы в 19:00 с чувством выполненного долга :)
Чтобы достигнуть факторов успеха - грамотному бизнес-аналитику необходимо держать в голове целый вагон различных факторов: сформулировать цели, задачи, разбить проект на работы, а также точно оценивать время на выполнения каждой единички проекта, правильно идентифицировать и классифицировать риски, умение составлять базовое расписание проекта, давать качественную и количественную оценку о текущем положении и состоянии проекта...И это не еще не все. Говорить можно без устали долго, однако перейдем к предмету сегодня нашего разговора, а именно к количественной оценки риска увеличения длительности проекта с помощью метода Монте-Карло. Метод Монте-Карло является методом имитационного моделирования проекта. Для оценки рассматриваемого риска необходимо смоделировать длительность проекта. Проще говоря, если например, наш клиент хочет, чтобы мы дали "точную" оценку по проекту. В какие сроки он может получить готовый проект? С какой вероятностью проект будет завершен в указанную заказчиком дату? Стоп-стоп, не нужно сразу же бросаться с головой в размышления и давать оценку. Мы ведь сегодня хотим дать количественную оценку, а не примерный результат. Итак имеем некоторые начальные данные. На рисунке 2 представлена диаграмма Ганта рассматриваемого проекта.
Посему резюмируем, что задача проекта — достижение конкретной бизнес-цели, при соблюдении ограничений «железного треугольника».
Согласно текущей редакции стандарта PMBOK (4-той если мне не изменяет память), проект считается успешным, если удовлетворены все требования заказчика и участников проекта. Поэтому у проекта разработки ПО сегодня не три, а четыре фактора успеха:
1. Выполнен в соответствие со спецификациями.
2. Выполнен в срок.
3. Выполнен в пределах бюджета.
4. Каждый участник команды уходит с работы в 19:00 с чувством выполненного долга :)
Чтобы достигнуть факторов успеха - грамотному бизнес-аналитику необходимо держать в голове целый вагон различных факторов: сформулировать цели, задачи, разбить проект на работы, а также точно оценивать время на выполнения каждой единички проекта, правильно идентифицировать и классифицировать риски, умение составлять базовое расписание проекта, давать качественную и количественную оценку о текущем положении и состоянии проекта...И это не еще не все. Говорить можно без устали долго, однако перейдем к предмету сегодня нашего разговора, а именно к количественной оценки риска увеличения длительности проекта с помощью метода Монте-Карло. Метод Монте-Карло является методом имитационного моделирования проекта. Для оценки рассматриваемого риска необходимо смоделировать длительность проекта. Проще говоря, если например, наш клиент хочет, чтобы мы дали "точную" оценку по проекту. В какие сроки он может получить готовый проект? С какой вероятностью проект будет завершен в указанную заказчиком дату? Стоп-стоп, не нужно сразу же бросаться с головой в размышления и давать оценку. Мы ведь сегодня хотим дать количественную оценку, а не примерный результат. Итак имеем некоторые начальные данные. На рисунке 2 представлена диаграмма Ганта рассматриваемого проекта.
Рисунок 2 - Диаграмма Ганта проекта по созданию нашего Чудо-Юдо проекта
Опираясь на диаграмму Ганта, зададим длительность проекта математической формулой (модель параметра проекта) (сумма длительностей операций, лежащих на критическом пути
Опираясь на диаграмму Ганта, зададим длительность проекта математической формулой (модель параметра проекта) (сумма длительностей операций, лежащих на критическом пути
Основная идея метода Монте-Карло заключается в том, что длительность каждого этапа проекта рассматривается как случайная величина. В качестве функции распределения продолжительности этапов выбирается треугольное распределение, описание которого требует задания трех параметров: минимального - tL, наиболее вероятного - tм и максимального значений - tн . График функции треугольного распределения представлен на рисунке 3.
Минимальные, наиболее вероятные и максимальные значения продолжительности этапов определяются экспертами (например, методом экспертных оценок, но есть и множество других оценочных вариантов), которые имеют соответствующий опыт работы в подобных проектах. Для проведения моделирования используем данные таблицы 1. (условимся, что это значения приплюсованы с возможными рисками на каждом этапе)
Имитация проекта подразумевает расчет по математическое модели общей длительности проекта заданное количество раз. Число итераций расчета влияет на точность результата: чем больше, тем точнее, но слишком большое их число замедляет расчет. Для данного проекта общую длительность проекта рассчитаем 500 раз.
На каждой итерации продолжительности этапов проекта определяются с помощью генерируемого в диапазоне от 0 до 1 случайного числа R, которое вводится согласно треугольному распределению в формулу:
На каждой итерации продолжительности этапов проекта определяются с помощью генерируемого в диапазоне от 0 до 1 случайного числа R, которое вводится согласно треугольному распределению в формулу:
Подставляя вычисленные значения продолжительности этапов в модель (формула 1), определяется длительность всего проекта. Таким образом, по результатам всех итераций получается набор значений длительности всего проекта – их распределение нам и интересно посмотреть.
На рисунке 4 изображен график распределения длительности проекта в целом.
На рисунке 4 изображен график распределения длительности проекта в целом.
Рисунок 4 - График распределения длительности проекта
График распределения позволяет получить ответы на следующие вопросы назойливых заказчиков:
− Насколько вероятно, что команда сумеет завершить проект в течение 93 дней, установленных руководством или нашими аналитиками?
− Если вероятность благоприятного исхода составит менее 90% (такое значение предпочтительно с точки зрения команды), то, на сколько дней необходимо сдвинуть крайний срок?
Чтобы ответить на 1-й вопрос из поставленных на графике необходимо:
1)Отметить на оси X продолжительность проекта, которая соответствует сроку, установленному руководством.
2)Сдвинуться от этой даты вверх до пересечения с кривой графика.
3)Сдвинуться от точки пересечения влево до пересечения с осью Y. Значение, находящееся на оси Y (12%), и есть вероятность того, что проект удастся завершить за 93 дня.
Совершенно ясно, что эта вероятность значительно ниже, чем предпочитаемые 90%. Определяется длительность проекта с 90%-ой вероятностью – 100 дней. По графику видно, что срок исполнения проекта нужно сдвинуть на 8 дней (2-й вопрос).
Таким образом, взяв за основу метод Монте-Карло, мы можем с легкостью не просто оценивать "на глаз" сроки проекта, но и давать довольно-таки точный прогноз. Если кого-то заинтересовала методика - могу поделиться заготовкой в Excel.
График распределения позволяет получить ответы на следующие вопросы назойливых заказчиков:
− Насколько вероятно, что команда сумеет завершить проект в течение 93 дней, установленных руководством или нашими аналитиками?
− Если вероятность благоприятного исхода составит менее 90% (такое значение предпочтительно с точки зрения команды), то, на сколько дней необходимо сдвинуть крайний срок?
Чтобы ответить на 1-й вопрос из поставленных на графике необходимо:
1)Отметить на оси X продолжительность проекта, которая соответствует сроку, установленному руководством.
2)Сдвинуться от этой даты вверх до пересечения с кривой графика.
3)Сдвинуться от точки пересечения влево до пересечения с осью Y. Значение, находящееся на оси Y (12%), и есть вероятность того, что проект удастся завершить за 93 дня.
Совершенно ясно, что эта вероятность значительно ниже, чем предпочитаемые 90%. Определяется длительность проекта с 90%-ой вероятностью – 100 дней. По графику видно, что срок исполнения проекта нужно сдвинуть на 8 дней (2-й вопрос).
Таким образом, взяв за основу метод Монте-Карло, мы можем с легкостью не просто оценивать "на глаз" сроки проекта, но и давать довольно-таки точный прогноз. Если кого-то заинтересовала методика - могу поделиться заготовкой в Excel.