Waterfall или agile реализация - какую модель выбрать?

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