Об альтернативном методе оценки сроков (PERT Estimation sux)
От: Gaperton http://gaperton.livejournal.com
Дата: 15.10.07 08:38
Оценка: 14 (4) +1
Что такое PERT Estimation. Это элемент метода PERT, предназначенный для оценки сроков проекта. А именно, речь идет вот об этих формулах:

Optimistic time (O): the minimum possible time required to accomplish a task, assuming everything proceeds better than is normally expected
Pessimistic time (P): the maximum possible time required to accomplish a task, assuming everything goes wrong (but excluding major catastrophes).
Most likely time (M): the best estimate of the time required to accomplish a task, assuming everything proceeds as normal.
Expected time (TE): the best estimate of the time required to accomplish a task, assuming everything proceeds as normal (the implication being that the expected time is the average time the task would require if the task were repeated on a number of occasions over an extended period of time).
TE = (O + 4M + P) ÷ 6


Метод берет тройную экспертную оценку сроков на вход, и выдает на выход
Pert Estimation = (O + 4M + P) ÷ 6
и
Pert Derivation = (P — O)/6

В литературе по управлению проектами рекомендуют суммировать Pert Estimation по задачам, чтобы получить прогноз итоговых трудозатрат. Также, там говорят, что формулы PERT аддитивны — типа вы суммируете O M P и применяете формулы PERT к ним.

Что в методе хорошо. Хорошо — это тройная оценка. При одинарной оценке вы не знаете, на что именно эксперт перезаложился, когда ее давал. А тут — тройная, все видно, и оптимистичная есть, и пессемистичная, никакой "тенденции к переоценке-недооценке", возникающей из манеры оценщика трактовать единственную оценку вы не увидите. Второе — по ширине интервала P — O вы увидите, насколько сама оценка достоверна, насколько оценщик в ней уверен.

Вроде-бы, здорово. Однако, после примерно 5-летней практики применения того метода, у меня появились вопросы:
Каков физический смысл PERT Derivation? Вот допустим, я хочу выдать на выходе коридор трудозатрат, и вероятность, что я в него впишусь. Как эта штука мне поможет?

Хорошая новость оказалась в том, что PERT Estimation основан на бета-распределении. Однако, дальше идут только плохие новости. А именно:
— формулы приближенные. Точного beta distribution они не дают, это так, нос к лаптю.
— Оказывается, формулы нифига не аддитивны, как пишут в книгах, хотя бы потому, что PERT Derivation надо сначала возводить в квадрат, только потом суммировать по озадачам, и брать из него корень.
— А после этого ответить на вопрос о том, с какой вероятностью я впишусь в срок, скажем, PERT Estimation + PERT Derivation, уже не так просто, потому как наш бета дистрибьюшен (и так приближенный) безнадежно испорчен суммированием. И стал, благодаря ценральной предельной теореме, чем-то средним между гауссовским и бета-распределением.

Короче, что я хочу и не могу получить с PERT Estimation. Да очень простую штуку, вроде этого:
С вероятностью 85% проект завершится в 4 месяца, с вероятностью 98% — 4,5 месяца.
Причем, я хочу понимать, как оценка получается, это должно быть просто и прозрачно. И еще, желательно, иметь прямое отношение к теории вероятностей, мне так спокойнее.

Да, раз уж мы взялись за метод, то надо учесть и практику применения, по которой выходит, что людей напрягает средняя оценка. Им проще всего ответить на два вопроса касательно сроков:
а) Точно не уложусь
б) Успею 100%
Причем, разница между этими оценками может быть большой. Метод должен работать все равно, нас это не должно волновать. Итак, приступим.

За основу возьмем гауссовское нормальное распределение. Все равно распределение суммы случайных величин сходится именно к нему (т.е. мы его все равно получим в конце концов, независимо от нашего желания), так что не будем никого обманывать. Да и свойства у него приятные. Вот оно:
http://en.wikipedia.org/wiki/Normal_distribution


На вход будем брать две оценки, как договорились. Внимательно глядя на график, понимаем, что
Точно не уложусь = L = M — 2*Sigma (вероятность, что проект таки закончится раньше — 2.2%)
Успею 100% = H = M + 2*Sigma (Вероятность завершения до этого срока = 97,8%)

Ну вот, дальше дело техники.
Матожидание случайной величины "трудозатраты на задачу" = M = ( H + L ) / 2.
Сигма этой случайной величины S = ( H — L ) / 4.

Для суммы задач, M = Sum( M[i ], i = 1..n ).
S = sqrt( Sum( S[i]^2, i = 1..n ).

Вот. Теперь у меня есть то, чего я хотел. А именно,
С вероятностью 84,2% (ладно, не будем морочить голову, и так все приближенное — пусть будет 85%), или если по человечески — то "скорее всего" у меня трудозатраты уложатся в M + S
И с вероятностью 97,8% (лана, лана, пусть будет 98%), то есть "наверняка", они не превысят M + 2*S.

Вот, теперь наконец у меня есть точный (насколько это вообще возможно) метод оценки трудозатрат для заказных проектов fixed cost. И я могу предсказывать свою маржу на раннем этапе, и по человечески, без жевания соплей, отвечать на вопросы о рисках. Может и не точно, как в аптеке, но по крайней мере буду знать, что говорю. Чего и желаю всем последователям вотерфола , ну и agile тоже .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.