Чи методологія розробки програмного забезпечення Waterfall все ще є життєздатною?


14

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

Чи є методологія розвитку водоспадів все-таки життєздатною для забезпечення програмних систем з урахуванням часу, витрат та якості?


3
Отже, якщо ви цього не відчували і не хочете переживати, це робить його мертвим? Не те, щоб я за це виступав, але це здається дивним умовою.
четверггек

9
Він не мертвий. Це просто не поточна примха / тенденція / "прийнятна"
Пол

2
@GrandmasterB Під "мертвим" я мав на увазі "достатньо доведено, що це не найкращий спосіб"
CFL_Jeff

3
@Rachel Будь ласка, не продовжуйте читати тег розробки програмного забезпечення. Це метатег, який призначений для подальшого очищення .
Томас Оуенс

3
Він не мертвий, він просто відпочиває. Пінінги для фіордів. ;)
FrustratedWithFormsDesigner

Відповіді:


20

Модель водоспаду, про яку ви посилаєтесь, ніколи не задумувалась як модель процесу, що використовується в реальному проекті. Натомість це солом’яник. Він визначає ключові фази та заходи, що існують у програмних проектах, та найпростіший потік між ними. Це спрощення спроб розробити програмне забезпечення є недоліком, і навіть було представлено таким чином.

Зі статті Вікіпедії:

Перший офіційний опис моделі водоспаду часто цитується як стаття Вінстона У. Ройса 1970 року, хоча Ройс у цій статті не використовував термін "водоспад". Ройс представив цю модель як приклад хибної, непрацюючої моделі.

Документ, що обговорюється, має назву Управління розвитком великих програмних систем . У ньому Ройс представляє цю модель на другій сторінці. Однак текст безпосередньо під піктографічним поданням продовжує читати:

Я вірю в цю концепцію, але реалізація, описана вище, є ризикованою і запрошує провал.

Він слідкує за цим, обговорюючи проблеми з тестуванням після "завершення" етапу розробки, а також, як тут невдачі можуть призвести до великих переробок та змін коду, і як вони можуть призвести до великих перевищень вартості та графіку. У всьому документі він вдосконалює оригінальну модель до тієї, яка справді є життєздатною для проекту. Зрештою, він закінчує модель, яка впроваджує прототипування, взаємодію з клієнтами та вдосконалення артефактів - ідеї, які в кінцевому підсумку виявляться критичними для спритного руху, який розпочався наприкінці 1990-х та на початку 2000-х років.

Щоб відповісти на ваше запитання: Водоспад, про який ви запитуєте, не є і ніколи не був життєздатним методом для доставки програмних проектів з розумною кількістю якості за часом та бюджетом. Однак існують й інші методології, орієнтовані на плани, які протилежні гнучкості, яка може працювати над проектами.


У багатьох статтях про спритний використовують "традиційні методи", щоб згадати про водоспад, і про те, що мається на увазі водоспад, весь час використовувались у 20 столітті. Тепер я знаю, що я помиляюся.
Мінг-Тан

@ThomasOwens Ви б не хотіли цитувати пару таких other plan-driven methodologies that lie opposite of agile that can and do work on project?
Лаїв

@Laiv Модель Spiral, як правило, більше керована планом, ніж спритний підхід - ви робите більше планування та аналізу, перш ніж розробляти робоче програмне забезпечення. CapM Gemini SDM - це ще один приклад, хоча пізніші перегляди додавали в цикл планування-перевірки-дії, але знову-таки він має пристойну кількість попереднього планування та аналізу, вбудованого в процес. Багато хто, швидше за все, буде певним варіантом водоспаду, але вбудований певний цикл зворотного зв’язку. Якщо у вас є чітке розуміння домену та відносно стабільні вимоги, можливо, вам не знадобляться тісні петлі зворотного зв’язку про спритні методи і можете планувати краще.
Томас Оуенс

9

Люди не користуються підручником моделі водоспаду, і, мабуть, ніколи цього не мають.

Це ідеалізована, теоретична конструкція, мета якої - змусити вас думати про кроки в розробці систем. Головне - ви хочете, щоб більші зміни відбувалися якомога раніше, тому що ви ніколи не матимете часу та грошей, щоб зробити великі зміни, коли буде створено багато коду.

Незважаючи на те, що це скоріше спосіб мислення, ніж процес, все-таки багато хто - напевно, більшість організацій ідуть на створення програмного забезпечення (або будинків, або підводних човнів, або будь-чого іншого ...).

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

Для Agile Snobs (TM) все добре і добре дивитися вниз на "старомодних" розробників та їх вигадливу, непрацездатну методологію водоспаду, але справа в тому, що Agile теж не панацея. Деякі проекти не можна побудувати за допомогою Agile, і багато команд, які вважають, що вони Agile, насправді просто неохайні та неорганізовані.

Методика не в цьому суть. Сенс полягає в тому, щоб подумати про те, що ви робите, і чому ви це робите саме так - і отримати максимальну цінність для замовника в найкоротші розумні терміни.


Ви, очевидно, мали дуже різний досвід «людей» для мене. Протягом останніх 30 років я працював у ряді компаній, які застосовували (і досі використовують) метод підручника водоспаду. Не дивно, що це не працює.
Девід Арно

@DavidArno Найближче, що я коли-небудь бачив "у дикій природі" до підручника Водоспад у програмному контексті, було у програмі, що будувала компанію, яка контролювала перемикання поїздів. Мотивація не полягала в тому, щоб хтось буквально помер у результаті помилки. Я думаю, це може трапитися і в місцях, де виконуються вбудовані програми, де ви не хочете збирати мільйон чогось, просто щоб дізнатися, що це не вдається через помилку. Я схильний вважати, що навіть у цих випадках Водоспад є скоріше ідеалом, ніж практикою, яка досягається досконалістю. Як ви зазначаєте - результати неминуче невдачі на якомусь рівні.
Джоел Браун

8

Міфічний процес водоспаду, який найчастіше порівнюють проти спритного, ніколи не існував і тому не може вважатися мертвим. Справжні процеси водоспаду все ще живі і здорові, і вони встигають забезпечити своєчасне використання бюджетного програмного забезпечення, яке відповідає очікуванням користувачів.


5
Не впевнений, у чому різниця між "міфічним" процесом водоспаду та "справжнім". Будь ласка, поясніть це?
CFL_Jeff

6
Часто процес водоспаду, описаний прихильниками Agile, є солом'яком en.wikipedia.org/wiki/Straw_man
jfrankcarr

11
Це було б кращою відповіддю, якби ви пояснили у своїй відповіді, як прихильники Agile створюють солом’яний процес, який не працюватиме, але не є належним чином Водоспадом.
Роберт Харві

4
-1 для твердження: "Вони досягають успіху в доставці ..." Правда полягає в тому, що це миття. Як і всі програмні методології, іноді вона працює, іноді - ні. І те, і інше я бачив у випадку справжнього методу водоспаду.
riwalk

2
Мені доведеться сказати, [цитування потрібне] на цю відповідь. І -1, поки не буде забезпечено. Особливо "чудовий час надання бюджетного програмного забезпечення, яке відповідає очікуванням користувачів" Звіт CHAOS не погоджується з вами.
Мальфіст

5

Можливо, кращий спосіб запитати, до чого ви стикаєтесь, "коли менш ітеративний і формально кращий?"

Є ситуації, коли це так:

  • Коли вимоги не зміняться.

  • При дотриманні нових вимог менш важливо, ніж потрапляння на 100% від початкових.

  • Коли всі компоненти технології зрілі та добре зрозумілі.

У певному сенсі ти можеш сприймати протилежне тому, що може змусити тебе бути спритним.

Дуже мало техніки застосовується скрізь. Дуже мало хто не має користі.


1
Що у світі є "меншосвітньою" чи "більшою формою"?
Aaronaught

1
@Aaronaught - "менш ітеративний" та "більш формальний", набраний жировими пальцями на iPhone. :-)
MathAttack

1
Я ніколи не працював над проектом, який би виконав навіть одну з цих передумов. :)
Теодор

3

Так, він дуже живий, хоча сьогодні це звичайніша " V модель ", яка використовується.

У будь-якому випадку проблема Agile полягає в тому, що рішення майже ніколи не закінчується, замовник може продовжувати запитувати зміни, і розробка надалі буде ітеративно їх вирішувати. Для проекту, який базується на витратах часу та матеріалів, це працює дуже добре. Для проекту, який має фіксовану вартість, він не відповідає.

Для цих проектів з фіксованою вартістю замовник майже завжди очікує, що заздалегідь визначені основні етапи продемонструють прогрес, однак це скоріше формальне письмове розмаїття, а не робочий код. Для таких клієнтів письмові специфікації стають проектом, де розробка програмного забезпечення є другорядним фактором (як вони припускають, якщо у вас чітко визначений проект, програмне забезпечення повинно бути легко розробити). Ці компанії також є тими, хто активно використовує дешеві, передані в аутсорсинг ресурси.

Отже, якщо у вас є фіксований горщик грошей або часу, не очікуйте, що вимоги зміниться або заборонено змінювати будь-які вимоги, і очікується, що вони нададуть великий набір письмової документації, тоді моделі водоспаду - єдині мати сенс.

Agile можна ввести в середині цих проектів, щоб зробити розробку, але у вас все ще є фаза нарощування, де специфікації створюються з вимог, і фаза рампування вниз, де програмне забезпечення встановлюється і тестується in situ. Agile не дуже добре реагує на ці випадки.


Agile може дуже добре працювати з фіксованим коштом грошей або часу, за умови, що сфера застосування також не фіксована. Інший момент полягає в тому, що замовник / підрядник може вибрати тип договору (T&M, фіксована вартість або щось середнє), щоб відповідати певній методології розробки (спритний або водоспад) - це не заздалегідь визначено.
ДНК

1

Кому? Більшість менеджерів, з якими я мав справу, досі використовують процес розробки програм водоспаду для планування, і вище рівня, схоже, він подобається для легкого планування.

Практично дуже мало розробників, яких я знаю, вважають, що це працює або навіть є дійсним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.