Ограничения задач
Ограничения (constraints) позволяют задать дополнительные правила планирования для задач, помимо зависимостей и длительности. Они определяют, когда задача может или должна начаться или завершиться. Гантика поддерживает 7 типов ограничений, совместимых с Microsoft Project и другими профессиональными инструментами управления проектами.
Зачем нужны ограничения
По умолчанию даты задач рассчитываются на основе зависимостей и длительности. Однако в реальных проектах часто возникают внешние факторы, которые накладывают дополнительные требования на расписание:
- Заказчик зафиксировал дату демонстрации или приёмки.
- Поставка оборудования возможна не ранее определённой даты.
- Регуляторные требования устанавливают крайний срок.
- Ресурс (специалист, помещение) доступен только в определённый период.
- Контрактные обязательства требуют начать или завершить работу к конкретной дате.
В таких случаях ограничения позволяют «привязать» задачу к конкретной дате, переопределяя стандартную логику планирования.
Таблица ограничений
| Ограничение | Код | Описание | Дата |
|---|---|---|---|
| Как можно раньше | ASAP | Задача планируется на самую раннюю возможную дату. Ограничение по умолчанию. | Нет |
| Как можно позже | ALAP | Задача планируется на самую позднюю дату, не задерживая последующие задачи. | Нет |
| Начало не ранее | SNET | Задача не может начаться раньше указанной даты, но может начаться позже. | Да |
| Начало не позднее | SNLT | Задача должна начаться не позднее указанной даты, но может начаться раньше. | Да |
| Окончание не позднее | FNLT | Задача должна завершиться не позднее указанной даты. | Да |
| Фиксированное начало | MSO | Задача должна начаться строго в указанную дату. | Да |
| Фиксированное окончание | MFO | Задача должна завершиться строго в указанную дату. | Да |
Подробное описание каждого ограничения
ASAP — Как можно раньше
Ограничение по умолчанию для всех новых задач. Планировщик размещает задачу на самую раннюю дату, допустимую зависимостями. Если у задачи нет предшественников, она начнётся в дату начала проекта.
Это наиболее гибкое ограничение — оно не мешает планировщику оптимально распределять задачи и рассчитывать критический путь. Используйте его в большинстве случаев.
ALAP — Как можно позже
Задача откладывается на максимально позднюю дату, при которой она не задерживает зависимые задачи. Полезно, когда нужно отложить закупку материалов или начало работ, чтобы не замораживать ресурсы и бюджет раньше времени.
SNET — Начало не ранее (Start No Earlier Than)
Устанавливает минимальную дату начала задачи. Задача может начаться в указанную дату или позже, но не раньше. Типичный пример: ожидание поставки оборудования, после которой можно приступать к монтажу.
Если зависимости требуют ещё более позднего начала, задача будет сдвинута дальше — SNET задаёт нижнюю границу, но не верхнюю.
SNLT — Начало не позднее (Start No Later Than)
Устанавливает крайний срок начала задачи. Задача должна начаться в указанную дату или раньше. Используйте, если работы должны стартовать до определённой даты по контрактным или организационным причинам.
FNLT — Окончание не позднее (Finish No Later Than)
Задача должна завершиться к указанной дате или раньше. Это ограничение дедлайна — используйте его для задач с жёстким сроком сдачи, установленным заказчиком или регулятором.
MSO — Фиксированное начало (Must Start On)
Жёсткое ограничение: задача должна начаться строго в указанную дату. Зависимости не могут сдвинуть дату начала ни раньше, ни позже. Используйте с осторожностью — это ограничение значительно снижает гибкость планирования.
Типичные сценарии: мероприятия с фиксированной датой (конференция, тренинг, аудит), работы, привязанные к внешним событиям, которые невозможно перенести.
MFO — Фиксированное окончание (Must Finish On)
Жёсткое ограничение: задача должна завершиться строго в указанную дату. Применяется для задач с абсолютным дедлайном, который не может быть изменён ни при каких обстоятельствах — например, дата сдачи проекта по контракту или дата вступления в силу регуляторных требований.
Классификация ограничений
| Категория | Ограничения | Характеристика |
|---|---|---|
| Гибкие | ASAP, ALAP | Не требуют даты, дают максимальную свободу планировщику. |
| Полужёсткие | SNET, SNLT, FNLT | Задают границу (не ранее / не позднее), но допускают сдвиг в одну сторону. |
| Жёсткие | MSO, MFO | Фиксируют точную дату. Зависимости не могут её изменить. |
Влияние ограничений на критический путь (CPM)
Ограничения напрямую влияют на расчёт критического пути и резервов времени (float):
- ASAP: не влияет на CPM — задача планируется стандартно на основе зависимостей.
- ALAP: задача может оказаться на критическом пути, так как её свободный резерв равен нулю.
- SNET: может увеличить общую длительность проекта, если вынуждает задачу начаться позже, чем предусматривают зависимости.
- SNLT / FNLT: могут создать отрицательный резерв (negative float), если зависимости не позволяют уложиться в срок. Отрицательный резерв сигнализирует о невозможности выполнить расписание.
- MSO / MFO: фиксируют дату, что может привести к конфликтам с зависимостями и отрицательному резерву. Задача с жёстким ограничением всегда находится на критическом пути.
Как задать ограничение
- Выделите задачу в списке задач или на диаграмме Ганта.
- Откройте панель деталей: кликните по задаче для открытия боковой панели с параметрами.
- Найдите поле «Ограничение»: в разделе параметров выберите нужный тип ограничения из выпадающего списка.
- Укажите дату ограничения (для типов, требующих дату): введите дату вручную или выберите из календаря.
- Проверьте результат: после применения ограничения даты задачи будут пересчитаны автоматически. Убедитесь, что результат соответствует ожиданиям.
Практические рекомендации
- ASAP по умолчанию: оставляйте большинство задач с ограничением ASAP — это обеспечивает максимальную гибкость и корректный расчёт критического пути.
- SNET для внешних зависимостей: используйте для задач, ожидающих поставку, разрешение или другое внешнее событие.
- FNLT для дедлайнов: используйте для задач с контрактным или регуляторным дедлайном.
- Минимизируйте жёсткие ограничения: MSO и MFO следует применять только для дат, которые абсолютно невозможно изменить. Избыток жёстких ограничений делает расписание негибким.
- Проверяйте конфликты: после добавления ограничений проверяйте наличие задач с отрицательным резервом — они сигнализируют о невозможности выполнить текущее расписание.
- Документируйте причину: добавляйте комментарий к задаче, объясняющий, почему установлено ограничение. Это поможет при пересмотре плана.