Что такое метод критического пути (КПМ)
Метод критического пути (Critical Path Method, CPM) — это один из фундаментальных инструментов управления проектами, позволяющий определить минимальную длительность проекта и выявить задачи, задержка которых неизбежно приведёт к срыву сроков всего проекта. В этой статье мы разберём теоретические основы КПМ, историю его создания, алгоритм расчёта и практические примеры, которые помогут вам применить метод в реальных проектах.
История создания метода
Метод критического пути был разработан в 1957 году специалистами компании DuPont — Джеймсом Келли (James E. Kelley Jr.) и Морганом Уокером (Morgan R. Walker). Перед ними стояла задача оптимизации графиков технического обслуживания химических заводов компании. Традиционные методы планирования не позволяли эффективно управлять сложными проектами с сотнями взаимозависимых задач.
Параллельно с работой DuPont, Военно-морские силы США разработали метод PERT (Program Evaluation and Review Technique) для управления программой создания подводных лодок Polaris. Хотя PERT и CPM решают схожие задачи, между ними есть ключевое отличие: CPM оперирует детерминированными (фиксированными) длительностями задач, тогда как PERT использует вероятностные оценки с тремя значениями — оптимистичным, наиболее вероятным и пессимистичным.
Со временем CPM стал стандартом де-факто в управлении проектами. Сегодня этот метод используется в строительстве, IT-разработке, производстве, научных исследованиях и практически в любой отрасли, где необходимо управлять сложными последовательностями работ.
Основные понятия
Прежде чем перейти к алгоритму расчёта, необходимо разобраться в ключевых терминах, которые используются в методе критического пути:
- Сетевая диаграмма (Network Diagram) — графическое представление проекта в виде направленного ациклического графа, где узлы — это задачи (или события), а рёбра — зависимости между ними.
- Ранний старт (Early Start, ES) — самый ранний момент времени, в который задача может начаться, с учётом завершения всех предшествующих задач.
- Раннее окончание (Early Finish, EF) — самый ранний момент времени, в который задача может быть завершена. Рассчитывается как ES + длительность задачи.
- Поздний старт (Late Start, LS) — самый поздний момент времени, в который задача может начаться без задержки общего срока проекта.
- Позднее окончание (Late Finish, LF) — самый поздний момент времени, в который задача может быть завершена без задержки общего срока проекта.
- Общий резерв (Total Float, TF) — максимальное время, на которое можно задержать задачу, не сдвигая дату завершения проекта. Формула: TF = LS − ES = LF − EF.
- Свободный резерв (Free Float, FF) — максимальное время, на которое можно задержать задачу, не влияя на ранние сроки начала непосредственных последователей.
- Критический путь — самая длинная последовательность задач от начала до конца проекта. Все задачи на критическом пути имеют нулевой общий резерв.
Алгоритм расчёта: прямой проход (Forward Pass)
Прямой проход — первый этап расчёта CPM. Он определяет ранние сроки начала и окончания для каждой задачи, двигаясь от начала проекта к его концу. Алгоритм следующий:
- Установите ES начальных задач равным 0. Задачи, не имеющие предшественников, могут начаться в момент старта проекта. Их ранний старт (ES) равен 0.
- Рассчитайте EF для каждой задачи. Раннее окончание вычисляется по формуле:
EF = ES + Длительность. Например, если задача начинается в день 0 и длится 5 дней, то EF = 0 + 5 = 5. - Определите ES следующих задач. Ранний старт задачи равен максимальному значению EF среди всех её предшественников:
ES = max(EF предшественников). Если у задачи несколько предшественников, она не может начаться, пока не завершится последний из них. - Повторяйте до конца проекта. Продвигайтесь от начала к концу графа, последовательно вычисляя ES и EF для каждой задачи. EF последней задачи проекта определяет минимальную длительность всего проекта.
Алгоритм расчёта: обратный проход (Backward Pass)
Обратный проход — второй этап расчёта. Он определяет поздние сроки начала и окончания, двигаясь от конца проекта к его началу:
- Установите LF последних задач. Позднее окончание завершающих задач проекта равно общей длительности проекта (EF финальной задачи, определённое на прямом проходе).
- Рассчитайте LS для каждой задачи. Поздний старт вычисляется по формуле:
LS = LF − Длительность. - Определите LF предыдущих задач. Позднее окончание задачи равно минимальному значению LS среди всех её последователей:
LF = min(LS последователей). Задача должна завершиться до того, как начнётся самый «срочный» из её последователей. - Повторяйте до начала проекта. Двигайтесь от конца к началу, вычисляя LF и LS для каждой задачи.
Определение критического пути
После выполнения прямого и обратного проходов для каждой задачи вычисляется общий резерв (Total Float):
TF = LS − ES = LF − EF
Задачи с нулевым общим резервом (TF = 0) являются критическими. Они не имеют запаса времени — любая задержка такой задачи напрямую увеличивает длительность всего проекта. Последовательность критических задач от начала до конца проекта и образует критический путь.
Практический пример
Рассмотрим проект из шести задач. Зависимости и длительности указаны в таблице ниже. Пройдём все этапы расчёта CPM.
Исходные данные
| Задача | Длительность (дни) | Предшественники |
|---|---|---|
| A | 3 | — |
| B | 5 | — |
| C | 4 | A |
| D | 2 | B |
| E | 6 | C, D |
| F | 3 | D |
Прямой проход
Начинаем с задач без предшественников — A и B. Их ES = 0.
- A: ES = 0, EF = 0 + 3 = 3
- B: ES = 0, EF = 0 + 5 = 5
- C: зависит от A → ES = EF(A) = 3, EF = 3 + 4 = 7
- D: зависит от B → ES = EF(B) = 5, EF = 5 + 2 = 7
- E: зависит от C и D → ES = max(EF(C), EF(D)) = max(7, 7) = 7, EF = 7 + 6 = 13
- F: зависит от D → ES = EF(D) = 7, EF = 7 + 3 = 10
Минимальная длительность проекта — 13 дней (максимальный EF среди финальных задач E и F).
Обратный проход
Устанавливаем LF финальных задач равным 13 и двигаемся назад.
- E: LF = 13, LS = 13 − 6 = 7
- F: LF = 13, LS = 13 − 3 = 10
- C: LF = min(LS(E)) = 7, LS = 7 − 4 = 3
- D: LF = min(LS(E), LS(F)) = min(7, 10) = 7, LS = 7 − 2 = 5
- A: LF = min(LS(C)) = 3, LS = 3 − 3 = 0
- B: LF = min(LS(D)) = 5, LS = 5 − 5 = 0
Результаты расчёта
| Задача | Длит. | ES | EF | LS | LF | TF | Критическая? |
|---|---|---|---|---|---|---|---|
| A | 3 | 0 | 3 | 0 | 3 | 0 | ✓ Да |
| B | 5 | 0 | 5 | 0 | 5 | 0 | ✓ Да |
| C | 4 | 3 | 7 | 3 | 7 | 0 | ✓ Да |
| D | 2 | 5 | 7 | 5 | 7 | 0 | ✓ Да |
| E | 6 | 7 | 13 | 7 | 13 | 0 | ✓ Да |
| F | 3 | 7 | 10 | 10 | 13 | 3 | Нет |
В данном примере существуют два критических пути одинаковой длины (13 дней):
- A → C → E (3 + 4 + 6 = 13 дней)
- B → D → E (5 + 2 + 6 = 13 дней)
Задача F имеет общий резерв 3 дня — она может быть задержана на срок до 3 дней без влияния на дату завершения проекта.
Преимущества CPM для руководителей проектов
Метод критического пути даёт проектному менеджеру целый набор мощных инструментов для принятия решений:
- Выявление узких мест. Критический путь показывает, какие именно задачи определяют длительность проекта. Это позволяет сфокусировать внимание и ресурсы на наиболее важных участках работы.
- Оптимизация расписания. Зная резервы времени некритических задач, можно перераспределить ресурсы с некритических задач на критические, сократив общую длительность проекта (техника «crashing»).
- Прогнозирование даты завершения. CPM даёт обоснованную оценку минимальной длительности проекта, основанную на объективном математическом расчёте, а не на интуиции.
- Управление рисками. Задачи на критическом пути — это зоны повышенного риска. Для них стоит предусмотреть резервные планы, буферные ресурсы и усиленный контроль.
- Контроль выполнения. В ходе выполнения проекта CPM помогает отслеживать отклонения от плана и оценивать их влияние на итоговые сроки. Задержка критической задачи на 2 дня — это задержка проекта на 2 дня.
- Обоснование решений. Данные CPM — отличная основа для коммуникации с заказчиком и руководством. Вместо субъективных оценок вы оперируете конкретными цифрами и логическими связями.
Ограничения метода
Несмотря на свою мощь, CPM имеет ряд ограничений, о которых следует помнить:
- Детерминированные длительности. Классический CPM предполагает, что длительность каждой задачи точно известна. В реальности оценки часто неточны, особенно на ранних стадиях проекта.
- Не учитывает ресурсные ограничения. CPM рассчитывает расписание исходя из логических зависимостей между задачами, но не учитывает ограниченность ресурсов (людей, оборудования, бюджета). Для этого необходимо дополнительное выравнивание ресурсов.
- Статичность. Критический путь пересчитывается при изменении данных, но сам метод не учитывает динамику проекта — изменения в ходе выполнения могут сдвинуть критический путь на другие задачи.
Резюме
Метод критического пути — это математически обоснованный подход к планированию и управлению проектами. Он позволяет определить минимальную длительность проекта, выявить задачи с нулевым резервом (критические задачи) и принимать обоснованные решения по оптимизации расписания. Понимание CPM — необходимый навык для любого проектного менеджера, работающего со сложными проектами с множеством взаимозависимых задач.