Определение состава работ
Целью урока является обучение принципам составления плана проектных работ в MS Project. Вы узнаете, как с помощью MS Project формировать список задач проекта, определять их длительности и зависимости между ними, как вводить в проект информацию об ограничениях по срокам исполнения задач.
Все описанные принципы будут проиллюстрированы практическими примерами, и во время урока мы определим состав работ собственного проекта.
Для создания уникального продукта или услуги (результата проекта) нужно осуществить некоторую последовательность работ. Задача планирования проекта заключается в том, чтобы достаточно точно оценить сроки исполнения и стоимость этих работ. Чем точнее дана оценка, тем выше качество плана проекта.
Чтобы дать точную оценку, нужно хорошо представлять состав работ проекта, то есть знать, какие именно работы нужно выполнить для получения его результата. Только после того, как составлен список проектных работ, оценивается длительность каждой из них и выделяются ресурсы, необходимые для их выполнения. И лишь затем можно оценить стоимость и сроки исполнения каждой задачи и, в результате сложения, общую стоимость и срок проекта. Вот почему определение состава работ является первым шагом при планировании проекта.
Определение состава проектных работ начинается с определения этапов (или фаз) проекта. Например, в проекте Издание номера журнала могут быть выделены фазы Планирование номера, Подготовка материалов, Верстка и Предпечатная подготовка.
После того как состав фаз и их результаты определены, нужно определить последовательность этих фаз относительно друг друга и крайние сроки их исполнения. Затем нужно определить, из каких работ состоят фазы, в какой последовательности исполняются эти работы и в какие крайние сроки нужно уложиться при их исполнении. То есть принципы планирования задач внутри фаз повторяют принципы планирования фаз внутри проекта.
Определять состав работ удобно в несколько шагов. Сначала создается скелет плана работ, состоящий из фаз, их результатов и нескольких основных задач. Потом в план добавляются остальные задачи, определяются их длительности и связи. Затем определяются ключевые даты проекта, устанавливающие крайние сроки достижения результатов проекта и другие ограничения по времени. Наконец, в план добавляется дополнительная информация о задачах.
Скелетный план работ
Создадим новый файл проекта и будем следовать методике планирования от даты начала. Используем стандартный календарь и в качестве даты начала проекта примем предлагаемую по умолчанию.
План работ лучше всего составлять в представлении Gantt Chart (Диаграмма Ганга). Для добавления задачи в план проекта нужно установить курсор в таблицу слева от диаграммы и ввести название задачи в поле Task Name (Название задачи).
После этого символизирующий задачу отрезок появится на диаграмме. На рис. 11.1 (файл 2.mpp) видно, как выглядит план проекта Издание журнала после того, как в пего были добавлены четыре основных фазы.
Рис. 11.1. Начинаем составлять план проекта Издание журнала
Добавление в план фазы не отличается от добавления задачи — любая задача автоматически становится фазой, как только у нее появляется вложенная задача, то есть задача, находящаяся на следующем уровне структуры плана (о структуре записей в таблицах см. раздел «Структурная фильтрация»). До тех пор пока у задачи нет вложенных задач, она не является фазой.
Чтобы поместить задачу на следующий (более низкий) уровень структуры, нужно установить курсор на строку с задачей и нажать на панели инструментов Formatting (Форматирование) кнопку со стрелкой вправо (или сочетание клавиш Alt+Shift+-»). Для перемещения задачи на предыдущий (более верхний) уровень структуры нужно нажать кнопку со стрелкой влево (или Alt+Shift+<- на клавиатуре).
ПРИМЕЧАНИЕ
Номера уровней структуры возрастают с увеличением степени вложенности задач. Например, основные фазы проекта и задачи верхнего уровня находятся на первом уровне структуры плана проекта. Фазы и задачи, составляющие фазы верхнего уровня, находятся на втором уровне структуры плана проекта и т. д.
Рис. 11.4. Фазы, состоящие только из завершающих задач, выглядят на диаграмме как завершающие задачи
Для того чтобы фазы стали выглядеть так, как им положено, добавим в них обычные задачи. При этом следует учитывать, что порядок задач в таблице (сверху вниз) обычно соответствует их временной последовательности. Задачи, расположенные выше в таблице, обычно исполняются раньше задач, расположенных ниже. Например, на рис. 11.5 (файл 6.mpp) в фазе Верстка журнала задача Верстка предшествует вехе Номер сверстан и поэтому размещена выше.
ПРИМЕЧАНИЕ
Размещать в таблице предшествующие задачи выше последующих не обязательно. Это принято делать исключительно для удобства восприятия, поскольку обычно список задач читается сверху вниз и логично, если задачи, расположенные далее по списку, следуют за теми, что расположены выше. Последовательность задач в календарном плане проекта определяется датами начала задач и связями между ними, а не расположением в таблице выше или ниже.
Теперь, когда скелетный план готов и вы знаете, как работать со всеми тремя типами задач MS Project, можно переходить к добавлению в план остальных задач и подфаз. На рис. 11.6 (файл 7.mрр) видно, как стал выглядеть наш план издания журнала после того, как в него были добавлены все проектные работы. Увеличилось число не только обычных задач, но и завершающих, поскольку в некоторые фазы были добавлены подфазы, каждая из которых имеет отражающую свой результат завершающую задачу.
Рис. 11.5. После добавления задач фазы в плане проекта выглядят так, как им положено
Рис. 11.6. Так выглядит план проекта после добавления в него всех задач
Когда мы определили состав работ, пора переходить к определению длительностей задач и связей между ними.
Определение длительностей задач
Длительность задач определяется значением, введенным в колонке Duration (Длительность). Как вы помните, вводить ее можно в часах, днях или неделях (см. раздел «Настройки отображения временных единиц» ). Длительность фаз вводить нельзя — она рассчитывается автоматически.
При создании задач MS Project автоматически задает им длительность в 1 день, добавляя после ее обозначения вопросительный знак (см. рис. 11.6). Вопросительный знак обозначает, что указанная длительность — Приблизительная (Estimated) и требует дальнейшего уточнения. После того как вы отредактируете значение, вопросительный знак пропадет. Если вы хотите пометить для себя, что указанную длительность задачи стоит уточнить, то можете сами добавить вопросительный знак. Например, если вы не уверены в длительности задачи в 1 день, то ее можно указать как Id? (1д?).
ПРИМЕЧАНИЕ
Для быстрого отбора задач с предварительной оценкой длительности можно воспользоваться фильтром Tasks With EstimatedOurations (Задачи с оценкой длительности).
После ввода длительности задачи MS Project пересчитывает дату ее окончания, прибавляя к дате начала задачи длительность и выходные дни (в соответствии с календарем проекта). Однако некоторые задачи выполняются круглосуточно и без выходных, после того как выполнение начато, например засыхание цементного раствора или выполнение расчетов компьютерной программой. В таком случае для обозначения длительности задачи используется символ е (п), соответствующий термину Elapsed days (Прошедшие дни). Например, для обозначения длительности в 14 дней в поле Duration (Длительность) нужно ввести 14ed (14пд). При вводе длительности таких задач можно применять и вопросительный знак. Например, если вы не уверены, что цементный раствор высыхает за 16 часов, и хотите уточнить это в дальнейшем, длительность можно указать как 16eh? (1бпч?).
Определение связей между задачами
Связь между двумя задачами определяет, каким образом время начала или завершения одной задачи влияет на время начала или завершения другой. Например, Окончательная сборка номера журнала может начаться только тогда, когда выполнена задача Обложка готова.
Задача, влияющая на другую, называется Predecessor (Предшественник), а задача, зависящая от другой, называется Successor (Последователь). Например, Обложка готова является предшествующей задачей, а Окончательная сборка — последующей.
Одна связь может объединять только две задачи, и при этом у одной задачи может быть несколько связей с другими задачами. Например, Окончательная сборка может начаться только после выполнения задач Обложка готова и Подготовка оглавления. Задача может иметь неограниченное число предшествующих и последующих задач.
Связи могут объединять и фазы, и все принципы организации связей между задачами применимы и к фазам. При этом связи могут объединять между собой и задачи, и фазы, например фаза может начинаться по завершении задачи.
В MS Project есть четыре типа связей между задачами. Связь типа Finish-to-start (Окончание-начало), или сокращенно FS (ОН), — наиболее распространенный тип зависимости между задачами, при которой задача В не может начаться, пока не завершена задача А:
Связь типа Start-to-start (Начало-начало), или сокращенно SS (НН), обозначает зависимость, при которой задача В не может начаться до тех пор, пока не началась задача А. Например, Техническое редактирование не может начаться раньше, чем Редактирование материалов, но и для того, чтобы начать Техническое редактирование, не обязательно дожидаться окончания Редактирования материалов. С помощью такой связи обычно объединяются задачи, которые должны выполняться почти одновременно.
Связь типа Finish-to-Finish (Окончание-окончание), или сокращенно FF (00), обозначает зависимость, при которой задача В не может закончиться до тех пор, пока не закончилась задача А. Обычно такой связью объединяются задачи, которые должны выполняться почти одновременно, но при этом одна не может закончиться, пока не завершена другая. Например, сдача-приемка программы идет одновременно с исправлением ошибок (найденных в процессе сдачи-приемки), и пока исправление ошибок не завершено, сдача-приемка тоже не может завершиться.
Связь типа Start-to-Finish (Начало-окончание), или сокращенно SF (НО), обозначает зависимость, при которой задача В не может закончиться до тех пор, пока не началась задача А. Обычно такая связь используется в том случае, когда А является задачей с фиксированной датой начала, которую нельзя изменить. В таком случае дата начала последующей задачи не изменяется при увеличении длительности предшествующей.
Связь создается перетаскиванием мыши с одного отрезка диаграммы Ганта на другой (см. раздел «Редактирование проектных данных на диаграмме Ганта»), при этом по умолчанию тип связи определяется как FS. Предшествующей задачей считается та, с которой началось перетаскивание, а последующей -та, на которой перетаскивание закончилось (на последующую задачу указывает стрелка в конце связи). Для удаления связи или изменения ее типа нужно дважды щелкнуть на диаграмме и произвести соответствующие операции в открывшемся диалоговом окне.
Влияние связей между задачами на план работ
Связи между задачами напрямую влияют на план работ. Например, если вы создадите две задачи и затем перетащите мышью связь с одной на другую (по умолчанию создастся связь типа FS (ОН)), то последующая задача на календарном плане займет место после первой задачи (строки 5-6 на рис. 11.7). Если теперь увеличить длительность предшественницы, то дата ее окончания будет перенесена на более поздний срок и автоматически на более поздний срок будет передвигаться и дата начала последующей задачи (строки 8-9).
Рис. 11.7. При установке связи типа FS (ОН) увеличение длительности предшествующей задачи приводит к переносу даты начала последующей на более поздний срок
Если же изменить тип связи между задачами на SF (НО) и направить связь в обратную сторону, то при увеличении длительности хронологически предшествующей задачи ее дата начала будет переноситься на более ранний срок, и при этом дата начала последующей задачи не изменится. Именно поэтому такой тип связи используется в тех случаях, когда в качестве последующей задачи выступает та, срок начала которой не должен измениться.
Например, после того как задачи В и А были соединены связью SF (рис. 11.8), дата начала последующей задачи (А) изменилась таким образом, чтобы дата ее окончания совпала с датой начала предшественницы (строки 5-6). А когда мы увеличили длительность задачи А (строки 8-9), программа перенесла ее дату начала на более ранний срок, с тем чтобы дата ее окончания по-прежнему совпадала с датой начала предшественницы.
Если задачи соединены связью типа SS (НН), то изменение длительности любой из них приводит к изменению даты окончания только редактируемой задачи.
То есть наличие такой связи между задачами не влияет на алгоритм расчета длительности и сроков исполнения (рис. 11.9).
Рис. 11.8. При наличии связи типа SF (НО) изменение длительности хронологически предшествующей задачи не влияет на дату начала последующей задачи
Рис. 11.9. При наличии связи типа SS (НН) изменение длительности одной задачи не влияет на сроки исполнения другой
Если между задачами имеется связь типа FF(OO), MS Project старается синхронизировать даты окончания связанных задач. Если увеличивается длительность предшествующей задачи, то автоматически переносятся даты начала и окончания последующей задачи (чтобы дата окончания последующей задачи соответствовала дате окончания предшествующей). Например, на рис. 11.10 в строках 8-9 видно, что после увеличения длительности предшествующей задачи (А) дата окончания последующей задачи (В) была изменена. При этом длительность задачи В не изменилась.
Если же изменяется дата окончания последующей задачи (как в строках 11-12 на рис. 11.10), то дата окончания предшествующей задачи не изменяется, и задачи завершаются в разные дни. То есть при изменении длительности последующей задачи переносится только дата ее окончания.
Но если длительность предшествующей задачи больше длительности последующей, то изменение длительности последней происходит не за счет переноса даты ее окончания на более поздний срок, а за счет переноса даты ее начала на более ранний. Например, на рис. 11.10 в строках 8-9 длительность задачи А больше, чем В. Поэтому при увеличении длительности задачи В (строки 14-15) на один день дата начала этой задачи переносится на одни день назад, с 28.02.02 на 27.02.02.
Рис. 11.10. Принцип расчета длительностей MS Project для типа связи FF (00)
Использование задержек и опережений
Часто в жизни зависимости между задачами бывают немного более сложными, чем Finish-to-start (Окончание-начало). Например, между задачей «Покраска стен» и «Развешивание картин» должен пройти день, чтобы краска успела высохнуть. Для того чтобы описать такую зависимость между задачами, в MS Project используется параметр Запаздывание (Lag). Например, в случае с покраской стен запаздывание между задачами должно составить 1 день.
Запаздывание является свойством связи и может быть указано в диалоговом окне определения свойств связи (см. раздел «Редактирование проектных данных на диаграмме Ганта»). Запаздывание можно вводить как длительность (например, 1 день) или как процент от длительности предшествующей задачи. Например, если предшествующая задача продолжается 4 дня, то запаздывание в 25% будет равняться 1 дню.
Иногда для начала выполнения следующей задачи не нужно дожидаться полного окончания предыдущей. Например, можно начинать клеить обои, когда штукатурка положена хотя бы на некоторых стенах в доме. В таком случае следует использовать Опережение (Lead). Опережение вводится так же, как и запаздывание, но с отрицательным знаком, например опережение в 1 день указывается как -Id (-1д), а опережение в 50% (то есть следующая задача начинается, когда предыдущая выполнена наполовину) — как -50%.
Рис. 11.11. Использование задержек и опережений при связи типа FS (ОН)
На рис. 11.11 представлен пример использования задержек и опережений вместе со связью типа FS (ОН). Задачи в строках 5-6 соединены обычной связью без задержки. В строках 8-9 было добавлено запаздывание в 1 день, и дата начала задачи В автоматически была перенесена на 1 день позже, с 27.02.02 на 28.02.02.
В строках 11-12 запаздывание было изменено на 100%, то есть на длительность предшествующей задачи (А). Поскольку длительность А равняется 2 дням, то дата начала В была перенесена с 27.02.02 (строки 5-6) на 01.03.02 (в феврале 2002 г. 28 дней). В строках 14-15 при сохранении параметров задержки мы увеличили длительность задачи А на 1 день (до 3 дней), и дата начала В была перенесена еще позже, на 05.03.02 (на 1 день позже теперь заканчивается А, плюс запаздывание в 3 дня, плюс два выходных дня).
В строках 17-18 используется опережение в 1 день. В результате начало задачи В, которое в строках 5-6 значилось как 27.02.02, теперь перенесено на 26.02.02. В строках 20-21 используется опережение в процентах (50%). Поскольку 50% от длительности А составляет 1 день, то дата начала В в строке 21 такая же, как и в строке 18. Но при увеличении длительности А в строке 23 до 4 дней длительность опережения автоматически увеличилась до 2 дней, и дата начала В автоматически изменилась на 27.02.02 (28.02.02 заканчивается А, и если бы не использовалось запаздывание, то В началась бы лишь 01.03.02; но так как запаздывание есть и равняется 50% длительности А, то есть 2 дням, то дата начала переносится на 27.02.02).
Как видно из примеров, особенно удобно указывать запаздывания и опережения в процентах от длительности предшествующей задачи, так как при ее изменении MS Project автоматически перенесет дату начала последующей задачи на соответствующий день.
Мы уже знаем способы создания и редактирования связей с помощью мыши. Однако это не единственная возможность, предоставляемая MS Project для работы со связями. Их можно редактировать прямо в таблице, куда вводятся данные, в особой форме или в диалоговом окне определения свойств задачи. Кроме того, создавать связи можно с помощью кнопки Link Tasks (Связать задачи) стандартной панели инструментов (см. представленный ниже рисунок). Для этого нужно выделить две или больше задач и нажать эту кнопку. Задачи будут соединены последовательно связью типа Finish-to-start (Окончание-начало). Например, если выделены задачи 1, 2 и 3, то после нажатия кнопки задача 2 будет следовать за задачей 1, а задача 3 — за задачей 2. Выделив все связанные задачи и нажав кнопку Unlink Tasks (Разорвать связи задач), можно быстро удалить все связи между ними.
Редактирование связей в таблице
Чтобы в процессе ввода задач быстро указать предшественника задачи, используется колонка Predecessors (Предшественники), по умолчанию включенная в таблицу Entry (Ввод). Например, на рис. 11.12 представлен фрагмент этой таблицы из файла проекта Издание номера журнала, где уже введена информация о связях между задачами (файл 5.mpp).
Рис. 11.12. Фрагмент таблицы из плана проекта с введенными связями между задачами
Как вы помните, связью по умолчанию является Finish-to-start (Окончание-начало), поэтому если в поле Predecessors (Предшественники) просто указать номер задачи1, это будет означать, что данная задача является предшественницей текущей. Например, предшественницей задачи Предварительная редколлегия является задача с номером 3, то есть Подготовка плана номера. Соответственно, Предварительная редколлегия начинается 01.11.01, то есть после того, как 31.10.01 завершена Подготовка плана номера.
В тех случаях, когда связь отличается от стандартной, в поле нужно указать номер предшествующей задачи и аббревиатуру, соответствующую типу связи (например, как в строках 26, 27 и 28). Если у связи есть запаздывание или опережение, то его нужно указать рядом с типом связи, используя знаки + или -. Если запаздывание или опережение используется со стандартной связью FS (ОН), то ее аббревиатуру тоже нужно указать (как в строке 12). А если у задачи есть несколько предшественниц, то связи с ними нужно указать через точку с запятой (как, например, в строке 30).
Колонка Predecessors (Предшественники) по умолчанию включена только в таблицу Entry (Ввод). Если вам покажется удобным редактировать данные о связях с ее помощью, то вы можете добавить ее в любую таблицу с информацией о задачах.
ПРИМЕЧАНИЕ
Для просмотра номеров последующих задач (то есть задач, для которых теку-щая задача является предшественницей) можно отобразить в таблице колонку Successors (Последователи).
Редактирование связей в форме
Работать с колонкой таблицы удобно, когда используется только связь по умолчанию, поскольку в этом случае достаточно вводить в нее номера соответствующих задач. Правда, это удобно делать, если предшественницы находятся по соседству и для их поиска не нужно прокручивать несколько экранов.
Если же вы используете в проекте разнообразные типы связей, то удобнее будет воспользоваться специальными диалоговыми окнами для работы с ними. Наиболее удобным является диалоговое окно Task Form (Форма описания задачи). Эта форма (см. раздел «Настройка отображаемой на форме информации») отображается, если, находясь в диаграмме Ганта, выбрать команду меню Window > Split (Окно > Разделить). Ее также можно вызвать из диалогового окна View > More Views (Вид > Все виды).
По умолчанию отображается форма для редактирования задействованных в задаче ресурсов и связей с предшественницами, но с помощью контекстного меню формы можно вызвать диалоговое окно Predecessors & Successors (Предшественники и последователи), в котором можно редактировать связи выбранной задачи как с предшествующими, так и с последующими задачами (рис. 11.13, файл 5.mpp). Форма разделена на две таблицы с одинаковой структурой, содержащие колонки с номером задачи, ее названием, типом связи и величиной задержки. Левая таблица содержит информацию о предшественницах, а правая — о последующих задачах.
Номер задачи берется из первой колонки, выделенной на рисунке серым фоном.
Рис. 11.13. Редактирование связей с помощью формы описания задачи
Чтобы удалить связи из таблицы, нужно установить курсор на строку с информацией о связи и нажать клавишу Delete. Для добавления связи нужно установить курсор на свободную строку в таблице и в раскрывающемся списке выбрать название задачи, с которой нужно связать текущую. Тип связи тоже выбирается из раскрывающегося списка.
Редактирование связей с помощью формы описания задачи удобно тем, что вся работа со связями осуществляется в одном окне с информацией о задачах и с диаграммой. Редактируя связи между задачами, можно прокрутить диаграмму или просмотреть последовательность задач, что очень удобно. Этих достоинств лишен третий способ редактирования связей, о котором пойдет речь далее.
Редактирование связей в диалоговом окне сведений о задаче
В диалоговом окне информации о задаче (оно открывается с помощью двойного щелчка на названии задачи в таблице) содержится вкладка Predecessors (Предшественники), на которой можно редактировать связи с предшествующими задачами (рис. 11.14, файл 5.mpp).
Вкладка содержит таблицу, аналогичную той, что размещена на форме описания задачи, и для работы с ней нужно применять те же приемы. Диалоговое окно сведений о задаче удобно использовать, когда нужно отредактировать связи одной или двух задач. При работе со связями большего числа задач удобнее использовать форму.
Рис. 11.14. Вкладка Predecessors (Предшественники) в диалоговом окне сведений о задаче
Рис. 11.15. Такой вид принял план проекта после указания длительностей задач и связей между задачами
После того как мы указали длительности задач и определили связи между ними, план проекта Издание номера журнала принял вид, представленный на рис. 11.15 (файл 9.mpp). Теперь нужно переходить к определению основных дат и крайних сроков проекта.
Дата начала проекта
Определять ключевые даты проекта начнем с определения даты начала проекта. Внимательный читатель заметил, что мы не сделали этого при определении проекта, и поступили мы так с целью продемонстрировать один из алгоритмов, используемый в MS Project для построения расписания.
Дата, предложенная MS Project по умолчанию, — 20.10.01. Мы ее оставили, и в результате все новые добавленные в план задачи начинаются с 22.10.01 (первый рабочий день после субботы 20.10.01). То есть если не указать задаче определенную дату начала и не связать ее с другой задачей, то MS Project приравнивает ее к дате начала проекта. Так, в нашем плане (см. рис. 11.15) только задача Сбор предложений от авторов начинается 22.10.01, а все последующие задачи связаны с ней и поэтому начинаются позже, хотя первоначально, пока связи не были расставлены, все задачи (см. рис. 11.6) начинались 22.10.01.
Пусть наш проект будет начинаться после новогодних праздников 10.01.2002. Откроем диалоговое окно определения проекта с помощью команды меню Project > Project Information (Проект > Сведения о проекте) и изменим значение параметра Start date (Дата начала) на 10.01.2002. После этого план проекта автоматически перестроится (рис. 11.16, файл 9_1.mрр).
Этот пример демонстрирует нам, как MS Project работает с расписанием проекта. Дата начала новой задачи, если не указать ее самостоятельно, приравнивается к дате начала проекта или ближайшему к ней рабочему дню. Если новая задача принадлежит фазе, то дата ее начала приравнивается к дате начала фазы. После того как задача соединена связью с другой задачей, ее дата начала переносится в соответствии с типом связи. Даты окончания задач рассчитываются путем прибавления к дате начала длительности задачи и нерабочих дней проектного календаря.
Зачем мы привели этот пример? Дело в том, что типичной ошибкой при работе с MS Project является определение даты начала или окончания задач «вручную» путем выбора нужной даты в поле Start (Начало) или Finish (Окончание) в таблице. Если так сделать, то введенная дата будет жестко привязана к задаче, и изменение даты начала или окончания проекта, фазы или связанных задач не приведет к автоматическому перемещению задачи.
Например, если вы установите дату начала первой задачи на 11.01.02 и затем измените дату начала проекта на 12.01.02, то первая задача все равно будет начинаться 11.01.02, то есть останется за временными рамками проекта. Еще хуже, если случайно будет зафиксирована дата начала или окончания задачи в середине плана. В таком случае изменение длительности задач в начале плана может не привести к автоматическому изменению связанных задач, находящихся в плане после задачи с зафиксированной датой. Поэтому при планировании в MS Project стоит довериться программе и управлять положением задач на временной оси с помощью связей.
Рис. 11.16. После изменения даты начала проекта внешний вид плана остался прежним, изменились лишь даты начала и окончания задач
Ограничения
Теперь, когда вы предупреждены о том, что вводить даты начала или окончания задач вручную без особой надобности нельзя, рассмотрим, как можно использовать привязывание задач к определенным датам при составлении плана.
Привязывание задачи к определенной дате в MS Project осуществляется при помощи элемента Constraint (Ограничение). Используя ограничения, можно, например, указать, что задача должна начаться в определенный день или закончиться не позднее определенной даты.
Определяя длительности задач и связи между ними, вы даете программе гибкость при перерасчете плана проекта в случае изменения расписания. Введение ограничений понижает эту гибкость, и в MS Project выделяется несколько типов ограничений (табл. 11.1) в зависимости от того, насколько они влияют на гибкость расчетов.
Два наиболее негибких ограничения в MS Project, привязывающие задачу к определенной дате, — это Must Start On (Фиксированное начало) и Must Finish On (Фиксированное окончание). Использовать негибкие ограничения нужно тогда, когда задача обязательно должна начаться или закончиться в определенный день, например, если срок исполнения задачи обусловлен договором и не может быть нарушен.
Применение ограничения к задаче, которая зависит от другой (то есть имеет задачу-предшественницу), может привести к нежелательным результатам. Например, задача «Закладка фундамента» должна начаться, когда закончится «Рытье котлована». Предположим, что «Рытье котлована» будет закончено 10-го числа. Если вы введете негибкое ограничение, указывающее, что «Закладка фундамента» должна начаться 10-го, а потом «Рытье котлована» закончится ранее, то MS Project не сможет за счет быстрого исполнения предыдущей задачи передвинуть «Закладку фундамента» на более ранний срок и помочь спланировать скорейшее завершение проекта.
Как ограничения влияют на расписание
Когда требуется контролировать дату начала или конца задачи, вы можете добавить ограничение. Гибкие ограничения учитывают связи между задачами, чтобы перенести задачу как можно раньше или как можно позже, насколько позволяет связь. Например, задача с ограничением As Soon As Possible (Как можно раньше) и связью FS (ОН) будет начинаться сразу по завершении предшественницы.
Ограничения со средней гибкостью запрещают задаче начаться или окончиться до или после выбранной даты. Например, задача с ограничением Start No Later Than (Начало не позднее) на 17 марта и связью типа FS (ОН) с другой задачей может начаться в любое время, если ее предшественница закончится, например, до 15 июня, но не может быть начата после 17 марта.
Негибкие ограничения не подвергаются влиянию связей и «привязывают» задачу к выбранной вами дате. Например, задача с ограничением Must Start On (Фиксированное начало) на 10 апреля и связью типа FS (ОН) с другой задачей всегда будет находиться в расписании на 10 апреля вне зависимости от того, закончится ее предшественница раньше или позже.
Таблица 11.1. Типы ограничений в MS Project
Тип ограничения
|
Влияние на расписание
|
Описание
|
As Soon As Possible (ASAP), Как можно раньше (КМР)
|
Гибкое
|
С этим ограничением MS Project размещает задачу в расписании как можно раньше с учетом других параметров плана. Никаких дополнительных ограничений на задачу не распространяется. Это ограничение по умолчанию накладывается на все задачи, если проект планируется от даты начала
|
As Late As Possible (ALAP), Как можно позже (КМП)
|
Гибкое
|
С этим ограничением MS Project размещает задачу в расписании как можно позднее с учетом других параметров плана. Никаких дополнительных ограничений на задачу не распространяется.
Это ограничение по умолчанию накладывается на все задачи, если проект планируется от даты окончания
|
Finish No Later Than (FNLT), Окончание не позднее (ОНП)
|
Среднее
|
Это ограничение обозначает наиболее позднюю дату, когда задача должна быть завершена. При этом задача может быть завершена как в этот день, так и раньше него. Предшествующая задача не сможет «вытолкнуть» задачу с ограничением типа FNLT (ОНП) за дату ограничения.
Для проектов, планирующихся от даты окончания, это ограничение применяется, когда вы вводите дату окончания задачи
|
Start No Later Than (SNLT), Начало не позднее (ННП)
i
|
Среднее
|
Это ограничение обозначает наиболее позднюю дату, когда задача может начаться. Задача может начинаться раньше или в этот день, но не позже. Предшественницы не смогут «вытолкнуть» задачу с ограничением SNLT (ННП) за дату ограничения.
Для проектов, планирующихся от даты окончания, это ограничение применяется, когда вы вводите дату начала задачи
|
Finish No Earlier Than (FNET), Окончание не ранее (ОНР)
|
Среднее
|
Это ограничение обозначает наиболее раннюю дату, когда возможно завершить задачу. Задача не может быть помещена в расписании так, чтобы заканчиваться ранее обозначенной даты.
Для проектов, которые планируются от даты начала, это ограничение применяется, когда вы вводите дату окончания задачи
|
Start No Earlier Than (SNET), Начало не ранее (НИР)
|
Среднее
|
Это ограничение обозначает наиболее раннюю дату, когда задача может начаться. Задача не может быть помещена в расписании ранее указанной даты.
Для проектов, которые планируются от даты начала, это ограничение применяется, когда вы вводите дату начала для задачи
|
Must Start On (MSO), Фиксированное начало (ФН)
|
Негибкое
|
Это ограничение обозначает точную дату, на которую дата начала задачи должна быть помещена в расписании. Другие факторы (связи между задачами, задержки или опережения и пр.) не могут повлиять на положение задачи в расписании
|
Must Finish On (MFO), Фиксированное окончание (ФО)
|
Негибкое
|
Это ограничение обозначает точную дату, на которую в расписании должна быть помещена дата окончания задачи. Никакие другие факторы не могут повлиять на эту дату
|
В проектах, планируемых от даты начала, по умолчанию все задачи имеют ограничение As Soon As Possible (Как можно раньше), а в проектах, планируемых от даты окончания, — As Late As Possible (Как можно позже).
Изменять ограничения по умолчанию можно, вводя дату начала или окончания задачи в колонках Start (Начало) и Finish (Окончание) в таблице Entry (Ввод) или любой другой таблице, содержащей эти колонки. После ввода даты MS Project установит ограничение в соответствии с табл. 11.1.
Например, на рис. 11.17 (файл 10.mpp) мы изменили дату начала задачи. Сразу после этого в поле Indicators (Индикаторы) появился значок, указывающий на наличие у задачи ограничения (вторая строка сверху, второй столбец). Кроме того, уголок измененной ячейки выделен и рядом с ячейкой отображается кнопка раскрывающегося списка.
Рис. 11.17. Установка ограничения путем изменения даты начала задачи в таблице
ПРИМЕЧАНИЕ
Получить информацию о типе созданного ограничения можно, наведя мышь на соответствующий ему значок в поле Indicators (Индикаторы).
СОВЕТ
В файле constraint.mpp приведены настройки диаграммы Ганта, в которой задачи с ограничениями выделены особым стилем отрезков. Используя эти настройки, вы можете создать фильтр для отбора задач с ограничениями. Это может пригодиться в проектах с большим количеством задач.
Значок и раскрывающийся список отображаются для предупреждения пользователей, желающих изменить дату «вручную», не зная о том, как это повлияет на параметры расчета проекта. Именно поэтому в верхней строке раскрывающегося списка выводится предупреждение о возможных негативных последствиях и далее предлагаются три варианта действий.
Пункт списка Choose different options to schedule the task (Выбрать другие параметры планирования задачи) откроет диалоговое окно для изменения параметров ограничения задачи. Пункт Keep the task constrained to (Оставить ограничение на) <описание текущего ограничения задачи> сохранит текущее ограничение и скроет его значок и список. А вариант Undo the constraint on (Отменить ограничение на) <описание текущего ограничения> and allow MS Project to reschedule the task (и разрешить MS Project перепланировать задачу) отменит изменения.
Вводя данные в таблицу, нельзя установить негибкие типы ограничений. Для этого, а также для редактирования установленных ограничений предназначена вкладка Advanced (Дополнительно) в диалоговом окне сведений о задаче (рис. 11.18, файл 10.mрр). Чтобы вызвать это диалоговое окно, нужно сделать двойной щелчок в таблице на строке задачи.
Тип ограничения выбирается в раскрывающемся списке Constraint type (Тип ограничения), а дата, которой ограничивается начало или окончание задачи, указывается в поле Constraint date (Дата ограничения).
Рис. 11.18. Настройка ограничений в диалоговом окне сведений о задаче
Иногда для отмены ограничения нужно удалить введенную дату в поле Constraint date (Дата ограничения). Но MS Project не дает оставить это поле пустым, и поэтому для удаления даты из поля нужно заменить ее на текст NA (НД).
Изменять ограничения задачи можно в любой из ее таблиц. Для этого в таблицу нужно добавить столбцы Constraint Date (Дата ограничения) и Constraint Type (Тип ограничения). Использовать эти столбцы удобно в фильтрах и при настройке стилей отрезков. Например, в файле constraint.mpp приведен пример форматирования диаграммы Ганта, при котором отрезки задач со средними и негибкими ограничениями выделены особым цветом.
Крайние сроки
Deadline (Крайний срок) — дата, обозначающая крайний срок исполнения задачи. Отличие использования крайнего срока от ограничений заключается в том, что наличие этой даты не влияет на расчет графика проекта. Если для задачи указан крайний срок, то на диаграмме Ганта отображается соответствующая отметка, и если выполнение задачи не укладывается в этот срок, то в колонке Indicators (Индикаторы) появляется особый значок.
Пример использования крайнего срока представлен на рис. 11.19. В строке 2 дата окончания задачи находится раньше крайнего срока. В строке 4 мы перенесли дату начала задачи с помощью ограничения (о чем свидетельствует значок в поле Indicators (Индикаторы)), и дата окончания задачи превысила крайний срок. Сразу же в ноле Indicators (Индикаторы) рядом со значком ограничения появился красный значок, свидетельствующий о том, что задача не укладывается в крайний срок. Сообщение, отображаемое при наведении мыши на этот значок (см. строку 6 — копию строки 4), довольно информативно, и сообщает о дате крайнего срока и дате окончания задачи.
Рис. 11.19. Индикатор отображается, когда задача не укладывается в крайние сроки
Для ввода крайнего срока задачи нужно воспользоваться вкладкой Advanced (Дополнительно) в диалоговом окне сведений о задаче (см. рис. 11.18). Крайний срок исполнения задачи определяется в одноименном поле, расположенном над полем выбора типа ограничения. Дату крайнего срока можно ввести или выбрать в календаре, а для удаления этой даты нужно ввести в поле NA (НД), как на рис. 11.18.
Что выбрать — ограничения или крайние сроки
Плюсы использования крайних сроков для обозначения сроков исполнения задач очевидны. Если в результате изменения плана проекта дата окончания задачи выходит за крайний срок, то MS Project отобразит соответствующее предупреждение. При этом принципы размещения задач в расписании не изменяются, и не надо ломать голову, догадываясь, почему при увеличении длительности задачи перемещается ее дата начала, а не окончания и т. п.
Кроме того, сохранение принципов размещения задач позволяет использовать MS Project как аналитический инструмент. Например, если вы установите ограничение типа MFO (ФО) или FNLT (ОНП) на дату окончания завершающей задачи проекта, то какие бы изменения не происходили внутри проектного плана, дата окончания всегда уложится в срок, хотя реально (исходя из работ внутри плана) уложиться в сроки не получится. Если же использовать крайний срок для определения даты окончания этой задачи, то при изменениях внутри плана вы увидите, когда реально завершится проект, и сможете рассмотреть несколько вариантов корректирующих действий и выбрать наиболее подходящее.
С другой стороны, использование индикатора для информирования о несоответствиях в плане не всегда удобно, так как это поле не включено в некоторые таблицы. Поэтому после существенных изменений в плане проекта придется проверять, не нарушен ли где-то крайний срок. Если же на задачу наложено ограничение, то при изменении плана, нарушающем ограничение, MS Project отобразит сообщение, которое проинформирует вас о сути несоответствия сразу после того, как вы совершите вызвавшее несоответствие действие. Поскольку крайний срок ограничивает дату окончания задачи, его удобно использовать в сочетании с ограничением на начало задачи, таким образом как бы ограничивая задачу с двух сторон. Например, если задача должна начаться 10-го числа и закончиться не позднее 15-го, то вы можете установить ограничение SNLT (ННП) на 10-е и крайний срок на 15-е число.
Когда вводить ограничения в план проекта
Ограничения должны быть в плане перед тем, как вы перейдете от планирования состава работ к планированию задействованных в проекте ресурсов. Это обусловлено тем, что срок исполнения работ обычно зависит от числа выделенных исполнителей, и наличие крайних сроков будет подсказывать, когда нужно выделить больше сотрудников на выполнение задачи, чтобы уложиться в сроки, а когда — меньше, если сроки не поджимают.
Основные ограничения по срокам исполнения основных фаз можно вводить уже после составления скелетного плана проекта. После того как в план добавлены все работы, нужно ограничить наиболее важные из них, и лишь затем переходить к определению связей и длительностей. Обычно уже на этом этапе можно выяснить, укладываются ли работы в сроки, и скорректировать длительность некоторых задач.
Пример использования ограничений и крайних сроков
Поскольку в нашем примере мы не определяли ограничения и крайние сроки на этапе составления скелетного плана работ, то начнем определять крайние сроки и ограничения в нынешнем плане работ (файл 10.mрр). В проекте Издание номера журнала мы будем использовать оба типа ограничений MS Project: и собственно ограничения, и крайние сроки, чтобы вы могли сравнить удобство их применения.
Предположим, что один номер журнала готовится к изданию в среднем 3 месяца. Значит, начиная подготовку номера в январе, мы должны завершить ее в конце апреля, например не позже 20-го числа, поскольку номер должны успеть напечатать до начала следующего месяца. Поскольку обычно эта дата указана в договоре с типографией, в которую передается журнал для печати, ограничение это очень жесткое. Соответственно, для завершающей задачи Номер готов к передаче в типографию нужно установить ограничение Finish No Later Than (Окончание не позднее) на дату 20.04.02.
При установке ограничения MS Project проверяет, нет ли у задачи связей, и если они есть, анализирует, может ли устанавливаемое ограничение привести к конфликтам. Если, по мнению программы, это возможно, то отображается подсказка (рис. 11.20), с помощью которой можно отменить установку ограничения (первый переключатель), продолжить, используя другое (оптимальное, с точки зрения MS Project) ограничение (второй переключатель), или продолжить, используя выбранное ограничение (третий переключатель).
При установленном флажке Project screcntips (Всплывающие подсказки) (см. раздел «Настройки просмотра»).
Рис. 11.20. Подсказка, предлагающая использовать другой тип связи
В нашем случае у задачи, на которую накладывается ограничение Finish No Later Than (Окончание не позднее), есть предшественница, и если она будет заканчиваться позже даты ограничения, то это вызовет конфликт. MS Project считает оптимальным в нашей ситуации использовать ограничение Finish No Earlier Than (Окончание не ранее), но оно нам совершенно не подходит.
ПРИМЕЧАНИЕ
Добавление ограничений после того, как определены связи между проектами, не совсем удобно, поскольку MS Project анализирует их на соответствие существующим связям. Именно поэтому лучше вводить основные ограничения в скелетный план до того, как определены длительности и зависимости между задачами.
Затем предположим, что в соответствии с договором с модельным агентством, предоставляющим возможность выбора модели, конкурсный отбор должен начаться 01.02.02 и проходить в течение 2 дней. Соответственно, зафиксируем эту дату ограничением Must Start On (Фиксированное начало) и длительностью в 2 дня. Поскольку эта задача не имеет предшественниц, установка ограничения прошла без сообщений от программы.
Кроме того, мы забыли включить в план важную задачу по публикации анонсов майского номера (который мы делаем в этом проекте) в предыдущем, апрельском номере. Этот номер сдается в типографию 20.03.02, и чтобы в него был включен вкладыш с рекламой следующего номера, анонсы нужно передать за 10 дней, то есть 11.03.02 (10.03.02 - воскресенье).
Включим задачу Передача рекламных анонсов в предыдущий номер в фазу Подготовка обложки и установим ее крайний срок на 11.03.02. Создать анонсы можно только тогда, когда хотя бы наполовину осуществлено редактирование материалов, поскольку окончательные названия статей и их содержимое определяются к этому моменту. Поэтому мы свяжем новую задачу зависимостью FS (ОН) с задачей Редактирование материалов (строка 22) и установим запаздывание (Lag) -50%. После этого мы увидим, что датой начала задачи является именно 11.03.02. Поскольку эта дата совпадает с крайним сроком, то максимальная длительность задачи, которую мы можем себе позволить, это 1 день. Установим ее для задачи.
Новая задача является, по сути, завершающей, поскольку после ее завершения достигается один из результатов проекта, который передается проектной командой «наружу». До сих пор для обозначения завершающих задач мы использовали нулевую длительность, однако во многих случаях, как и в этом, длительность завершающих задач может быть не нулевой. Чтобы пометить задачу с не нулевой длительностью как завершающую, нужно воспользоваться вкладкой Advanced (Дополнительно) в диалоговом окне сведений о задаче (см. рис. 11.18). На вкладке нужно установить флажок Mark task as milestone (Пометить задачу как веху).
Повторяющиеся задачи
Часто в проекте некоторые задачи проходят регулярно, например подготовка отчетов для заказчика проекта или встреча проектной команды. Для того чтобы описывать такие задачи в плане проекта, предназначены повторяющиеся задачи. Добавить их в проект можно с помощью команды меню Insert > Recurring task (Вставка > Повторяющаяся задача), открывающей диалоговое окно сведений о повторяющейся задаче (рис. 11.21, файл 11.mpp).
Рис. 11.21. Диалоговое окно сведений о повторяющейся задаче
В полях Task Name (Название задачи) и Duration (Длительность) указываются название и длительность новой задачи. Например, Редакционное собрание, которое мы хотим добавить в проект Издание номера журнала, длится 1 час. В разделе Recurrence pattern (Повторять) определяется интервал повторения задачи: Daily (Ежедневно), Weekly (Еженедельно), Monthly (Ежемесячно) или Yearly (Ежегодно).
В раскрывающемся списке выбирается, будет ли повторение происходить каждый раз по прошествии интервала (every (каждый)), или каждый второй (every other (каждый второй)), или каждый третий (every 3rd (каждый третий)) и т. д., например каждую неделю или каждый второй день. И наконец, рядом с раскрывающимся списком определяются дополнительные параметры: возможность повторять задачу в выходные дни (если повторение ежедневно), день недели (при еженедельном повторении), число или день и номер недели (при ежемесячном повторении) и дата или день, неделю и месяц при ежегодном. В нашем примере на рис. 11.21 мы создаем задачу с еженедельным повторением в пятницу.
В разделе Range of recurrence (Пределы повторения) выбирается дата начала повторяющейся задачи (Start (Начало)) и определяется, когда она будет завершена. Если вы хотите завершить задачу после определенного числа повторений, то нужно выбрать переключатель End after (Окончание после) и ввести число повторений. Если же задача должна закончиться к определенной дате, то нужно выбрать переключатель End by (Окончание) и ввести эту дату.
По умолчанию в поле End by (Окончание) отображается дата окончания последней задачи проекта (в нашем случае 19.04.02), и поэтому удобно заносить повторяющиеся задачи, которые должны повторяться до конца проекта, после того, как введены все остальные.
В разделе Calendar for scheduling this task (Календарь для планирования этой задачи) определяется, на основании какого календаря задача будет помещена в календарный план. По умолчанию, когда в раскрывающемся списке Calendar (Календарь) выбрано значение None (Нет), задача размещается па основании настроек проектного календаря и календаря задействованных ресурсов. Если же вы хотите использовать для расписания задачи особый календарь, то можно выбрать его в раскрывающемся списке. В таком случае становится доступен флажок Scheduling ignores resource calendars (He учитывать календари ресурсов при планировании) (Мы подробно рассмотрим действие этого флажка в разделе «Календарь задачи» следующей главы).
После того как сделаны все настройки, нужно нажать кнопку ОК, и программа создаст в проекте повторяющуюся задачу. При этом могут возникнуть непредвиденные проблемы, если, например, повторение задачи приходится на выходной. В нашем примере одна из пятниц, по которым должно было проходить редакционное собрание, выпадает на дату 8 марта, помеченную в проектном календаре как нерабочий день. Соответственно, при создании повторяющейся задачи MS Project обнаружил это и отобразил сообщение с возможными вариантами разрешения проблемы (рис. 11.22).
В диалоговом окне предлагается три варианта решения проблемы: перенести повторение задачи на ближайший рабочий день, нажав кнопку Yes (Да), не создавать повторения в нерабочие дни, нажав кнопку No (Нет), или отказаться от создания повторяющейся задачи, нажав Cancel (Отмена). Мы выбрали первый вариант, поскольку в таком случае в дальнейшем можно самостоятельно перенести повторение, которое пришлось на выходной, на более удобное время.
Рис. 11.22. Сообщение об ошибке
На рис. 11.23 представлена задача после того, как она была помещена в проект (файл 11.mpp). Сама задача в плане выглядит как фаза, а ее повторения — как ее вложенные задачи. При этом задача и повторения помечены специальными значками в поле Indicators (Индикаторы).
Рис. 11.23. Так выглядит добавленное повторяющееся задание в плане проекта
Для редактирования повторяющейся задачи нужно дважды щелкнуть на ее названии. При этом откроется знакомое нам диалоговое окно сведений о повторяющейся задаче (см. рис. 11.21). Для редактирования свойств ее повторений нужно воспользоваться теми же приемами, что и при редактировании обычных задач.
Суммарная задача проекта
Когда состав работ определен, наш план представляет собой четыре фазы, объединяющие все задачи проекта. Для каждой из них известна длительность, но у нас нет общей информации о длительности всего проекта. Получить ее сложением длительностей фаз нельзя, поскольку они частично выполняются одновременно, а значит, общая длительность проекта не равняется длительности его фаз. Чтобы собрать фазы в единое целое, можно создать еще одну фазу Издание номера журнала и включить в нее все уже существующие фазы. Но правильнее отобразить Суммарную задачу проекта (Project summary task) — особую задачу, специально предназначенную для объединения всех проектных активностей. Она отображается на диаграмме Ганта особым цветом, и MS Project особым образом работает с ней.
Чтобы отобразить суммарную задачу проекта, в общих настройках проекта (см. рис. 2.11) на вкладке View (Вид) нужно установить флажок Show project summary task (Показывать суммарную задачу проекта). Суммарная задача отобразится с названием, взятым из поля Title (Название) в свойствах файла, которые можно редактировать в диалоговом окне, открываемом командой меню File > Properties (Файл > Свойства).
Рис. 11.24. Суммарная задача отображается на диаграмме Ганта
Если в этом диалоговом окне заполнено поле Comments (Заметки), то его значение станет комментарием к суммарной задаче. При изменении названия суммарной задачи или комментария (Notes) к ней автоматически изменятся значения соответствующего поля в свойствах файла.
На рис. 11.24 отображается суммарная задача файла 12.mрр. Видно, что номер суммарной задачи проекта равен нулю, и нулю же всегда равен ее уровень в структуре проекта.