Сетевой график — это фундаментальный инструмент планирования и управления проектами, позволяющий визуализировать логические связи между работами, определить минимальную продолжительность проекта и выявить критические задачи. В данной статье мы подробно разберем процесс формирования сетевых графиков: от теории графов до практического расчета по методу критического пути (CPM) и методу PERT.
Теоретические основы: Проект как ориентированный граф
С математической точки зрения, сетевой график проекта представляет собой взвешенный ориентированный ациклический граф (DAG — Directed Acyclic Graph).
- Вершины (узлы, события), обозначают моменты начала или окончания работ (этапы, вехи). Часто нумеруются для идентификации.
- Дуги (ребра, связи) — представляют собой работы (активности), потребляющие время и ресурсы. Вес дуги — это длительность работы.
- Путь — последовательность связанных работ от начального до конечного события.
- Критический путь, самый длинный по длительности путь в сети. Он определяет минимально возможный срок завершения всего проекта.
Существует два основных способа представления:
- Модель «Работа на дуге» (Activity on Arrow, AOA): Работы — стрелки, события — узлы. Требует введения фиктивных работ (нулевой длительности) для отображения сложных зависимостей.
- Модель «Работа на узле» (Activity on Node — AON): Работы, прямоугольники/круги, связи — стрелки. Является современным стандартом (используется в MS Project, Primavera, Spider Project), так как интуитивнее и не требует фиктивных работ.
Классификация зависимостей (Типы связей)
Правильное определение логических связей — залог адекватности графика. В стандарте PMBOK и ISO 21500 выделяют 4 типа зависимостей (преемников):
| Тип связи | Обозначение | Описание | Пример |
|---|---|---|---|
| Финиш, Старт (Finish-to-Start, FS) | FS | Следующая работа начинается только после завершения предыдущей. Самый частый тип (90% связей). | Верстка начинается после завершения Дизайна. |
| Старт — Старт (Start-to-Start, SS) | SS | Работы начинаются одновременно (или с задержкой/опережением). | Написание кода и написание модульных тестов начинаются параллельно. |
| Финиш — Финиш (Finish-to-Finish, FF) | FF | Работы завершаются одновременно. | Тестирование и исправление багов заканчиваются вместе. |
| Старт — Финиш (Start-to-Finish, SF) | SF | Редкий тип. Завершение следующей работы зависит от начала предыдущей. | Смена дежурного персонала: новый дежурный начинает смену (Старт), старый заканчивает (Финиш). |
Важно: К любому типу связи можно добавить задержку (Lag) или опережение (Lead). Например, FS+2 дня означает, что следующая задача начнется через 2 дня после окончания предыдущей (время на высыхание краски). SS-1 день — вторая задача начинается за день до старта первой.
Этапы формирования сетевого графика
Этап 1: Декомпозиция проекта (WBS → Список работ)
Перед построением графика необходимо получить полный список работ из Структуры декомпозиции проекта (WBS). Каждая работа должна быть:
- Измеримой (имеет четкие критерии начала и конца).
- Ограниченной во времени.
- Назначенной за ответственным исполнителем.
Пример списка работ (на основе данных источника [1]):
- Задача A: Проектирование архитектуры (3 дня).
- Задача B: Разработка Backend API (5 дней).
- Задача C: Разработка Frontend (7 дней).
- Задача D: Настройка базы данных (4 дня).
- Задача E: Тестирование и отладка (2 дня).
- Задача F: Развертывание на Production (1 день).
Этап 2: Определение предшественников (Логика сети)
Для каждой работы задается список работ-предшественников. На этом этапе часто выявляются ошибки планирования: циклы (замкнутые петли), «висячие» работы (без предшественников или преемников, кроме старта/финиша проекта) и избыточные связи.
Матрица зависимостей для примера:
- A — Начало проекта (нет предшественников).
- B — Предшественник: A (FS).
- C — Предшественник: B (FS).
- D — Предшественник: B (FS) — параллельно с C.
- E — Предшественник: D (FS).
- F — Предшественники: C (FS), E (FS) — начало после завершения ВСЕХ предыдущих.
Этап 3: Оценка длительностей
Точность графика зависит от качества оценок. Основные методы:
- Экспертная оценка: Опрос специалистов, выполняющих работу (самый частый метод).
- Аналогия (Исторические данные): Использование данных похожих прошлых проектов.
- Параметрическая оценка: Расчет по формулам/нормативам (напр., строки кода / производительность).
- Трехточечная оценка (PERT / Beta-распределение): Учет неопределенности.
Формула: Te = (To + 4 × Tm + Tp) / 6
- To (Optimistic): Оптимистичная (лучший случай).
- Tm (Most Likely): Реалистичная (наиболее вероятно).
- Tp (Pessimistic): Пессимистичная (худший случай).
Также рассчитывается стандартное отклонение: σ = (Tp ౼ To) / 6. Это позволяет строить вероятностные прогнозы сроков проекта.
Этап 4: Построение топологии графа (Визуализация)
На этом этапе создается схема сети. Рекомендации по оформлению (AON):
- Начало проекта — один начальный узел (Start). Конец, один конечный узел (Finish).
- Стрелки направлены слева направо (по ходу времени).
- Избегайте пересечения стрелок (перекрещиваний) для читаемости.
- Группируйте работы по подпроектам/фазам (Swimlanes / Дорожки).
- На узле работы отображайте: ID, Название, Длительность, ES/EF, LS/LF, Float (Резерв).
Расчет временных параметров: Метод критического пути (CPM)
Алгоритм CPM состоит из двух проходов по сети: Прямого (Forward Pass) и Обратного (Backward Pass). Рассмотрим расчет на примере из источника [1].
Прямой ход (Forward Pass) — Ранние сроки
Движемся от начала проекта к концу. Цель: найти ES (Early Start) — раннее начало и EF (Early Finish) — раннее окончание.
Формулы:
- EF = ES + Duration
- ES следующей работы = max(EF всех предшественников) (для связи FS).
Расчет для примера (Start = День 0):
- A: ES=0, EF=0+3=3.
- B: ES=max(EF_A)=3, EF=3+5=8.
- C: ES=max(EF_B)=8, EF=8+7=15.
- D: ES=max(EF_B)=8, EF=8+4=12.
- E: ES=max(EF_D)=12, EF=12+2=14.
- F: ES=max(EF_C, EF_E)=max(15, 14)=15, EF=15+1=16.
Результат: Минимальная длительность проекта = 16 дней (EF финальной работы).
Обратный ход (Backward Pass) — Поздние сроки
Движемся от конца проекта к началу. Цель: найти LF (Late Finish) — позднее окончание и LS (Late Start) — позднее начало без срыва дедлайна проекта.
Формулы:
- LS = LF ⎻ Duration
- LF предшественника = min(LS всех преемников) (для связи FS).
- Для финальной работы: LF = EF (из прямого хода).
Расчет для примера (Project Deadline = 16):
- F: LF=16, LS=16-1=15.
- C: LF=min(LS_F)=15, LS=15-7=8.
- E: LF=min(LS_F)=15, LS=15-2=13.
- D: LF=min(LS_E)=13, LS=13-4=9.
- B: LF=min(LS_C, LS_D)=min(8, 9)=8, LS=8-5=3.
- A: LF=min(LS_B)=3, LS=3-3=0.
Расчет резервов (Float / Slack) и выявление критического пути
Общий резерв (Total Float, TF): Время, на которое можно задержать работу без сдвига даты окончания проекта.
Формула: TF = LS ౼ ES (или LF ౼ EF).
Таблица расчета резервов:
| Работа | Длит. | ES | EF | LS | LF | TF (Резерв) | Статус |
|---|---|---|---|---|---|---|---|
| A | 3 | 0 | 3 | 0 | 3 | 0 | Критическая |
| B | 5 | 3 | 8 | 3 | 8 | 0 | Критическая |
| C | 7 | 8 | 15 | 8 | 15 | 0 | Критическая |
| D | 4 | 8 | 12 | 9 | 13 | 1 | Некритическая |
| E | 2 | 12 | 14 | 13 | 15 | 1 | Некритическая |
| F | 1 | 15 | 16 | 15 | 16 | 0 | Критическая |
Критический путь: A → B → C → F (Сумма длительностей: 3+5+7+1 = 16 дней).
Некритический путь: A → B → D → E → F (Сумма: 3+5+4+2+1 = 15 дней). Резерв пути = 1 день.
Виды резервов (для углубленного анализа):
- Свободный резерв (Free Float): Задержка работы без сдвига раннего начала любой преемнической работы. FF = min(ES преемников) ౼ EF текущей.
- Независимый резерв (Independent Float): Задержка, если предшественники закончились как можно позже, а преемники начнут как можно раньше.
- Проектный резерв (Project Buffer): Время, добавленное к критическому пути для защиты от неопределенности (метод Цепочки критических ресурсов — CCPM).
Метод PERT (Program Evaluation and Review Technique)
В отличие от детерминированного CPM, PERT — вероятностный метод. Он используется в R&D и инновационных проектах с высокой неопределенностью.
Ключевые отличия PERT:
- Длительность работ — случайные величины (Beta-распределение).
- Рассчитывается не одна дата, а вероятность завершения к заданному сроку.
- Дисперсия критического пути: σ²_project = Σ σ²_критических_работ.
- Z-оценка для вероятности: Z = (Due Date ⎻ Te_project) / σ_project. По таблице нормального распределения находится вероятность.
Ограничение PERT: Считает, что критический путь фиксирован (не меняется при реализации), и игнорирует корреляции между длительностями работ. В современных инструментах (Primavera Risk Analysis, @RISK) вместо PERT используют Монте-Карло симуляцию.
Сжатие графика (Schedule Compression)
Если расчетный срок проекта не устраивает заказчика, применяют две техники:
Крашинг (Crashing / Ускорение за счет ресурсов)
- Добавление ресурсов к критическим работам (оплата сверхурочных, найм доп. людей, аренда мощного оборудования).
- Цель: Максимальное сокращение срока при минимальных затратах.
- Анализ: «Стоимость ускорения 1 дня» (Crash Cost per Unit Time) для каждой критической работы.
Фаст-трекинг (Fast Tracking / Параллелизм)
- Выполнение работ, изначально последовательных (FS), параллельно (SS или SS с опережением).
- Риск: Рост переработки (rework), если результаты предшественника изменятся к моменту старта преемника.
- Пример: Начало верстки (С) по макетам, пока дизайн (А) не полностью утвержден (SS+2 дня).
Программное обеспечение для формирования сетевых графиков
Ручной расчет применим только для обучения или микропроектов (< 20 работ). В профессиональной среде используются:
| Инструмент | Класс | Особенности сетевого графика |
|---|---|---|
| MS Project / Project Online | Корпоративный (SMB/Enterprise) | Вид «Сетевая диаграмма» (Network Diagram). Поддержка AON, 4 типов связей, задержек, критического пути, визуализация резервов. |
| Oracle Primavera P6 / Cloud | Enterprise (Строительство, Oil&Gas, Крупная инженерия) | Мощнейший движок планирования. Множественные календари, коды WBS/EPS, расчет Float Path (Multiple Float Paths), интеграция с Risk Analysis. |
| Spider Project | Российский Enterprise | Соблюдение ГОСТ/ISO, уникальный алгоритм расчета с учетом календарей ресурсов, моделирование «Что-если», импортозамещение. |
| PlanRadar, GanttPRO, Wrike, Asana | Облачные SaaS (Agile/Hybrid) | Упрощенные диаграммы Ганта с зависимостями. Подходят для IT, маркетинга, малой команды. Ограниченная аналитика резервов. |
| Python (networkx, pandas) / R / Excel | Кастомная разработка / Аналитика | Полный контроль алгоритмов. Используется для интеграции в BI-системы, автоматизации отчетности, нестандартных ограничений. |
Типичные ошибки при формировании сетевых графиков
- Отсутствие логических связей («Висячие» работы): Работа не имеет предшественника (кроме Старта) или преемника (кроме Финиша). Приводит к ложному критическому пути.
- Использование жестких ограничений (Hard Constraints): «Начать не ранее», «Закончить не позднее» ломают логику сети и делают расчет резервов некорректным. Используйте только логические связи (FS/SS/FF).
- Циклические зависимости (Loops): A → B → C → A. Программы обычно блокируют расчет, но в сложных схемах их трудно найти визуально.
- Игнорирование календарей: Расчет в «рабочих днях» без учета праздников, сменности, отпусков ключевых ресурсов.
- Смешивание уровней детализации: В одной сети работа «Построить дом» (180 дней) и «Купить гвозди» (1 час). Нужна иерархия (Summary tasks / Hammocks).
- Забывание про «Фиктивные» работы в AOA: Если используете стрелочную нотацию, без фиктивных связей нельзя корректно показать сходимость/расходимость путей.
Контроль и обновление графика в ходе проекта
Сетевой график — не статичный документ, а живая модель. Процесс контроля (Earned Value Management / EVM):
- Сбор фактических данных (Actuals): Actual Start, Actual Finish, % Complete, Remaining Duration.
- Ресейлинг (Rescheduling): Перерасчет сети с фактическими данными на дату отчета (Data Date / Status Date).
- Анализ изменений:
- Сдвинулся ли критический путь?
- Изменилась ли длительность проекта?
- Появились ли новые критические работы?
- Принятие решений: Реактвирование (Recovery Plan) — крашинг, фаст-трекинг, сокращение объема (Scope reduction), сдвиг дедлайна.
Лучшие практики (Best Practices)
- Правило 100%: Сумма работ на нижнем уровне WBS должна покрывать 100% объема родительского пакета.
- Правило «Один ответственный»: Каждая работа имеет одного владельца (Owner), отвечающего за сроки.
- Детализация по горизонту планирования: Ближайшие 1-2 месяца — детально (пакеты работ 1-10 дней). Дальше — планирующие пакеты (Planning Packages) или крупные этапы (Rolling Wave Planning).
- Документирование предположений (Assumptions Log): Почему длительность именно такая? Почему связь именно FS? Критично для аудита и защиты графика.
- Валидация графика (Schedule Health Check): Регулярная проверка метриками DCMA 14-point Assessment или NDIA/GAO Best Practices:
- Отсутствие «висячих» работ.
- Процент критических работ < 10-15% (если больше — график нереалистичен или перегружен связями).
- Отсутствие отрицательных резервов (Negative Float) на базовом плане.
- Разумное соотношение Lead/Lag.
Формирование сетевого графика — это не просто рисование стрелочек, а строгий математический и управленческий процесс. Качественный график отвечает на три главных вопроса проекта:
- Когда проект закончится? (Расчет CPM / PERT / Monte Carlo).
- На чем нужно сфокусироваться? (Критический путь, работы с малым резервом).
- Где есть гибкость? (Некритические пути, резервы времени для перераспределения ресурсов);
Владея методиками прямого и обратного прохода, пониманием типов связей и умением работать с резервами, менеджер проекта получает мощнейший инструмент для принятия обоснованных решений, управления ожиданий стейкхолдеров и успешной сдачи проекта в срок. Современные инструменты (Primavera P6, Spider Project, MS Project) автоматизируют рутину расчетов, но ответственность за логику сети и адекватность оценок полностью лежит на планировщике и руководителе проекта;
Статья подготовлена на основе открытых источников и стандартов управления проектами (PMBOK 7th Ed., ISO 21500, ГОСТ Р ИСО 21500-2019). Пример расчета взят из источника [1] (simpleone.ru, дата ). Контактные данные авторов источников скрыты (*) в соответствии с политикой конфиденциальности.