Waterfall или agile-внедрение — какую модель выбрать?
Не существует единого универсального метода внедрения ИТ-систем, который бы работал в реалиях каждого проекта и предприятия. Сейчас доминируют две формы: так называемая каскадная и гибкая модель. Модель Waterfall — это традиционная модель управления проектами. Это линейный и последовательный подход. Задачи, выполненные на одном этапе, должны быть рассмотрены и проверены перед переходом к следующему этапу. Методология Agile, в свою очередь, — это поэтапный подход, основанный на гибком реагировании на изменения.
Каковы преимущества и недостатки этих методов? Для каких проектов они лучше всего подходят?
Модель Waterfall
Управление проектами Waterfall — это последовательный подход, который разбивает проект на отдельные фазы. Типичные этапы включают сбор требований, анализ, проектирование, кодирование, внутреннее тестирование, приемочное тестирование, установку, внедрение, обучение и ввод в эксплуатацию. Следующий этап может быть продолжен только в том случае, если предыдущий этап был успешно завершен.
Одной из самых больших проблем, связанных с каскадной моделью, является тот факт, что получатель системы может проверить результат работы только после завершения одного этапа или всего проекта. В негативном сценарии это может привести к ситуации, когда клиент на этапе приемочных испытаний заявляет, что эффект не соответствует его ожиданиям. Это пустая трата времени и денег, и значительно увеличивает риск отмены проекта.
С каскадной моделью связана большая проектная документация. Она часто использует руководства и лучшие практики, найденные в методологии PRINCE2 или руководствах PMI (Project Management Institute), но высокий уровень формальности ограничивает гибкость проекта и снижает способность реагировать на большое количество или существенные изменения требований.
Все это делает каскадную модель нерекомендуемой для долгосрочных, высокорисковых и неопределенных проектов. Этот метод не будет работать, если полные требования и результаты не могут быть определены на этапе планирования. Если необходимо внести существенные изменения в объем проекта, может стать неизбежным отменить проект и начать все заново.
Преимущества каскадной модели:
Простота планирования и проектирования благодаря точному предположению, сделанному в начале проекта;
проектирование системы охватывает весь объем работ с самого начала;
точное определение объема работ;
Относительно простое определение бюджета;
легкая проверка хода выполнения работ.
Недостатки каскадной модели:
жесткая структура затрудняет внесение изменений;
не учитывается фактор неопределенности;
Подтверждение выполнения требований проекта происходит по его завершении;
требует большого количества документации;
переход на следующую фазу возможен только после окончания предыдущей;
ограниченное привлечение клиентов может привести к снижению удовлетворенности результатами;
Каскадный подход рискован для долгосрочных проектов, конечный результат которых удаляется со временем.
Гибкая модель
Гибкие методологии позволяют внедрять ИТ-систему небольшими шагами. Это обеспечивает высокую гибкость процесса, лучший контроль и высокую адаптивность решений к меняющимся потребностям. Идея гибкой реализации заключается в том, чтобы быстро начать работу со стандартной версией программы, а затем постепенно итеративно настраивать ее для удовлетворения конкретных потребностей пользователя.
Метод Agile подчеркивает тесное сотрудничество и удовлетворенность клиентов. Определяет ограниченные по времени этапы, называемые спринтами или временными рамками, обычно длящиеся одну неделю, две недели или месяц.
В начале каждого спринта создается список задач в соответствии с определенными приоритетами совместно с клиентом. Клиент может свободно изменять приоритет для всех еще не разработанных функций системы. В конце спринта поставщик системы и клиент проверяют и оценивают прогресс.
Гибкая модель упрощает рационализацию затрат. Когда поставщики программного обеспечения предлагают реализовать систему в традиционной модели, они обычно берут на себя буфер, чтобы защитить себя от непредвиденных ситуаций. Из-за необходимости прогнозировать затраты на рабочую силу в долгосрочной перспективе такое предложение часто оказывается завышенным.
Преимущества гибкой модели
Быстрый ввод в эксплуатацию за счет начала работы над базовой версией, что позволяет распределить во времени часто наиболее трудоемкие этапы проекта по корректировке конкретных требований пользователя;
эффективное тестирование за счет разбиения на небольшие части и постоянного обновления;
ускоренный жизненный цикл ПО;
быстрая проверка предположений, клиент может быстро увидеть, как различные функции системы работают на практике;
постоянное вовлечение заказчика в процесс создания последующих итераций системы помогает избежать недоразумений, а следовательно, и потери времени и ресурсов;
большее вовлечение заказчика в разработку системы часто приводит к улучшению пользовательского опыта;
рационализация затрат.
Недостатки гибкой модели
требует значительного участия клиента;
Проектная команда
Участники должны быть осведомлены о принципах, регулирующих методологию Agile, и должны быть высоко мотивированы;
Общая стоимость проекта оценить сложнее, чем для каскадной модели;
меньше документации, чем для каскадной модели.
Водопад и Agile — это сумма различий
Идея — Agile — это постепенный и итеративный подход, водопад — это линейный и последовательный подход.
Строительство — Agile делит проект на спринты, а метод водопада — на фазы.
Применение — метод Agile помогает в реализации множества небольших проектов, модель водопада лучше подходит для завершения одного большого проекта.
Отношения с клиентами — Agile фокусируется на тесном сотрудничестве с клиентом, модель водопада фокусируется на реализации проектных предположений.
Оценка — в подходе Agile проекты отслеживаются на постоянной основе во время ежедневных встреч, оценка в модели водопада происходит в конце этой фазы.
Внесенные изменения — Agile позволяет изменять требования в любое время, каскадный подход остается в рамках предполагаемого объема.
Тестирование — в Agile-модели тестирование проводится на постоянной основе, в каскадной модели — на завершающей стадии проекта.
Водопадная модель и agile-модель — это принципиально разные подходы к управлению проектами. Оба метода имеют существенные преимущества и недостатки. Какой из них будет лучшим в той или иной ситуации?