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