Что такое каскадная разработка

Что такое каскадная разработка

Это когда всё делают строго по очереди

В современной разработке много нового и модного: скрам, эджайл, канбан, оранжевое управление и прочие хипстерские слова. Но есть одна модель разработки, которой уже 50 лет, её все ругают, но она живёт до сих пор и успешно применяется в крупных проектах — каскадная разработка. Вот сейчас о ней. 

Вы можете оказаться в самой прогрессивной компании на свете, говорить самые правильные слова, использовать самые модные фреймворки. Но если хорошо потереть и глубоко копнуть, в критической ситуации менеджер включит каскадную разработку. Потому что это основа, фундамент и база. 

Что такое каскадная разработка

Эту модель придумали в 1970 году, когда программирование стало развиваться и надо было как-то стандартизировать подход к разработке. Смысл в том, чтобы и программисты, и клиенты одинаково понимали ход процесса и примерно представляли себе, на каком этапе находится создание программы. 

Главная идея каскадной разработки: 

весь процесс работы над программой идёт строго поэтапно, и нельзя перейти от одного этапа к другому, пока текущий полностью не закончен.

Звучит очень здраво и помогает программистам не распылять свои силы, а сосредоточиться на текущих задачах. А ещё не нужно возвращаться к предыдущему этапу и что-то доделывать, потому что всё делается сразу и навсегда. 

В классической каскадной разработке 7 этапов:

  1. Формализация и постановка задачи.
  2. Проектирование.
  3. Написание кода.
  4. Сборка всего кода в единое целое.
  5. Тестирование и отладка.
  6. Установка на компьютеры пользователя.
  7. Поддержка и написание документации.

Такой подход к разработке ещё называют «водопадом», потому что если представить рабочий путь по этим этапам, то выглядит как поток в водопаде — сверху вниз. Обратите внимание на стрелочки — ни на одном этапе нельзя вернуться назад:

Что такое каскадная разработка

Почему все её критикуют

Так как перейти на новый этап можно только по окончании предыдущего, то такое выполнение по очереди займёт очень много времени. Пока архитекторы не нарисуют все схемы связей между всеми элементами, дизайнеры не смогут приступить к интерфейсу, а программисты — к настройке баз данных и API. А архитекторы не смогут нарисовать схемы, пока заказчик полностью не опишет все требования к программе, потому что после старта поменять будет уже ничего нельзя.

Что такое каскадная разработка

Если какой-то этап задерживается по любым причинам (заболел программист или клиент ушёл в отпуск), то сдвигаются все сроки и проект может растянуться надолго:

Что такое каскадная разработка

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

Ещё один минус такой модели в том, что если хоть немного ошибиться с начальными требованиями и описанием того, как должна работать программа, то исправить это на других этапах уже не получится. А в современной разработке все конкуренты хотят выпустить свои продукты как можно раньше. Поэтому каскадная модель не используется в тех нишах, где важна скорость выхода программы.

В чём сила модели

Сила каскадной модели — в ответственности и порядке. 

Ответственность в том, что каждый человек на каскаде понимает, что его работа к нему уже не вернётся, поэтому он должен сделать её максимально хорошо. А если в его работе найдётся недостаток, отследить его источник будет проще простого. В каскаде нельзя сказать, что «это войдёт в следующий спринт, мы так договорились на бирюзовом ретро во время митапа». Нету там таких слов. Написал плохую спецификацию — хана тебе. 

А порядок в том, что все чётко понимают, где начинается и заканчивается их зона ответственности. 

Это всё в идеальном мире. В реальности менеджеры могут и развернуть каскад вспять, если клиенту приспичило поменять техзадание; и поставить дедлайн на вчера; и ещё как угодно надорвать ткань реальности. 

Что дальше

У каскадной модели есть полная противоположность — RAD-разработка. Про неё поговорим в другой раз.

Текст:

Михаил Полянин

Редактор:

Максим Ильяхов

Художник:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Мария Дронова

Соцсети:

Виталий Вебер

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Как устроены файлы
Как устроены файлы

Главный способ хранения всех данных

easy
Токсичные коллеги в ИТ: разговор с психологом
Токсичные коллеги в ИТ: разговор с психологом

Почему в айтишных коллективах бывает душно и тяжело

easy
Soft Skills в ИТ: что это, для чего и как развивать
Soft Skills в ИТ: что это, для чего и как развивать

Почему разработчики с навыками управления стоят дороже

easy
Использовать чужой код стыдно?

Стыдно — когда видно

easy
Что такое эмулятор
Что такое эмулятор

Ваш пропуск в мир винтажных приставок и хакерских игрушек

easy
Что такое технический долг
Что такое технический долг

Фраза из лексикона сильных профессионалов

easy
Что такое бэкап, зачем он нужен и как его делать
Что такое бэкап, зачем он нужен и как его делать

Каждый разработчик однажды ЛИШИЛСЯ ВСЕГО, потому что не сделал бэкап.

easy
Карьерные перспективы в ИТ с учетом сложившейся ситуации
Карьерные перспективы в ИТ с учетом сложившейся ситуации

Что нужно знать тем, кто хочет стать айтишником в 2022-м году

easy
Чем отличается авторизация от аутентификации
Чем отличается авторизация от аутентификации

Как усложнить жизнь злоумышленникам.

medium
Что такое абсолютный и относительный путь к файлу
Что такое абсолютный и относительный путь к файлу

И когда нужен каждый из них

easy
easy