Microsoft Project и мультиназначения
Статья Алексея Просницкого, РМР, MVP (Компания Leo Consulting), первоначально опубликованная здесь.
Данная статья посвящена темной стороне Microsoft Project, а именно его работе с мультиназначениями, когда на задаче назначено много ресурсов разных типов.
Мое знакомство с информационными системами управления проектами началось со Spider Project. Сложность продукта для неподготовленного пользователя компенсировалась стройной и понятной логикой расчетов, особенно в части множественного назначения ресурсов (рабочих, оборудования, механизмов и материалов) на задачи. Выполняя те или иные действия с назначениями, можно было быть уверенными в получении ожидаемого результата касательно расчетов загрузки ресурсов, их потребности, производительности и т.д. Концептуальному принятию продукта помогало полученное техническое образование, которое пять лет в университете через «Сопромат», «Термех» и «ТММ» вносило свой вклад в становление и разрушение личности.
Но прошли молодые годы, и я столкнулся с Microsoft Project…
Что такое Microsoft Project? Это не только диаграмма Ганта, графики, назначение ресурсов, формулы и отчеты с интуитивным и простым построением. Это «своя» математика работы с множественным назначением ресурсов на задачи.
Итак, давайте проведем исследование как Microsoft Project работает с множественными (мульти) назначениями, в части распределения трудозатрат между назначениями и по времени, в части расчета длительности.
Исходная информация – есть список задач, на которых мы будет тестировать разные варианты назначения.
Также есть список ресурсов (трудовых и материальных), на которых мы будет проверять работу Microsoft Project.
Анализ назначений материальных ресурсов
На задачи «Только материальные ресурсы» назначаем следующие ресурсы:
Первое, на что обращаешь внимание при назначение материальных ресурсов на задачи – количество назначений не влияет на длительность задачи. И это правильно.
Второе, что сбивает неофитов – значение трудозатрат по задаче остается без изменений, т.е. остается равным нулю. В отчётах и базах данных, можно конечно-же получить информацию о материальных трудозатратах. Или с помощью PlanBridge).
Вроде все ок, но только на первый взгляд.
Давайте посмотрим, как Microsoft Project распределил во времени назначение. Для этого переключимся в представление «Использование задач».
Что мы видим? Что несмотря на то, что задача идет один день (8 часов), 15% единиц использования материалов списываются на тот день, когда работа не выполняется. И это со всеми типами задач.
Увеличим количество одного из материалов, например, бетона в два раза.
Что произойдет? Ничего. Новый объема материала просто равномерно распределится по длительности всей задачи.
Теперь, давайте введем факт. Представим, что мы потратили весь бетон.
Вау. Не готовая душа может вскрикнуть, вскочить и …
В зависимости от типа задач Microsoft Project по-разному считает % завершения по трудозатратам.
Если задача имеет тип «Фиксированная длительность», то Microsoft Project считает выполненные назначение. Т.е. если на задаче три материала, то доля каждого равна 33%. 33% рассчитываются как отношение фактических трудозатрат назначений к сумме фактических и оставшихся трудозатрат.
На типах «Фиксированные трудозатраты» и «Фиксированный объем ресурсов» Microsoft Project суммирует все назначения (м3, м2, тонны, штуки) и от общей суммы назначений рассчитывает % завершения по трудозатратам.
Скорее всего ни одного из значений % завершения по трудозатратам вам может не подойти.
Что делать? Можно использовать поле «Физический % завершения». Можно использовать надстройки, например, PlanBridge, которому можно задать основного (ведущего) ресурса. По основному ресурсу PlanBridge сможет рассчитать % завершения по трудозатратам на основании фактических трудозатрат основного ресурса и записать полученные значения в поля задач Microsoft Project. Что еще можно? Можно смириться.
Анализ назначений трудовых ресурсов
На задачи «Только трудовые ресурсы» назначаем следующие ресурсы:
Итак, что мы видим?
Тип задачи «Фиксированная длительность»
На задачах с «Фиксированной длительностью», длительность не изменилась, а трудозатраты равные логичным 80 часам. Почему логичным? Количество назначений (10 = 8 + 2) умножаем на 8 часов в день и получаем 80 часов.
При увеличении числа рабочих в два раза, Microsoft Project увеличивает трудозатраты на логичных 64 часа.
Но не логично, что он это делает на обоих случаях, с фиксированным и нефиксированным объемом работ. Почему не логично? Потому что с «фиксированным объемом работ» (effort driven) количество часов должно остаться неизменным и равномерно распределиться между всеми ресурсами.
Почему такое происходит? Потому что, фиксация «фиксированного объема работ» происходит только для единичных назначений, а не когда у вас много ресурсов одного типа.
Как быть, если вам нужно задать определенные трудозатраты на назначенных ресурсах?
Для задания трудозатрат назначений, вам нужно в нижней части представления вывести представление «Форма задач/Task form» и ввести количество часов по конкретным назначениям в поле «Трудозатраты» назначений и нажать «ОК».
Вы также через представление «Форма задач/Task form» можете назначать ресурсы, вводя последовательно единицы назначений (Units) и трудозатраты (Work).
Рекомендация по работе с трудовыми ресурсами и типом задачи «Фиксированная длительность»:
- Для получения ожидаемых результатов по данным трудозатрат пользуйтесь представлением «Форма задач/Task form» в которой вы можете задавать как объем ресурсов, так и их трудозатраты.
Тип задачи «Фиксированные трудозатраты»
На задаче типа «Фиксированные трудозатраты» длительность и трудозатраты составили, соответственно, почему-то полдня и 16 часов для десяти ресурсов.
Для ответа на данный вопрос, нужно сконцентрироваться на ваших шагах, связанных с назначением. Они следующие:
1. Вы выделяете два ресурса и одновременно назначаете их на задачу.
2. После назначение вы задаете 8 рабочих и 2 чернорабочих.
На шаге 1, Microsoft Project фиксирует два назначенных ресурса! При такой фиксации, Microsoft Project с учетом типа задач «Фиксированные трудозатраты» просто разделил длительность на два, выделив каждому ресурсу по 8 часов.
Т.е. сколько бы вы не добавляли людей на задачу, ее длительность не менялась, что довольно странно, учитывая тип задачи, а именно, при изменении назначения, меняется длительность при неизменных трудозатратах.
Ниже на рисунке вы видите логику, «зашитую» в Microsoft Project, а именно уменьшение длительности при увеличении числа назначений одного ресурса.
Легко можно сделать вывод, что если на задаче два разных ресурса, то что-то с логикой не так.
В нашем примере, когда на задачу назначено 8 рабочих и два разнорабочих, длительность не изменится при увеличении числа назначений по какому-то ресурсу до тех пор, пока мы не увеличим число назначений у меньшего числа назначенных ресурсов (в нашем случае, разнорабочих) до большего значения назначения, а именно, с двух до восьми для разнорабочих.
Вывод, который можно сделать - на задаче с типом «Фиксированные трудозатраты» длительность меняется только в случае, если единицы назначений разных назначений ресурсов равны! Т.е. вы можете поставить хоть сто рабочих на задачу, но пока будет два разнорабочих, длительность не меняется.
Знали ли вы, что для Microsoft Project важна последовательность действий?
Очистите назначения на задаче с типом «Фиксированные трудозатраты» и теперь назначьте сначала 8 рабочих, а потом 2 разнорабочих.
Ниже на рисунке, приведено две ситуации. В верхней части сначала были назначены восемь рабочих, а потом два разнорабочих, а в нижней сначала были назначены два разнорабочих, а потом восемь рабочих.
Т.е. разные значений итоговых трудозатрат, длительности и распределения трудозатрат между назначенными ресурсами.
Рекомендации по работе с трудовыми ресурсами и типом задачи «Фиксированные трудозатраты»:
- Вы задаете итоговые значения трудозатрат на задаче;
- Назначаете ресурсы с указанием единиц назначения.
Тип задачи «Фиксированный объем ресурсов»
При работе с типом задачи «Фиксированный объем ресурсов» наблюдается похожая логика работы Microsoft Project, как и при работе с типом задачи «Фиксированные трудозатраты».
Microsoft Project при одновременном назначении ресурсов на задачи воспринимает их как два ресурса, не сокращая длительности.
Т.е. если вы измените порядок назначения вы получите другие данные.
В примере ниже я сначала назначил восемь рабочих, и потом двоих разнорабочих.
Странным выглядит увеличение длительности на задачи с не «фиксированным объемом работ» (effort driven). Длительность задачи должна по крайней мере не измениться.
Логичным выглядит увеличение объема работа с не «фиксированным объемом работ» (effort driven), но не логичным увеличение всего на один час, а на два.
Т.е. «фиксированный объем работ» (effort driven) работает ожидаемо, когда у вас назначенные ресурсы имеют по единице назначения.
Рекомендации по работе с трудовыми ресурсами и типом задачи «Фиксированный объем ресурсов»:
- Указываете предварительную длительность задачи;
- Назначаете на задачу ресурс, который должен определять длительность и задаете объем ресурсов и количество трудозатрат. При этом произойдет расчет длительности задачи.
- Назначаете оставшиеся ресурсы.
Правда, даже при правильной рекомендации, может получиться так, что рабочие будут работать без помощников. Т.е. не происходит равномерное распределение назначенных ресурсов по всей длительности задачи.
А должно раз быть равномерное распределение, иначе вы получите неверные данные о доступности и загрузке ресурсов.
Можно, конечно, заняться заданием ручного профиля загрузки ресурсов, но это настолько приведет к увеличению трудоемкости по поддержке модели проекта, что выгоды от этого будут не всегда очевидны.
Анализ назначений трудовых и материальных ресурсов
Пришло время от частных случаев перейти к общему и самому распространённому, когда на задачу могут быть назначены как материальные, так и трудовые ресурсы.
На задачи «Микс назначений» назначаем следующие ресурсы:
Результаты расчетов назначения, вы можете видеть на рисунке (первоначально заданная длительность 5 дней).
Тип задачи «Фиксированная длительность»
Длительность задач с типом «Фиксированная длительность» не изменили своей длительности, что правильно, и правильно рассчитали трудозатраты.
Как понять правильно или нет?
Итоговые трудозатраты по задаче, в упрощении равны количеству назначенных ресурсов на календарь ресурса с учетом его доступности. Т.е. в нашем случае одно назначение в день дает 8 часов. Итого 10,1 единиц суммарных назначений умножаем на 8 часов и 5 дней - получаем 404,4 часов.
Особенно приятно отметить, что распределение всех ресурсов на задаче произошло равномерно, что даст итого правильные данные для анализа загрузки и доступности ресурсов.
Но снова мы сталкиваемся с такой проблемой, как очередность назначений.
Представим, что у нас на задаче только материальные ресурсы и мы сначала назначаем 8 рабочих с помощью диалогового окна «Назначение ресурсов/Assign Resources».
В результате мы имеем правильные и ожидаемые значения – пять дней и 320 часов.
Теперь назначим на задачи этапа «Фиксированная длительность» двух разнорабочих.
Результаты расчета на задаче с фиксированным объемом работ озадачивают. Почему-то не произошло распределение полученных 320 часов между имеющимися ресурсами и назначенными. В моей логике, число часов у рабочих должно было уменьшиться на 64, а у разнорабочих стать равным 64. Microsoft Project посчитал по собственному мнению.
Радует, что на задаче с не фиксированным объемом работ все посчиталось как ожидалось.
Назначим на задачи кран (0,05) с бетономешалкой (0,05).
Microsoft Project рассчитал трудозатраты по задаче так же странно, как и в предыдущем примере.
Выводы, который можно сделать для задач с фиксированной длительностью:
- Для Microsoft Project важна последовательность ваших действий (об этом правда вы должны уже помнить).
- В случае назначения ресурсов через окно «Назначение ресурсов/Assign Resources» лучше использовать тип с не фиксированным объемом работ
- Если вы хотите с самостоятельно определять трудозатраты, пользуйтесь представлением «Форма задач/Task From».
Тип задачи «Фиксированные трудозатраты»
После назначения ресурсов на задачу с типом «Фиксированные трудозатраты» получаем сумасшедшие сто дней.
Кроме того, в какой-то момент времени задачу перестают делать рабочие, потом разнорабочие, а потом пропадает вода(.
Попробуем последовательное назначение.
На рисунке приведены варианты последовательного назначения рабочих, разнорабочих, крана и бетономешалки.
Катавасия начинается после назначения крана и бетономешалки, соответственно. Малые единицы назначения приводят к увеличению длительности задачи без равномерного распределения назначенных ресурсов.
Т.е. сначала кран сам работает, а потом бетономешалка.
Также не понятно распределение трудозатрат (40 часов) между назначенными ресурсами (рабочие, разнорабочие и кран) и вновь назначенной бетономешалкой. Если до последнего назначения, распределения шло согласно единицам назначений, то при назначении бетономешалки, что-то пошло не так.
Выводы, который можно сделать для задач с фиксированными трудозатратами:
- Для множественных назначений ресурсов их лучше не использовать.
- Если вдруг очень хочется, то лучше назначать ресурсы с указанием количества ресурсов и трудозатрат через представление «Форма задач/Task From».
Тип задачи «Фиксированный объем ресурсов»
Как можно было убедиться ранее в примерах данной статьи, Microsoft Project не совсем корректно рассчитывает параметры назначений при одновременном назначении ресурсов.
Также на данном типе задач можно увидеть, что распределение назначений произошло не на всей длительности задач.
Выводы:
- Для множественного назначения ресурсов используйте представление «Форма задач/Task Form».
- Назначайте и рассчитывайте назначения последовательно.
- Первым назначайте для расчета длительности задачи основной/ведущий трудовой ресурс.
- Используйте тип «Фиксированная длительность» с «Не фиксированным объемом работ», как единственный, дающий нормальное временное распределение ресурсов для задач, длительность которых ограничена временными рамками.
- Используйте тип «Фиксированный объем ресурсов» с «Не фиксированным объемом работ», как единственный, дающий нормальное временное распределение ресурсов для задач, длительность которых должна рассчитываться от количества и трудозатрат ресурсов.