Pull to refresh

Comments 23

Спасибо, интересно. Хорошо показывает что чистая математика (метод трех оценок) не достаточна а стремление дойти до 90% вероятности по описанной вами методики будет скорее всего вылетать за разумные рамки (ожиданий, бюджета и т.д.).

Заставило задуматься а как сам то ожидания строю. На вскидку получается что точность оценки у всех людей разная, сложность задач разная, учитывать надо соотнесение сложности и компетенции исполнителей, количество и характер взаимодействий между участниками проекта (цепочки) и внешними лицами, мотивацию участников и наверное это не весь список. Очень много получается факторов по которым наверное трудно построить работающую математическую модель.
Именно по этому многие современные методики пытаются отойти от стандартного планирования на основе диаграмм Ганта. Например, управление по методу критической цепи. Да и внедрение итерационных процессов в разработке, позволяет существенно повысить точность прогнозов. Если вы первую итерацию не уложились на 20% то, с очень высокой долей вероятности, и весь проект вы не уложитесь на 20%. Этот эффект называется мультипликативная природа ошибок. А чем больше вы выполните итераций, тем выше точность прогнозирования сроков.
С итерациями как то все тоже неоднозначно. Стараюсь использую итерации от пары недель до месяца-полтора но не больше. Никогда не получалось загнать их в рамки одного интервала. Характер и сложность работ очень варьируются. Отсюда не очень получается использовать прогноз, к пример 20% на следующие итерации или весь проект. Но чем больше не уложились или уложились, тем больше повода задуматься и перегруппировать задачи, приоритеты или ресурсы, это да.
Да, у нас тоже итерации не выдерживаются, то неделя, то две. Поэтому пытаюсь нормировать к одному дню. Понятно, что в итерацию в неделю накладные расходы приведенные к одному дню будут выше, чем в итерации на две недели, но если брать последние несколько итераций, то у меня это выглядит вот так:
Табличка

Неправдоподобно выглядит, можно подробнее как графики строились?

Сначала
математическое ожидание времени решения задачи составляет 3 часа

image
В это я могу поверить.

Затем оцениваем общее время пяти задач. Его матожиданием должно быть 15 часов (матожидание суммы равно сумме матожиданий). Но глядя на график ниже, я не могу поверить что тут матожидание равно 15 часам.
image
Мало на меня Cartmendum ругал. Конечно 3 часа это не мат. ожидание. Это наиболее вероятное время решения задачи. Спасибо. Поправил.
Ах это наиболее вероятное время решения задачи? Ну тогда — я конечно про диаграммы Ганты первый раз слышу — но разве на этот показатель кто-то вообще когда-либо ориентируется? Какая от него вообще польза? Тем более бесполезно его суммировать (умножать на количество задач) — к времени выполнения общей задачи полученное число будет иметь мало отношения.

Если менеджеры так оценивают сроки, то неудивительно что проекты всегда опаздывают.

Извините за резкость.
Я сам не в восторге от таких оценок. Откройте управление проектами, например по методике PERT, и вы там увидите, что везде упоминается не математическое ожидание, а именно «Наиболее вероятное время». В продемонстрированном случае это как раз и есть 3…
В методе PERT методе помимо наиболее вероятного времени еще используется оптимистичное и пессимистичное. Не стоит очернять метод.
Эмм, а исходя из этой фразы
если мы возьмем для одной задачи в качестве оптимистического прогноза вероятность 30%, для пессимистического – 95%, а для наиболее ожидаемого –50%


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

Матожидание суммы случайных величин в случае не симметричных функций плотности распределения НЕ равно сумме матожиданий. Мало того, матожидание суммы будет меньше суммы матожиданий, именно в этом и заключается суть эффекта выпрямления сроков.

Может быть у вас какое-то своё определение термина «матожидание»?

Вот, что понимаю под этим термином я. В разделе Простейшие свойства математического ожидания упоминается что «Математическое ожидание линейно», то есть

Википедия конечно так себе аргумент, но в вопросах терминологии может помочь.

На случай если вы с математикой знакомы, дополню что линейность матожидания напрямую следует из линейности интеграла, коим матожидание является.

Итак, есть график плотности распределения величины X (утверждается что это гамма-распределение): image

Я не верю, что это график плотности распределния величины 5*X:


Я не хотел выдвигать какие-то претензии лишь на основании вида графиков, но раз уж вы такие вещи про матожидание говорите, то придется разобраться. Какие значения параметров k и theta вы использовали для построения гамма-распределения?
Коллега, я не пытаюсь оспорить свойства мат. ожидания, я просто пытаюсь объяснить, что используя медиану или мат. ожидание, мы будем получать низковероятностный прогноз. Т.к. в комментария картинок больше уже чем в статье, давайте я все спрячу в спойлер.
Как взять мат. ожидание времени 5 задач и получить погрешность 50%
Итак, откроем учебник теории вероятности. Я буду пользоваться теоремой, поэтому вот:

Далее, открываем справку Excel и видим, что порядок передачи параметров в записи функции гамма распределения и соответствующей функции в Excel отличаются:

Открываем Excel. Я взял коэффициенты 6 и 2 (в табличке есть). Посчитал мат. ожидание, как 6*2=12. Построил распределение для пяти независимых гамма-распределений, рассчитал и для нее мат. ожидание, как 5*6*2=60 (видите, я не спорю с постулатом про сумму мат. ожиданий). А вот потом построил интегральный график вероятности:

У вас есть сомнения, что выставив при мат. ожидании времени выполнения одной работы в размере 12, за 5 работ время в 60, мы в 50% случаев будем срывать срок?

Убедил, что нельзя использовать диаграмму Ганта для случаев, когда у нас известно не точное время решения задачи, а имеется распределение вероятностей?
Диаграмму Ганта использовать можно, но нужно понимать, что она нам на выходе даст матожидание, а не точный ответ.

У вас есть сомнения, что выставив при мат. ожидании времени выполнения одной работы в размере 12, за 5 работ время в 60, мы в 50% случаев будем срывать срок?

Ну тут и убеждать не надо, это и так очевидно. Это было бы верно даже для одной работы («выставив время в 12 мы в 50% случаев будем срывать срок»), не нужно для этого суммировать пять задач. Если мы хотим успевать в срок в 95% случаев, то нужно брать 95%-персентиль, а не матожидание.

А вот как взять 95%-персентиль?
Это уже более интересная задачка. Для этого спрашиваем у программиста не только матожидание времени для каждой задачи, но и дисперсию. Потом суммируем матожидания и дисперсии каждой из задач, получаем матожидание и дисперсию для всего проекта. Предполагаем что время всего проекта распределено нормально (т.к. сумма почти независимых случайных величин), и оцениваем 95% персентиль.

Если же программист по какой-то причине отказывается сообщать нам дисперсию, то оцениваем её сами, собрав статистику по предыдущим его заданиям — какое время он прогнозировал, и какое вышло по факту.


Оффтопик по вычислениям
В этот раз вычисления более правдоподобны, правда числа не совпадают с тем что были в статье, поэтому проверить верны ли графики из статьи — не могу.

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

Такая формула не лучше ли будет давать прогноз?
Хм, первый раз сталкиваюсь с такой формулой. А она от куда? На каких распределениях работает? На симметричных не будет давать очень высокое значение прогноза, выходящее за 100% вероятности?
C потолка: )
100% никогда не будет — вероятность никогда не выше 100%. Смысл её — брать оценку, немного выше пессимистического прогноза. Не вдвое и не втрое, потому что прогноз по определению уже учёл риски. А ваша формула говорит, что нужно брать вес 4/6 — средний, что практически от среднего и не будет отличаться.
Прошу прощения, не увидел 21.
Да, в этом случае мы будим успевать закончить к этому сроку с вероятностью 99%, но посмотрите на выкладки:
Предсказание по пессимистическому сценарию
image

Видите, мы в 50% случаев будем завершать на 60 день. Т.е. работа сделана, а мы заказчику выкатили срок в 97 дней. Многие заказчики согласятся оплатить вам такой резерв? Или вот еще, вы участвуете в тендере и говорите что сделаете за 97 дней стоимость работы вашей фирмы X рублей в день, т.е. цена 97*Х, а другой поставщик предложит стоимость 60*Х. Кому достанется тендер?
Это — конечно, общая проблема, именно поэтому коэффициенты и методику надо настраивать на конкретные случаи, общего решения быть не может. А из статьи был бы правильный вывод в том, что каждому заказчику надо донести возможность затяжки сроков, особенно, для нестандартных разработок. Для поточных разработок это всё легко решается на теории вероятностей — заложили срок и неустойки, и точно знаем, что неустоек в среднем — не более 3% или 10%. Но реальные задачи, если это не сайты по одной и той же методике — не такие, где-то можнго промахнуться, поэтому о неустойках стараются не говорить. Легче прервать работу с заказчиком, не признающим задержек в сроках, чем делать вид, что неопределённый по затратам и времени процесс для заказчика будет детерминирован.
Sign up to leave a comment.

Articles

Change theme settings