Когда лучше использовать Waterfall (каскадную модель)?

Ответ

Каскадную модель (Waterfall) имеет смысл рассматривать для проектов с четко определенными, стабильными и неизменными требованиями на старте. Это характерно для областей с жестким регулированием, где процесс важнее гибкости.

Из моего опыта, Waterfall может быть оправдан в следующих контекстах:

  • Разработка встроенного ПО (Embedded Systems) для медицинских устройств или авионики, где каждый этап (требования, дизайн железа и софта, кодирование, верификация) требует сертификации и документации перед переходом к следующему.
  • Крупные государственные или инфраструктурные проекты со строго фиксированным бюджетом и сроками, прописанными в контракте.
  • Проекты с внешними, не техническими заказчиками, которые хотят видеть детальный план и график поставки «раз и навсегда» перед выделением финансирования.

Главный недостаток, с которым я сталкивался: Ошибки в требованиях или дизайне, обнаруженные только на этапе тестирования, требуют крайне дорогостоящего возврата на ранние стадии проекта. В Agile-подходе такая обратная связь поступает на каждой итерации, что значительно дешевле.

Поэтому сегодня я предпочитаю гибридные подходы (например, «Water-Scrum-fall»), где этапы планирования и сдачи — каскадные, а сама разработка ведется итеративно внутри спринтов.

Ответ 18+ 🔞

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

Представь себе, ты строишь дом, но по-идиотски. Сначала ты пишешь на бумажке: «Хочу трёхэтажный замок с башенкой, бассейном и подземным гаражом на шесть машин». Потом отдаёшь бумажку архитектору, он чертит чертежи на год. Потом ты эти чертежи замуровываешь в бетон и отдаёшь строителям со словами: «Делайте строго по схеме, ни шагу в сторону». Они строят ещё два года. А потом, когда всё готово и ты заходишь в свой «замок», оказывается, что бассейн ты хотел не в подвале, а на крыше, гараж на шесть машин никому не нужен, а вместо башенки лучше бы была терраса. И что теперь? Сносить всё к ебеням и начинать сначала? Доверия ебать ноль к такому плану.

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

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

  • Софт для кардиостимулятора или самолёта. Тут нельзя в середине разработки сказать: «О, а давайте вместо этого чипа вот этот впендюрим, он круче!». Каждый чих, каждая строчка кода должны быть задокументированы, проверены и утверждены до того, как ты перейдёшь к следующему шагу. Итеративность тут может стоить жизней.
  • Госзаказы или мосты. Там бюджет и сроки жёстко вбиты в контракт гвоздями. Заказчик — какой-нибудь чиновник — хочет видеть план на 100 страниц и график, где расписано по дням на три года вперёд. Ему похуй на гибкость, ему нужна галочка, что ты всё сделал «как в бумажках».
  • Работа с полными профанами. Когда заказчик с деньгами вообще не в теме, но хочет «чтобы всё было по плану». Ему покажешь чертеж — он кивает. А через полгода, когда всё уже почти готово, он охуевает: «А я думал, кнопка будет зелёная, а не синяя!». В ватерфалле ты можешь тыкнуть его носом в подписанное ТЗ и сказать: «Хуй с горы, дружок, синяя так синяя».

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

Поэтому сейчас умные люди юзают гибриды. Условный «Water-Scrum-fall». Это когда для отчётности перед начальством или госзаказчиком всё красиво расписано по этапам (водопад), а внутри, в команде, разработка идёт короткими спринтами (скрам). И всем более-менее хорошо: и бумажки есть, и мозги не ебут.