Это не спринт, а марафон: как разобраться с зависимостями в проектном менеджменте

18 июня 2024
7 мин.

Зависимости — это важное для проектного менеджера понятие, которое нужно знать, чтобы эффективно управлять задачами в проектах. Например, мы не можем поехать на работу на машине, если до этого она не была заправлена. Таким образом, задача “поехать на работу на машине” зависит от задачи “заправить машину”. Специалист, который не учел зависимости в проекте, рискует совершить множество ошибок и даже поставить реализацию всего проекта под вопрос.

В проектном менеджменте существуют множество видов зависимостей, в том числе блокеры, ресурсные зависимости, внешние и внутренние зависимости и так далее. В этой статье мы рассмотрим зависимости операций, которые используются в диаграмме Ганта.

Зачем изучать зависимости

Финиш к старту (Finish to Start)

Старт к финишу (Start to Finish)

Старт к старту (Start to Start)

Финиш к финишу (Finish to Finish)

Зачем изучать зависимости

Зависимости — это не просто стрелки и направления на графике. Это ценная информация, которая помогает каждому члену команды понять, от каких членов команды зависит его работа и с кем надо больше взаимодействовать конкретно ему для успешного выполнения проекта в целом. Стейкхолдеры и менеджеры должны знать о зависимостях, чтобы понимать, как повышение или понижение приоритета одной из задач отразится на связанных с ней задачах.

Изолированных задач в проектах практически не существует. Скажем, никто не хочет оказаться на месте проектного менеджера, который поставил дату прибытия бетономешалки раньше даты завершения котлована. Или директора магазина, который заказал поставку мяса до завершения установки и настройки холодильного оборудования.

Зависимости делятся на четыре типа: Финиш к старту, Старт к старту, Старт к финишу и Финиш к финишу. В этой статье мы рассмотрим каждый их них. Для лучшего понимания мы приведем примеры из повседневной жизни, а также рассмотрим зависимости на примере марафона.

PMBOK — Project Management Body of Knowledge — свод знаний проектного менеджера, предусматривает определенный стандарт визуализации, чтобы специалисты по всему миру могли понимать диаграммы, которые создаются на проектах. На них мы и будем опираться в статье.

Финиш к старту (Finish to Start)

Спортсмен добежал до финиша — судья определил его позицию в рейтинге. На рисунке конец операции А связан с началом операции B. 

Это самая простая зависимость. При отношении “Финиш к старту” невозможно начать следующую задачу, пока не завершится предыдущая.

Предположим, у вас есть проект по организации мероприятия. В рамках этого проекта выделяются две связанные задачи:

  • Подготовка рекламных материалов
  • Запуск рекламной кампании

В данном случае нельзя начинать запуск рекламной кампании, пока не завершена подготовка рекламных материалов. Это означает, что вся работа по созданию баннеров, буклетов и других рекламных материалов должна быть завершена до того, как начнется их распространение и запуск самой кампании. Зависимость «Финиш к старту» гарантирует, что запуск рекламной кампании не начнется, пока не будут готовы все необходимые материалы.

Старт к финишу (Start to Finish)

Следующий участник эстафеты начинает бежать и забирает палочку у предыдущего участника эстафеты, который заканчивает свою часть гонки.

Пожалуй, это самая сложная зависимость из четырех, рассмотренных в статье. При отношении “Старт к финишу” невозможно завершить предыдущую задачу пока не начнется следующая. Во время подготовки материала мы побывали на многочисленных форумах, где пользователи пытаются найти подходящие примеры этой зависимости. Остановимся на четырех, которые вызывают меньше всего противоречий:

  • Нельзя завершить смену охраны на объекте, пока не начнется смена новой охранной группы
  • Нельзя отпустить нянечку, пока родители не приедут домой
  • Нельзя выключить подачу электричества с генератора, пока не заработает городская сеть
  • Передача дел увольняющимся сотрудником

Даже вокруг визуализации этой зависимости возникает множество споров. Например, ее обычно рисуют так. В какой-то момент на объекте нужно находиться двум сменам охранников одновременно, чтобы передать дежурство.

Но, как вы видите на рисунке, почему-то стрелка выходит из начала предшествующей задачи и идет к началу следующей. Если понимать схему буквально, то можно подумать, что дежурство на объекте передается в начале смены. Разумеется, в начале смены принимают дежурство.

Напомним определение “При отношении “Старт к финишу” невозможно завершить предыдущую задачу пока не начнется следующая”. О начале предыдущей задачи в нем речь не ведется, говорится о конце.

В качестве альтернативы проектные менеджеры предлагают рисовать задачи в хронологическом порядке, но стрелку направить от начала следующей задачи (задача-последователь) к концу предыдущей (задача-предшественник). Здесь представлен пример альтернативной визуализации.

Как видите, теперь “Старт к финишу” выглядит прямо противоположно зависимости типа “Финиш к старту”. Давайте глянем на нее еще раз.

Старт к старту (Start to Start)

Марафон не может начаться, пока не начнется дежурство скорой помощи.

Эта зависимость предусматривает параллельные задачи. При “Старт к старту” невозможно начать следующую задачу, пока не начнется предыдущая. Зависимость используется для планирования синхронных работ.

Пример: Предположим, у вас есть проект по созданию нового программного обеспечения. Задачи могут включать в себя разработку интерфейса пользователя (UI) и создание технической документации. 

Невозможно начать создание технической документации, пока не начнется разработка интерфейса пользователя, так как техническая документация должна учитывать особенности и функциональность интерфейса.

И, в то же время, разработка технической документации должна вестись синхронно, чтобы команды могли сотрудничать, вносить правки и чтобы проект выполнялся эффективно. При параллельном выполнении задач команды не блокируют друг друга, а двигаются синхронно.

Таким образом, зависимость «Старт к старту» обеспечивает синхронный старт обеих задач, позволяя им развиваться параллельно и поддерживая необходимую координацию между командами.

Финиш к финишу (Finish to Finish)

Судья не может завершить марафон, пока последний участник не завершит забег.

Здесь тоже речь идет о параллельных задачах. Финиш к финишу означает, что невозможно завершить следующую задачу, пока не завершится предыдущая.

В Agile проектах разработка и тестирование софта могут начинаться в разное время, но разработчиков нельзя отпустить, пока не завершится тестирование. Это связано с тем, что разработчики нужны для исправления выявленных багов.

Таким образом, зависимость «Финиш к финишу» гарантирует, что разработка не завершится до тех пор, пока все тестирование не будет завершено, обеспечивая тем самым качество конечного продукта. В то же время, тестировщиков нельзя отпускать, пока разработчики не закончат с добавлением функций и не внесут все правки.

Еще примеры:

  • Журналист не может опубликовать текст, пока его не проверил редактор. Редактор не может отпустить журналиста, пока не будет завершено внесение необходимых правок в текст.
  • Можно готовить пирог, не нагревая печь. Но нельзя завершить приготовление пирога не нагрев печь до необходимой для запекания температуры. 

Заключение

Знание зависимостей помогает командам лучше координировать свою работу. Члены команды могут четко видеть, от кого и что зависит, что способствует лучшему взаимодействию и снижает вероятность ошибок и недоразумений. Это особенно важно в крупных и сложных проектах, где взаимодействие между задачами играет ключевую роль. Подведем краткие итоги:

  • В зависимости “Финиш к старту” следующая задача зависит от предыдущей. При этом предыдущая задача не зависит от следующей. Маркетологам надо ждать, пока контент-команда создаст рекламные материалы. Контент-команде не надо ждать маркетологов, чтобы создать рекламные материалы. 
  • В зависимости “Старт к финишу” предыдущая задача зависит от следующей. При этом следующая задача не зависит от предыдущей. Утренней смене охраны надо ждать вечернюю смену, чтобы сдать дежурство. Вечерней смене охраны не надо ждать утреннюю смену, чтобы заступить на дежурство.
  • В зависимости “Старт к старту” предыдущая задача зависит от следующей. При этом следующая задача не зависит от предыдущей. Бизнес-аналитику надо ждать начала работы разработчиков для создания технической документации. Разработчикам не надо ждать начала работы бизнес-аналитика для создания интерфейса пользователя.
  • В зависимости “Финиш к финишу” предыдущая и следующая задачи зависят друг от друга. Разработчикам надо ждать завершения работы тестировщиков, чтобы завершить свою работу. Тестировщикам надо ждать завершения работы разработчиков, чтобы завершить тестирование. Журналисту надо ждать “добро” от редактора. Редактору надо ждать, пока журналист поправит текст. При приготовлении пирога надо ждать, пока разогреется печь. Если пирог сырой, существует множество способов его допечь.