Управление изменениями в «водопадных» проектах

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

Откуда вообще берутся изменения в «водопадных» проектах и почему это может быть проблемой?

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

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

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

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

Методики работы с изменениями

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

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

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

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

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

Еще можно имитировать «водопад» в рамках итеративной разработки — тут поможет чёткий общий план работ (roadmap), который, по сути, является ТЗ «водопадного» проекта, но может вполне успешно использоваться в рамках фактической итеративной разработки. При этом надо понимать, что такой подход не очень рационален, так как он в конечном счёте может иметь все минусы и той, и другой методологии.

Резюме

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

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

управление проектами
Статья опубликована в 2019 году

Тематические статьи

Влияние добавление функционала на проекты по разработке программного обеспечения

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

веб-разработка
управление продуктами
управление проектами
методологии разработки
Статья опубликована в 2014 году

Ошибки при разработке сайтов: субъективный подход к дизайну и стремление к самовыражению

Как часто можно услышать это: «Сайт должен быть стильным», «Сайт должен внушать доверие», «Мой дизайн должен быть эксклюзивным и непохожим на другие» и другие варианты необъективных критериев. «Стильное, лаконичное, внушающее доверие» — это все субъективные оценочные критерии, которые зависят от восприятия каждого конкретного человека.

управление продуктами
управление проектами
Статья опубликована в 2014 году

Ошибки при разработке сайтов: отсутствие аналитики и развития после запуска

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

управление продуктами
управление проектами
Статья опубликована в 2014 году

Наши принципы ценообразования: сколько стоит разработка, поддержка, продвижение и реклама сайта?

Мы предлагаем индивидуальные решения: в каждом конкретном случае необходим различный объём оказываемых услуг, а значит и стоимость может отличаться в очень широких пределах. Мы оказываем качественные услуги и ценим свою работу, а взаимоотношения с Клиентами строим на взаимовыгодной основе.

экономика
управление проектами
Статья опубликована в 2014 году

Сколько стоит разработка сайта?

​Ежедневно мы отвечаем на этот вопрос и не один раз. Очень часто это первый вопрос позвонившего Клиента. Мы понимаем, что Клиенты устали слушать, что всё зависит от сложности разработки этого самого сайта.

экономика
управление проектами
Статья опубликована в 2014 году

Как написать функциональное техническое задание?

Всё просто: нормальным русским языком описывайте нужные функции в формате сценария использования. Пункты ТЗ должны быть объективными, просто изложенными и элементарным способом проверяемыми требованиями.

Сценарий лучше всего описывать в по схеме: [роль пользователя] может [действие], [описание целей пользователя, а также необходимых шагов и вариантов развития событий]. Оптимально — разбивать описание больших компонентов на маленькие составляющие.

управление продуктами
управление проектами
проектирование
Статья опубликована в 2019 и обновлена в 2020 году

CustDev

CustDev (Customer Development) — это процесс, который помогает предприятиям разрабатывать продукты и услуги, отвечающие потребностям их клиентов.

цифровизация
методологии разработки
Статья опубликована в 2023 году

Водопадная модель разработки

Водопадная модель разработки программного обеспечения — это процесс разработки, в котором все необходимые этапы проходят строго последовательно.

Разработка ПО по водопадной модели начинается со сбора и анализа требований, затем следует фаза проектирования и прототипирования. После завершения полного проектирования начинается этап программной реализации. После завершения этапа программирования разработанный продукт тестируется на соответствие требованиям. Затем осуществляется интеграция и запуск, после чего проект переходи в фазу поддержки и сопровождения.

управление проектами
управление продуктами
Статья опубликована в 2019 году

Итеративная модель разработки

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

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

управление продуктами
управление проектами
Agile
Статья опубликована в 2019 и обновлена в 2022 году

Создание дизайна сайта или веб‑приложения

Создание дизайна для сайта или веб‑приложения — это самый субъективно оцениваемый этап разработки, часто вызывающий сложности как на этапе постановки задачи, так и на этапе сдачи‑приёмки выполненных работ.

Задача этапа дизайна — разработка графических макетов интерфейса. К интерфейсу обычно выдвигаются вполне понятные технические требования — он должен быть понятен, удобен и позволять делать то, ради чего он создавался. В этой статье разберём основные подходы, позволяющие создать действительно качественный дизайн сайта.

дизайн
UX / UI
управление проектами
управление продуктами
Статья опубликована в 2018 году

О гарантиях в сфере услуг, связанных с разработкой и продвижением сайтов

Гарантии в IT‑услугах встречаются не так уж и редко: это и SLA в поддержке, и гарантии трафика или позиций в продвижении, и гарантии качества в разработке. Но тем не менее, понимаются эти гарантии не всегда правильно.

управление проектами
SEO
интернет-маркетинг
Статья опубликована в 2014 году

Иллюзорные гарантии в разработке и продвижении сайтов

​Давайте рассмотрим «иллюзорные» гарантии, которые вроде как присутствуют в том или ином виде, но на самом деле их нет.

управление проектами
SEO
интернет-маркетинг
Статья опубликована в 2014 году

Мотивация через гарантийные обязательства

Заказчик, получая гарантийные обязательства, в какой‑то мере мотивирует Исполнителя на качественное исполнение взятых на себя обязательств. Однако тут есть подводные камни, о которых стоит знать.

управление проектами
SEO
интернет-маркетинг
Статья опубликована в 2014 году

Сколько стоят настоящие гарантии в продвижении и разработке сайтов

​Гарантии, подкреплённые реальными обязательствами Подрядчика, всегда заложены в цену услуги (или товара). Это бизнес, иначе не бывает.

управление проектами
SEO
интернет-маркетинг
Статья опубликована в 2014 году