Сказки для менеджеров проектов.
2-я сказка (1-я сказка, все сказки).
Бубликов и медвежья каша
«…Выросла Маша и пошла работать кухаркой к медведям. Помимо прочего в обязанности Маши входила готовка каши для медвежьей семьи. Мамаша-медведица установила для Маши два KPI по этому виду деятельности: семья должны быть сытой, а потери крупы – минимальными. Осталось пройти испытательный срок.
Задача эта оказалась не из простых. Если мамаша-медведица ела всегда 2 килограмма каши и наедалась, то с мужской частью медвежьей семьи была сущая беда. Папаша-медведь мог в один присест умять 2-килограммовую миску каши и недовольно требовать добавки. Но в иной раз он не съедал и половины, отодвигая миску с довольным уханьем. Два медвежонка подражали родителю во всём. Каждый из них съедал ровно половину от того, что в этот раз съедал их непостоянный отец. В результате у Маши то оставалось около 2 килограмм недоеденной каши, то три несытых медведя. С каждым днём мамаша-медведица хмурилась всё сильнее, и Маша чувствовала, что вот-вот потеряет эту работу.
В одних случаях медвели съедали половину каши и наедались, в других съедали все и оставались голодными.
Однажды, гуляя перед сном по лесу, Маша увидала в густых кустах непонятное копошение. Раздвинув ветки, она обнаружила старичка ростом в несколько вершков и в смешной шляпе, напоминавшей гриб. Старичок запутался в колючих ветках, и сердито кряхтел, пытаясь освободиться. Наклонилась добрая Маша, и, обдирая руки о колючки, помогла старичку выбраться из куста.
- Спасибо тебе, Машенька, - стал кланяться старичок. – Как жаль, что такая хорошая девушка оказалась в такой неприятной ситуации! Ох уж эта медведица, ох уж этот медведь!..
- Вы, дедушка, наверное, волшебник, - догадалась Маша. – И имя моё знаете, и обстоятельства.
- Что ты, детка, какое тут волшебство. О тебе которую неделю весь фейсбук лесной судачит. Медведица в этом году уже восемь кухарок поменяла. У них раньше повар был постоянный, Илья Моисеевич. Вот он был сущий волшебник. Только выиграл он прошлой осенью зелёную карту в Изумрудный город и был таков. Но для тебя, Машенька, Илья Моисеевич оставил подарок: волшебное заклинание.
- Для меня? – удивилась Маша.
- Для своего преемника, - уточнил старичок и смутился. – Я должен был тебе сразу его передать, но закрутился как-то… К тому же, никому из твоих предшественников это заклинание не помогло. Оно очень трудное, слушай: «Рассинхронизируй вариабельность и собери переменную часть в общий буфер».
Маша, закрыв глаза, стала повторять заклинание.
- Да что ты всё бормочешь? – возмутился старичок.
- Заклинание пытаюсь запомнить.
- Зачем? Вот бумажка с записью.
Следующие три для Маша шептала заклинание и над кашей, и стоя за спиной у чавкающих над мисками медведей. Она даже рискнула сжечь листок с написанным кровью (пришлось порезать палец) заклинанием и добавить перетертый пепел в медвежью еду. Ничего не помогало. Интернета у медведей в доме не было, и Маша решила позвонить старшему брату Ивану, чтобы тот погуглил заклинание: вдруг найдётся способ его применения.
- Слушай, а если это не абракадабра, и в нём есть смысл? – спросил Иван. – Расскажи-ка мне снова свою историю про кашу.
- «Вариабельность», - продолжил брат после рассказа Маши, - как пишет Википедия, это изменчивость, способность существовать в разных вариантах. В твоём случае речь идёт о количестве съеденной каши, верно? Что происходит синхронно, то есть меняется одновременно?
- Они все, кроме мамаши, одновременно то хотят есть, то не хотят.
- А почему синхронно?
- Я думаю, медвежата берут пример с папаши.
- Вот и придумай для начала, как сделать так, чтобы они начали есть отдельно – может, это и значит «рассинхронизировать вариабельность».
Маше пришлось придумать целую историю, чтобы уговорить мамашу-медведицу разрешить медвежатам есть в детской. Спасло ситуацию то, что мамаша вспомнила: Илья Моисеевич тоже кормил медвежат отдельно. Результат оказался удивительным: теперь у каждого медвежонка аппетит пропадал независимо от другого.
Иван был в восторге: вариабельность удалось рассинхронизировать. «Абракадабра» имела смысл.
- Теперь разберемся с переменной частью. Что в их поведении не меняется, остается постоянным?
- Каждый раз медведи съедают не меньше половины миски?
- Точно. Что случится, если ты будешь сразу класть каждому только половину каши, а остальное…
- …принесу им в общем горшке? Конечно, теперь тот, у кого разыгрался аппетит, сможет съесть полторы миски, а другой, если он не голоден, будет совсем не против!
Теперь в трёх случаях из четырёх медвежата были сыты без увеличения расхода крупы. Проблема оставалась в двух случаях из четырёх: когда оба ели без аппетита, каша оставалась, и когда оба оказывались слишком голодными, каши не хватало.
Теперь в 3 случаях из 4 медвежата были сыты и в 3 случаях из 4 кашу е приходилось выбрасывать.
Но скоро, убирая со стола недоеденную папашей-медведем кашу, Маша поняла, как улучшить результат. В следующий раз она положила папаше в миску только половину каши, а вторую половину оставила в горшке. Ей, конечно, пришлось побегать между детской и столовой, чтобы разносить добавку желающим, но результат оказался превосходным: лишь однажды за неделю все трое остались голодными, и еще один раз в горшке осталось почти 2 килограмма каши.
Варианты кормления медведей.
Было (первое число - потребление, кг каши, второе - аппетит):
Отец-медведь | 1-й медвежонок |
2-й медвежонок |
Всего съели |
Остаток от 4 кг каши |
|
2/3 | 1/1,5 | 1/1,5 | 4 | 0 | |
1/1 | 0,5/0,5 | 0,5/0,5 | 2 | 2 |
3 голодных медведя в половине случаев, средний остаток каши = 1 кг.
Стало за счет создания "буфера" каши:
Отец-медведь | 1-й медвежонок |
2-й медвежонок |
Всего съели |
Остаток от 4 кг каши |
|
2/3 | 1/1,5 | 1/1,5 | 4 | 0 | |
2/3 | 0,5/0,5 | 1,5/1,5 | 4 | 0 | |
2/3 | 1,5/1,5 | 0,5/0,5 | 4 | 0 | |
3/3 | 0,5/0,5 | 0,5/0,5 | 4 | 0 | |
1/1 | 1,5/1,5 | 1,5/1,5 | 4 | 0 | |
1/1 | 0,5/0,5 | 1,5/1,5 | 3 | 1 | |
1/1 | 1,5/1,5 | 0,5/0,5 | 3 | 1 | |
1/1 | 0,5/0,5 | 0,5/0,5 | 2 | 2 |
Отец-медведь голоден в 3 случаях из 8, 2 медвежонка - в 1 случае из 8. Средний остаток каши = 0,5 кг.
- Я уже думала выгнать тебя до окончания испытательного срока, - сказала мамаша-медведица. Мы выбрасывали четверть приготовленной тобой каши и при этом в половине случаев все мои медведики оставались голодными. Но теперь ты превзошла даже Илью Моисеевича! Потери сократились в 2 раза, и в 2,5 раза выросла сытость!
- Я знаю, как улучшить эти показатели, - улыбаясь, сказала Маша.
- Как?
- Заведите ещё двух медвежат!»
***
- У меня двоякое чувство, - сказала Людмила Прокофьевна, когда Анатолий Ефремович замолчал. – С одной стороны, этот стиль в духе Хрюши и Степаши несколько раздражает. С другой – идея о том, что случайные колебания результативности отдельных элементов могут компенсировать друг друга, если они независимы и у них есть общий буфер-накопитель, проиллюстрирована довольно прозрачно. Надеюсь, ты теперь объяснишь, как собираешься кормить этой кашей команду разработчиков под руководством Бубликова, и тогда я совсем примирюсь и с Машей, и с её медведями.
- «Заклинание», приведенное в сказке, – основная концепция управления вариабельностью в методе Critical Chain Project Management. «Каша», которую «едят» наши разработчики, - Анатолий Ефремович, объясняя, изображал кавычки двумя пальцами поднятых рук, - это время исполнения работ, которое, как ты сама сказала, непредсказуемо колеблется у команды Бубликова от 3 дней до 2 недель.
- Мы можем выделить в плане проекта этапы с независимыми колебаниями сроков, - продолжал Анатолий Ефремович, вооружившись бумагой и фломастерами. - Вот смотри: это четыре разработчика последовательно выполняют работы; длина прямоугольника – время выполнения.
Сиреневым закрашена постоянная часть – т.е. минимальное время работы, оранжевым – переменная. На второй итерации мы собираем всё переменное время выполнения проекта в конце его тайминга в общий буфер, а на третьей сокращаем этот запас-буфер примерно вдвое, в расчёте на то, что случайные колебания продолжительности будут компенсировать друг друга.
- А что это за «светофор» в конце?
- Мы разделим буфер времени проекта – общий «горшок с кашей» - на три зоны, как в светофоре, и будем контролировать, как по мере выполнения работ уменьшается количество «каши» в котелке-буфере. Пока «каша», то есть запас времени, в зелёной зоне – Бубликову можно не беспокоиться за сроки. Если запас перешёл в жёлтую зону – ему нужно разобраться, какие работы осталось выполнить, сделать репрогноз их выполнения и подготовить меры для «аврала». И если работа еще не завершена, а «каши» уже осталось на донышке, Бубликов реализует подготовленные авральные мероприятия.
- Звучит слишком просто, чтобы поверить в лёгкость такого революционного ускорения и стабилизации срока работ.
- Ты права. Бубликову придётся довольно серьёзно изменить порядок и характер взаимодействий в своей команде. Эта система заработает только в том случае, если каждый сможет начинать работу, как только она появится у него на «входе», выполнять её максимально быстро и оперативно информировать следующих по цепочке об ожидаемых реальных сроках выполнения работ. Но есть ещё одна проблема, которую Бубликов не сможет решить без нашего участия.
- Какая?
- О ней рассказывает следующая сказка. Потерпишь ещё немного «Хрюши и Степашки»?
- Если это сулит такие фантастические результаты, я готова стать их преданным фанатом.