Что такое Waterfall
📌 Waterfall — это подход к управлению проектами, в котором задачи выполняются последовательно. Прежде чем начнётся новый этап, нужно завершить предыдущий. При этом пропуск и перекрытие фаз не допускается.
Такой подход даёт высокую предсказуемость, позволяет вести масштабные проекты и устойчив к замене исполнителей. Его часто используют в IT, медицине, машиностроении и строительстве в целом. При этом Waterfall не прощает ошибок — исправлять их приходится в конце.
В 1970 году разработчик ПО Винстон Ройс описал в своей статье концепцию, ныне именуемую каскадной моделью. Там он подчеркнул её недостатки и рассказал, как довести её до итеративной модели.
![Waterfall: что это, как работает, чем отличается от Agile и Scrum Waterfall: что это, как работает, чем отличается от Agile и Scrum](/images/blog/faza-133500.png)
☝️ Ройс считал, что вести проект исключительно по линейной системе рискованно и грозит провалом проекта. Поэтому на практике в «чистый» каскадный процесс вмешиваются гибкие элементы: циклы обратной связи, прототипирование и так далее.
![Waterfall: что это, как работает, чем отличается от Agile и Scrum Waterfall: что это, как работает, чем отличается от Agile и Scrum](/images/blog/gibgii-water-133500.png)
Waterfall подойдёт, если:
- Результат предсказуем и понятен
- Проект имеет высокую важность и сложность: например, связан с безопасностью или инфраструктурой
- Процессы отточены, а ещё лучше — поставлены на поток
- У тебя большая команда, у каждого сотрудника своя роль и чёткий пул обязанностей
- Заказчик не хочет участвовать в процессе разработки
🧐 В PMBOK 3-й версии был закреплён только Waterfall, а не итеративные подходы. Считалось, что формальная система Waterfall способна снизить многие риски проекта и сделать его прозрачным. Сейчас водопадная модель уже не такая распространённая — её активно вытесняют гибкие подходы.
Как работает Waterfall
У проектов, работающих по Waterfall, фазы чётко определены:
- Сбор требований
- Планирование или проектирование
- Выполнение работы или реализация
- Проверка работоспособности или тестирование
- Доставка или внедрение
- Обслуживание
Покажем их на красивом примере создания фарфоровых кукол.
Сбор требований
Наш заказчик хочет куклу как с картинки ниже. Главное требование — кукла должна быть шарнирной. Требования фиксируем детально и письменно.
👉 Этот этап состоит из общения с заказчиком и понимания его потребностей. В итоге создаётся документ с требованиями, или бриф.
![Waterfall: что это, как работает, чем отличается от Agile и Scrum Waterfall: что это, как работает, чем отличается от Agile и Scrum](/images/blog/kukla.png)
Планирование
Этот этап охватывает цели проекта, бюджет и график. Его стоит рассматривать как план всего проекта. Планирование результата — важная отличительная черта Waterfall. Ей нужно уделить особое внимание, чтобы не выпадать из бюджета и дедлайнов.
👉 IT-команды на этом этапе создают прототип или архитектуру ПО
👉 Строительные компании создают проект дома
👉 А мы рисуем дизайн-макет: визуальное представление конечного результата
📎 Подробнее о том, как составить план проекта
![Waterfall: что это, как работает, чем отличается от Agile и Scrum Waterfall: что это, как работает, чем отличается от Agile и Scrum](/images/blog/zarisovka.png)
Выполнение работы
Создание куклы происходит в несколько этапов:
- Берётся мастер-модель — черновая заготовка для отливки будущих форм. В неё заливается специальный раствор — фарфоровый шликер. На одну куклу нужно 17 мастер-моделей
- Так отливаются все конечности, туловище и голова
- Отливки вынимаются, шлифуются для гладкости фарфора и обжигаются
- Отливки повторно шлифуются и обжигаются
- Роспись специальными надглазурными красками
- Шарниры проклеиваются кожей, и происходит сборка
- Приклеивается парик
- Шьётся одежда: платье с подъюбником и кожаные балетки.
👉 У разработчиков будут этапы из разработки кода, модулей и частей ПО
👉 Строители закладывают фундамент, возводят стены и крышу
Проверка работоспособности
Тестируем работу всех конечностей.
⚠️ Если одна из конечностей не сгибается из-за трещины, придётся полностью её менять. Это отнимает время и ресурсы, поэтому важно на этапе планирования проверить все материалы.
👉 Тестировщики проверяют приложение на ошибки
👉 Стройнадзор проводит обследование здания
Доставка
Запаковываем куклу и продаём её клиенту.
👉 Приложение выгружается в магазин
👉 Дом сдаётся в эксплуатацию
Обслуживание
Если в процессе эксплуатации краска на кукле потрескается, забираем её в ремонт.
👉 Застройщик выдаёт техническую гарантию на обслуживание
Для работы по линейному подходу используют диаграмму Ганта. Это помогает согласовать этапы между собой и обеспечить прозрачность сроков и работ.
На примере создания куклы это будет выглядеть так:
![Waterfall: что это, как работает, чем отличается от Agile и Scrum Waterfall: что это, как работает, чем отличается от Agile и Scrum](/images/blog/2-4.png)
Задачи самого крупного этапа прописываем подробно:
![Waterfall: что это, как работает, чем отличается от Agile и Scrum Waterfall: что это, как работает, чем отличается от Agile и Scrum](/images/blog/1-6.png)
Преимущества и недостатки каскадной модели
Стабильность Waterfall наделяет подход такими плюсами:
✔️ Все фазы работы документируются — это даёт предсказуемость и контролируемость, помогает избежать недопониманий
✔️ Расходы и сроки прогнозируются максимально точно. Поэтому Waterfall подходит проектам с ограниченными временем и бюджетом
✔️ Конечный результат определяется на старте и не сильно меняется к концу проекта
✔️ Подходит для больших команд и устойчив к замене исполнителей задач
✔️ Прост для понимания — не нужно быть гуру проектного управления, чтобы освоить этапы Waterfall. Просто иди последовательно и соблюдай правила
При этом:
❗ Из-за отсутствия гибкости не всегда получается вовремя отлавливать и исправлять ошибки. Иногда приходиться вернуться на несколько этапов назад и переделать всё с момента ошибки. Если обои отклеились из-за кривизны стены, придётся снимать обои, выравнивать стену, а затем повторять весь процесс с поклейкой
❗ Waterfall не сильно устойчив к форс-мажорам. Во время планирования стараются заранее учесть и проработать все риски, поэтому внезапные изменения нежелательны
❗ Отсутствие гибкости мешает быстро реагировать на изменения рынка. Поэтому продукт может устареть к моменту выпуска
❗ Документирование каждого этапа приводит к бумажной волоките. Разбираться в ней тяжело, а чем больше замечаний и правок вносится в процессе, тем толще папка
❗ Клиенты видят только конечный продукт. Waterfall не подходит заказчикам, которые хотят участвовать в процессе
Отличия Agile от Waterfall
Поскольку манифест Agile придумали из-за разочарования разработчиков в традиционных подходах, они разные по своей сути.
В таблице ниже это показано наглядно.
![Waterfall: что это, как работает, чем отличается от Agile и Scrum Waterfall: что это, как работает, чем отличается от Agile и Scrum](/images/blog/waterwall-raznica.png)
Agile | Waterfall | |
---|---|---|
Этапы можно выполнять параллельно | Да | Нет |
Результат предсказуем на старте | Нет | Да |
Размер команды | До 10 человек | От 10 человек |
Размер проекта | Небольшой или средний | Любой |
Продукт можно выпускать частями | Да | Нет |
Важно участие заинтересованных сторон в процессе | Да | Нет |
Подход к взаимодействию в команде | Упор на людей и сотрудничество | Упор на инструменты и документацию |
Ориентир в процессе работы | Сбор фидбека с целью создать ценный продукт | Следование плану по документам |
Чем водопадная модель Waterfall отличается от Scrum
Если Agile — это философия, то Scrum — практическое её воплощение. Поэтому Scrum так же непохож на Waterfall.
Покажем разницу в таблице:
Scrum | Waterfall | |
---|---|---|
Как формируются задачи | Бэклог | Техническая документация |
Взаимодействие с заказчиком | Активное, он влияет на результат в процессе | Отсутствует, заказчик видит результат в конце |
Тестирование | После каждого спринта. Поэтому ошибки находятся и исправляются быстро | В конце |
Процесс работы | Вся работа разбита на части — спринты. Этапы можно менять местами и вести параллельно. В конце первого спринта базовый продукт уже готов и далее улучшается | Работа идёт блоками, которые нужно выполнять последовательно, не пропуская этапы. Продукт готов к использованию только в конце |
Команда и роли | Небольшая (до 10 человек) с чёткими ролями | Большая (от 10 человек) с чёткими ролями |
📎 Подробный текст о том, кто такой Scrum
Когда стоит применять водопадную модель. Чек-лист от WEEEK
- У проекта есть чёткие требования. Если строишь лестницу, спланируй весь процесс. Построить один пролёт и только потом задуматься о следующем не получится
- Процесс поставлен на поток, в нём редко происходят изменения и форс-мажоры. Например, в разработке медицинских изделий проекты разрабатывают на основе ГОСТов и ещё раз ГОСТов
- Для выполнения проекта нужна большая команда
- Продукт нельзя выпустить частями — как автомобили, велосипеды, конфеты
- Проект ограничен по сроку. Все мы видели табличку с техпаспортом возле строящегося объекта с датами начала и окончания строительства. Это наглядный пример каскадного подхода с прогнозом окончания работ
Какие компании использовали Waterfall в своей работе и что они об этом говорят:
Компания | Вид деятельности | Работают ли сейчас по Waterfall | Комментарий представителя |
---|---|---|---|
Ак Барс Цифровые технологии | Автоматизация банковской системы | Нет | Ведущий технолог Денис Нестягин: «До 2016 года мы работали по водопадной (каскадной) модели разработки» |
Практика БИТ:ERP | Внедрение автоматизированных систем учёта | Нет | Директор направления БИТ Глеб Стальной: «Большую часть своей сознательной деятельности я внедрял проекты по каскаду» |
AT Consulting | IT-услуги | Да | Директор практики бизнес-архитектуры Василий Кораблёв: «Для разработки систем с нуля мы используем один из подходов гибкой (Agile) или водопадной (waterfall) разработки, либо их комбинации» |
NASA | Разработка ПО для космических аппаратов | Да | Статья о выборе методики разработки: «Разработка ПО может включать сочетание каскадных и гибких методов… в зависимости от требований и ограничений». |
Водопад выводов
- Waterfall — это подход к управлению проектами, в котором задачи выполняются последовательно. Пропуск и перекрытие фаз не допускается
- Waterfall состоит из шести фаз: сбор требований, планирование, разработка, проверка, доставка и обслуживание
- Плюсы Waterfall: подробная документация, прозрачность и прогнозируемость, обсуждение результата и рисков в начале работы, устойчивость к замене исполнителей и простота использования
- Минусы — несвоевременное исправление ошибок, плохая устойчивость к форс-мажорам и вероятность выпустить уже устаревший продукт
- Разница между Agile и Waterfall основана на видении будущего: гибкие подходы реагируют на фидбек и меняются в процессе, а у Waterfall финал обсуждается «на берегу»
- Scrum подходит для небольших команд и выпускает продукт частями, а по Waterfall можно вести проект с большой командой, но результат будет только в конце работы