Серед запитань, що неминуче виникають в кожному проєкті, виокремлюється одне: як доцільніше управляти процесом розробки продукту? Один з варіантів відповіді, перевірений роками — Waterfall (або каскадна модель управління розробкою ПЗ).
Правда, зараз ця методика невпинно критикується, але чи так все погано насправді, чи ми черговий раз прийдемо до того, що все нове — добре забуте старе?
Життєвий цикл розробки програмного забезпечення
Практично кожна команда розробників може створювати свою модель життєвого циклу ПЗ або використовувати щось загальновизнане. Один з варіантів — Waterfall. “Батьком” такої моделі вважається американець В. У. Ройс, який, за чутками, багато запозичив у колег, привласнивши собі лаври. Це сталося в 1970 році. До сьогодні у багатьох проєктах використовується описаний ним підхід: в початковому варіанті чи з доопрацюваннями.
Хоча деякі учасники IT говорять про те, що такої методології “відродження ніколи не було”:
Як IT-професіонал і викладач я протягом більш ніж 40 років чув багато міфів про IT-індустрію. Але що продовжує дивувати мене, так це те, чому слово “Waterfall” досі використовується для опису методології, якої не існує, і чому творці методів розробки систем використовують його як джерело порівняння.
David Dischave,
професор школи інформаційних технологій університету Сиракуз, США
Дивно чути таке про методологію, яка більше десятка років використовується в створенні ПЗ для найрізноманітніших сфер діяльності, включаючи автомобілебудування, будівництво будівель і споруд, фінансовий сектор, медицину і електроніку.
Waterfall в сфері IT
Основний постулат моделі Waterfall полягає в тому, що наступний етап не може бути розпочатий, поки не завершений попередній. При цьому довільні переходи вперед або назад не допускаються, а етапи не перекривають одне одного. У цьому й полягає основна відмінність каскадної методології від гнучких братів (або конкурентів): Agile, DSDM, Scrum, FDD.
Щоб зрозуміти думки Ройса, покладені в основу моделі, можна вивчити його працю в оригіналі: Royce, Winston (1970), Managing the Development of Large Software Systems.
Процес роботи, оснований на каскаді
Виникнення ідеї та її обговорення
На цьому етапі про розробку як таку мова не йде, просто розглядається якась з’явилася ідея, цікава одному або кільком людям.
Аналіз вимог
Етап, на якому вимоги замовника до проєкту описуються в найдрібніших деталях, також визначається, якими способами буде досягнута мета, позначаються терміни завершення робіт і фінансова складова. При цьому зазвичай закладається певний запас часу та грошей для кожного звена роботи.
По закінченню аналізу вимог у наявності має бути ТЗ для програмістів та бюджет.
Проєктування програмного забезпечення
На цьому етапі робляться конкретні кроки:
- обирається платформа програмування (Python, PHP, JS тощо)
- уточнюються технічні деталі (наприклад, як будуть взаємодіяти сервіси або продукти з серверами, чи будуть використовуватися API, яка буде логіка зовнішнього та внутрішнього інтерфейсу тощо)
- вирішуються питання безпеки проєкту (наприклад, чи буде використовуватися HTTPS, SSL-шифрування тощо)
- описуються ролі користувачів програмного продукту (адміністратор, клієнт, менеджер тощо)
- фіналізуються питання надійності, продуктивності та подальшої техпідтримки цільового продукту
- формується конкретна команда.
Розробка програмного забезпечення
Етап, на якому пишеться код, що відповідає документації, розробленій раніше.
Тестування програмного забезпечення
Готова версія продукту тестується фахівцями в умовах, наближених до бойових, виявляються та фіксуються баги. Найбільш катастрофічні для роботи ПЗ в цілому — виправляються, менш критичні — можуть не бути виправлені, якщо немає часу або вичерпано бюджет.
Технічна підтримка програмного забезпечення
Придатний до роботи програмний продукт починають використовувати за призначенням і здійснювати його підтримку. Тобто: слідкувати за працездатністю, усувати збої в роботі, планувати розширення функціоналу на основі відгуків від користувачів.
Усі вищезгадані етапи виконуються строго послідовно, отримані результати документуються.
Щоб зрозуміти еволюцію класичної каскадної методології, описаної вище, можна вивчити PMBOK. Між 3‑ою та 4‑ю версіями є ряд відмінностей, які допоможуть зрозуміти шлях “каскаду”.
Плюси і мінуси каскадної моделі розробки програмного забезпечення
Нічого ідеального в нашому світі, на жаль, не існує, тому у каскадної методології теж є сильні та слабкі сторони.
| Сильні сторони каскадної моделі розробки ПЗ | Слабкі сторони каскадної моделі |
|
|
|
|
|
|
|
|
|
|
|
|
Як і коли використовувати каскадну модель розробки?
Як показує практика, модель Waterfall цілком доречна у наступних випадках:
- замовник бере участь у проєкті лише на першому етапі і приймає готовий продукт;
- змінювати вимоги до продукту не планується;
- проєкт відрізняється високою складністю, тривалістю і дорожнечею;
- основний пріоритет — якість, навіть у збиток часу;
- відсутність команди розробників екстра-класу;
- допускається можливість виконання проєкту на аутсорсі.
Для розуміння ж мотивації відмови від каскадної методології можна прочитати книгу “Scrum. Революційний метод управління проєктами” Джеффа Сазерленда.
Приклади використання Waterfall
Каскадна модель у чистому вигляді в сучасній розробці не так вже й поширена і, часто, те, що не підходить під визначення Agile, називають Waterfall, тому досить складно визначити, де використовується саме ця методологія.
За оцінками експертів, значна частина ERP-систем, програм, призначених для будівництва, медицини, роботи з державними контрактами, промисловістю і подібних фундаментальних цілей розробляється за допомогою тієї чи іншої модифікації “водопаду”.Розуміння особливостей роботи з такими проєктами поліпшує книга Сергія Зикова “Основи проєктування корпоративних систем”.
І це логічно. Про це говорить і Чак Кобб, автор книг, присвячених Agile-методам у проєктному менеджменті, наставник, інструктор:
Якщо б ви будували міст через річку, було б смішно сказати: “Ми побудуємо перший прогін, подивимося, як це виходить, а потім вирішимо, як закінчити залишкові прогини!
Серед компаній, в яких використовували або використовують Waterfall, можна відзначити:
| Назва компанії | Для чого використовувалася модель Waterfall | Використовується чи зараз методологія | Коментар представника компанії |
| Wüstenrot & Württembergische (W&W) | Розробка ERP-системи для фінансового сектора | Немає даних | _ |
| Cisco | Розробка систем безпеки | Так | _ |
| EPAM | Різноманітні продукти і рішення або їх частини | Так | Олексій Іонов: “…не обов’язково весь великий проєкт робити за Agile — можна використовувати гнучку розробку в рамках окремих фаз або потоків робіт…” |
| IBM | Різноманітні продукти і рішення або їх частини | Так | Розалінда Редкліфф: “Настав час, коли команди розробників, що займаються водопадом, не в змозі виконати вимоги бізнесу, тому ці проєкти і продукти отримують більше роботи по технічному обслуговуванню… Водопад буде поступово замінений новими технологіями та новими командами, зацікавленими у впровадженні нових бізнес-практик”. |
| Microsoft IT | Різноманітні продукти і рішення або їх частини | Ні | “Протягом останніх кількох років… усі наші команди прийняли гнучку методологію. Ми виявили, що вона вирішила багато проблем, пов’язаних із традиційною моделлю водопаду, де проєкти плануються заздалегідь і можуть зайняти місяці або навіть роки. У рамках цієї моделі продукт може виявитися застарілим, як тільки ми його випустили”. |
| AT Consulting | Різноманітні продукти і рішення або їх частини | Так | Василь Кораблев: “Для розробки систем з нуля ми використовуємо один з підходів гнучкої (Agile) або каскадної (waterfall) розробки, або їх комбінації”. |
| Parallels | Різноманітні продукти і рішення або їх частини | Так | Микола Добровольський: “В різних проєктах у нас використовуються різні підходи — десь Agile з одно-двохтижневими спринтами, а десь — майже що Waterfall з майлстоунами по кілька місяців. За багато років роботи у нас склалося враження, що чим більший проєкт і команда, що працює над ним, тим складніше і менш ефективно намагатися приліпити розробку до agile-процесу”. |
| SAP | Різноманітні продукти і рішення або їх частини | Так | Євгеній Арнаутов: “На етапі створення продукту часто можна бачити варіанти Agile, причому іноді поєднані з Waterfall-підходом”. |
| Toyota | Різноманітні продукти і рішення або їх частини | Ні | Сатоші Ішії: “…ми намагаємося навчитися застосовувати TPS (Lean на Заході) до розробки програмного забезпечення”. |
Додатки та програми для управління розробкою за каскадною моделлю
Для роботи з “водопадом” можна використовувати ряд сервісів для постановки задач. Ключові критерії — наявність тайм-трекера, канбан-дошок і діаграми Ганта.
Worksection

Привабливий український saas-сервіс з зручною мобільною версією.
Підходить для чіткого планування, оскільки є:
- діаграма Ганта зі зв’язками між задачами і дедлайнами
- розподіл обов’язків по виконавцям з різними правами
- система різних типів звітів
- коментарі, емоції і вся історія дій по проєкту зберігається
- обмежений доступ замовника/клієнта для прозорості процесу розробки
- можливість внесення бюджету і витрат
- чек-листи для дрібних етапів задач, що полегшує виконання точно за інструкцією.