Методология разработки Waterfall: что это, как работает и чем отличается от Agile
Сейчас Waterfall не так часто используют, но без неё никто бы не придумал Agile. Рассказываем для менеджеров проектов и тех, кто хочет ими стать.
vlada_maestro / shutterstock
Бывает, что в теории методология ясна, а потом дело доходит до внедрения и начинаются вопросы. На курсе «Управление проектами» преподаватели Skillbox разбирают инструменты управления на реальных кейсах, чтобы студенты легко и безошибочно применяли их в работе.
Что ещё за Waterfall?
Waterfall — модель «Водопад», водопадная или каскадная разработка продуктов. Она подобно потоку воды направляет команды решать задачи последовательно и строго по изначальному плану. Название появилось в 1970 году в статье Винстона Уолкера Ройса, директора Lockheed Software Technology Center, а структура позаимствована у диаграммы Ганта.
.
Принципы водопадной модели разработки
- Документы и инструкции — это важно, всё должно быть зафиксировано.
- Следующий этап работы не начинается, пока не закончится предыдущий.
- Пропускать этапы нельзя.
- Если требования к продукту изменились после согласования — переписываем ТЗ.
- Нельзя возвращаться на предыдущий этап, чтобы что-то изменить.
- Нет итераций, есть один общий процесс создания продукта.
- Выявлять и исправлять ошибки — только на этапе тестирования.
- Клиент не участвует в создании продукта после постановки ТЗ.
Как работает Waterfall
Разработка при использовании каскадной модели — это пять строго последовательных этапов.
Аналитика
Команда собирает требования к будущему продукту. Потом пишет подробное техническое задание, планирует график работ и возможные риски. Переходит к следующему этапу, только когда все требования прописаны и есть план. А в плане — инструкции, что и когда делать.
Проектирование
Команда создаёт прототип и готовит дизайн-макеты. Когда это готово, подключаются разработчики.
Разработка
На этом этапе пишут код продукта согласно плану, макетам и требованиям. Ни шагу в сторону, всё четко по ТЗ.
Тестирование
Код готов, начинается тестирование. Тут могут появиться проблемы. Например, команда обнаружит серьёзные ошибки в коде и потратит много времени, чтобы их исправить. Это главный минус каскадной модели разработки.
Эксплуатация и поддержка
Проект передают заказчику и следят заранее определённое время, чтобы всё работало.
Как отличить Waterfall от гибких методологий
Классическая методология Waterfall — это работа по заранее написанному и согласованному ТЗ. Гибкость здесь не приветствуется. В этом основное отличие водопадной модели от Agile.
Waterfall отличается от Agile и самими принципами работы, о которых мы говорили выше.
.
12 принципов Agile
- Главное — хороший продукт и довольный заказчик.
- Готовность к изменениям в любой момент.
- Показывать полностью рабочую часть продукта как можно чаще.
- Постоянные встречи команды и заказчика для обмена информацией.
- Заказчик и разработчики должны работать вместе, как одна команда.
- Важно доверять людям в том, что они делают.
- Есть рабочий продукт — есть прогресс.
- Гибкие процессы — это непрерывное развитие.
- Внимание к качеству способствует гибкости.
- Простота процесса разработки избавляет от лишней работы.
- Самоорганизующаяся команда работает лучше.
- Постоянное стремление к большей эффективности.
Эти принципы появились из agile-манифеста.
.
Манифест гибкой разработки ПО
- Люди важнее инструментов.
- Качество продукта важнее документации.
- Взаимодействие с заказчиком важнее контракта.
- Готовность к изменениям важнее установленного плана.
Если бы для Waterfall тоже написали манифест, он бы выглядел так:
.
Манифест водопадной модели разработки ПО
- Следуйте правилам.
- Нет ТЗ — нет продукта.
- Чем подробнее ТЗ, тем лучше продукт.
- Следите, чтобы не было изменений.
Чем Waterfall отличается от Scrum
Фреймворк Scrum — это часть Agile, поэтому он тоже отличается от водопадной модели разработки. В этой таблице мы собрали их основные отличия.
Waterfall | Scrum |
---|---|
Все требования известны вначале и не меняются | Требования могут меняться по ходу проекта |
Объемное и подробное ТЗ | Бэклог |
Тестирование в конце | Тестирование после каждой итерации |
Негибкая | Гибкая |
Готовый продукт в конце | Работающая часть продукта после первой итерации |
Клиент не видит промежуточный результат | Клиент видит и может влиять на промежуточный результат |
.
Если хотите разобраться подробнее:
- Посмотрите вебинар «Scrum & Waterfall: битва методологий».
- Прочитайте статью «Будь гибким: как понять Scrum и создать agile-команду».
- Прочитайте руководство «Как создать план проекта в Scrum за 5 шагов».
Заключение
Waterfall — это методология, где всё изначально продумано и зафиксировано, и в этом есть свои плюсы. Бывают проекты, которым она подходит, — такие, в которых все требования известны заранее и не могут измениться по ходу работы и где нет риска ошибиться.
В Digital такое бывает редко, поэтому команды добавляют к каскадной модели гибкие практики: например, проверяют продукт на соответствие требованиям после каждого этапа работы, а не в самом конце.