Действительно ли Scrum подходит для всех типов проектов?

Проект, над которым я работаю, носит чисто нефункциональный и глубоко технический характер и направлен на улучшение производительности продукта в целом. Мне трудно понять, насколько Scrum является подходящей методологией для такого рода проектов:

  • Деловой человек, также известный как PO, понятия не имеет, о чем мы говорим во время наших планов, поскольку вся работа является глубоко технической и не имеет последствий для пользователя.
  • В результате предыдущего он не может управлять бэклогом, и нам приходится создавать все пользовательские истории и управлять ими.
  • Концепция пользовательской истории также не имеет смысла. В нашем проекте нет пользователя. Все взаимодействия происходят между различными компонентами системы.
  • Оценки делать довольно сложно, так как почти вся работа подразумевает выполнение того, чего мы раньше не делали, поэтому присвоение баллов историям кажется практически бесполезным занятием.
  • Сроки доставки работающего программного обеспечения обычно исчисляются месяцами, а не неделями для большинства вещей, которые мы должны сделать, поскольку они требуют большого количества исследований, прежде чем даже начать что-то делать. Так что обычно спринты значат для нас не так уж много.
  • Нет клиента, с которым можно было бы проверить прогресс, оставить отзыв о нашей работе и внести соответствующие коррективы, поскольку это связано исключительно с производительностью, и для этого мы проводим тесты производительности, чтобы увидеть прогресс.

Итак, учитывая все эти моменты, либо я упускаю какую-то часть Scrum, либо это правда, что он не подходит для такого рода проектов? И вообще, если это правда, какие проекты не подходят для Scrum?

Привет, dragosb, здорово, что ты начинаешь вносить свой вклад. Ofc Scrum подходит не для всех целей. Вообще говоря, когда неопределенность низкая, мы не хотим использовать Scrum (не говорю, что это ваш случай).
Можете ли вы углубиться в то, что вы подразумеваете под «чисто нефункциональным»? Многие типичные нефункциональные требования могут быть преобразованы в функциональные требования. Например, «высокая производительность» может быть преобразована в «среднее время ответа на запрос с 1 миллионом активных в данный момент пользователей — x миллисекунд». Это доходит до того, что я видел, как некоторые люди утверждают, что функциональных требований к бункеру не существует.
«ПО понятия не имеет, о чем мы говорим во время нашего планирования, поскольку вся работа является глубоко технической и не имеет последствий для пользователей» . Вы не должны решать задачу на собрании. Вы должны указать, что необходимо сделать и почему это полезно для бизнеса. Если вы не можете этого сделать, вы не должны выполнять эту задачу. (Сокращение технического долга считается благом для бизнеса.)
@LightnessRaceswithMonica «Тогда вы говорите не о том, что нужно, на совещании по планированию. Вы не должны решать задачу на совещании». Мы ничего не решаем на встрече. Мы заявляем, что нужно сделать, но то, что нужно сделать, является глубоко техническим, как уже упоминалось. Кроме того, почему это хорошо для бизнеса? Потому что то, что нужно сделать, поддерживает конечную цель проекта, но это самоочевидно.
Это моя точка зрения: если «то, что нужно сделать», является «глубоко техническим», то вы недостаточно абстрагируете его для целей планирования и углубляетесь в детали реализации на совещании по планированию. Кроме того, «потому что то, что нужно сделать, поддерживает конечную цель проекта» на самом деле не является бизнес-кейсом; это просто "потому что это так". У вас должно быть более сильное обоснование, чем это. И я уверен, что да: вам просто нужно найти способ озвучить это.
@LightnessRaceswithMonica, весь проект был начат с коммерческой стороны, чтобы улучшить общую производительность платформы, а затем нам было позволено возглавить проект в основном, но все же деловой человек является PO, потому что согласно компании все работает в Scrum. . Трудно вдаваться в подробности, но то, что вы говорите, не имеет большого значения для нашего случая. Кроме того, в чем польза тратить столько времени на попытки достичь этих абстракций, чтобы PO мог понять, что мы делаем, вместо того, чтобы фактически выполнять свою работу?
@dragosb Извините, ничто из того, что вы только что сказали, не меняет принцип работы схватки и не исправляет тот факт, что вы вдаетесь в такие технические и низкоуровневые детали на своих сессиях планирования, что ваш владелец продукта буквально не понимает, о чем вы говорите . Неважно, что у вас за дело или кто организовал процесс: он не работает. И вот почему вы пришли сюда: узнать от нас, почему это так.
Что касается достижения абстракций, хм, я не понимаю, это буквально не требует времени. Это способ говорить. Во всяком случае, это должно значительно сократить ваш разговор о планировании. Вместо «нам нужно убрать панель и сделать xarg a char*» вы говорите «нам нужно реорганизовать это, потому что оно слишком дублируется и тратит время разработки на его поддержку» . Бонус: это также бизнес-кейс.
@LightnessRaceswithMonica Я ценю ваши идеи, но, глядя на ваши ответы, я предполагаю, что у вас есть особое мышление, определяемое, вероятно, проектами, над которыми вы работали, и то, что вы говорите, вероятно, имеет большой смысл для них. Также я не пришел сюда, чтобы узнать, почему он не работает, пожалуйста, просмотрите мой вопрос.
Это не конкретное мышление, это буквально то, как работает скрам, и не только это, но и управление проектами и людьми в целом, но хорошо, продолжайте, и удачи :) (я просмотрел ваш вопрос и «[я] упускаю какую-то часть Scrum " Кажется, здесь хорошо подходит.)
«деловой человек — это PO, потому что именно так все работает в Scrum, согласно компании». Кто в данном случае «компания»? Лидерство? Ваш босс? Остальная часть вашей команды?
>>>весь проект был начат с коммерческой стороны, чтобы улучшить общую производительность платформы<<< Производительность сама по себе не является ценностью для бизнеса. Это начинает становиться ценностью для бизнеса, как только вы понимаете, что делаете с большей производительностью. Примеры: улучшенный пользовательский интерфейс за счет более короткого времени отклика, упрощенная архитектура, поскольку более высокая производительность устраняет необходимость в балансировке нагрузки, экономия средств, поскольку 5 серверов выполняют работу, ранее выполнявшуюся 10 серверами, и т. д. Это то, что должен решить нетехнический владелец продукта.

Ответы (5)

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

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

2) Хотя элементы бэклога продукта могут исходить от кого угодно, PO должен понимать их достаточно, чтобы говорить об их ценности и уметь расставлять приоритеты. Являются ли ваши элементы невыполненной работы выражением проблем, которые необходимо решить, или задач в решении. Если первое, то снова вы можете посмотреть на другой PO. Если последнее, у вас могут быть неправильные элементы в вашем отставании.

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

4) Относительная оценка предназначена для обработки неопределенностей или неизвестных и помогает в большинстве проектов. Однако в некоторых проектах так много неопределенности, что оценки становятся бесполезными. К счастью, Scrum их не требует. Я бы дал рекомендацию: если вы не используете оценки, используйте временные рамки. Временная ячейка устанавливает количество времени, которое нужно поработать над чем-то, прежде чем вернуться к группе, чтобы посмотреть, стоит ли продолжать тратить время или есть что-то более важное.

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

6) Кто хочет более высокой производительности, сколько они хотят и как это повлияет на них? Вот кто у вас в обзоре. Ваше проблемное пространство кажется очень узким, поэтому я не удивлюсь, узнав, что ваши обзоры очень прямолинейны.

как для №4, так и для №5. В тех случаях, когда требуется обширное расследование/исследование, а общие задачи в настоящее время слишком велики и неизвестны для надежной оценки, разбивка их на более мелкие фрагменты, безусловно, является ответом. Чтобы согласиться с предложением о временных рамках и сохранить смысл спринтов... Они могут разбить исследование на задачу с временными рамками и сделать так, чтобы результаты исследования были результатом для этой задачи в одном спринте. Затем они могут использовать то, чему научились, для более точной оценки реализации в будущем спринте.
@Mr.Mindor, действительно ли это стоит того, чтобы тратить кучу времени на попытки (возможно, даже искусственно) разбить задачи на более мелкие задачи, которые могут уместиться в двухнедельный спринт? Это требует много усилий и времени, которые в конечном счете могли бы быть потрачены на фактическое выполнение работы. Какова основная выгода, которая делает его стоящим?
@dragosb Вопрос «Действительно ли это того стоит?» будет отвечать по-разному в каждом конкретном случае. Для каждой задачи будет точка, в которой затраты на ее выполнение превышают выгоду, где эта точка зависит от того, насколько хорошо понята задача и насколько она велика. Вероятно, никогда не стоит искусственно разбивать задачу . Большая, но очень хорошо понятая задача, возможно, не стоит того, чтобы ее разбивать. Однако, по моему опыту, легкость разбивки задачи напрямую связана с тем, насколько хорошо она понята. (продолжение)
(...продолжение) По моему многолетнему опыту, я не могу придумать хорошо понятной задачи размером более 2 недель, которая потребовала бы искусственных средств для разбиения на более управляемые куски. Я не говорю, что мы всегда разбивали эти задачи дальше.
@JimmyBreck-McKye, это «задача», которая может занять у нескольких человек несколько месяцев. Я был бы глубоко обеспокоен, если бы его нельзя было разбить на подзадачи. Конечно, более поздние задачи, вероятно, будут развиваться по мере выполнения более ранних, но это, вероятно, нормально. Оставляйте отдаленные будущие задачи расплывчатыми и уточняйте их по мере того, как их предварительные условия приближаются к завершению.
@dragosb Что касается «на самом деле делать работу». Выяснение того, как что-то реализовать, и есть настоящая работа. Чтобы работать эффективно, эта часть всегда должна быть выполнена. Вы можете понять это до начала реализации, постепенно/итеративно, когда вы вводите код в свою IDE, или вы можете сделать это только задним числом через 3 месяца. Вам не обязательно иметь все детали до того, как вы начнете, но если вы не понимаете проблему настолько хорошо, что не можете разбить ее на части размера спринта, переходите к «выполнению работы». без стратегии почти всегда в конечном итоге будет стоить дороже.
@JimmyBreck-McKye Это звучит как цель, которая может быть даже невозможной, поэтому ее нельзя явно разбить без дополнительных исследований. Но 7 (бонус) 6 общих задач: 1: проанализировать/испытать тепловые характеристики текущей конструкции и определить «горячие точки». 2: определить дельту между текущим профилем и целью. 3: предложить X возможных изменений. 4: Имитация влияния каждого Xj на профиль. 5: Выберите/включите успешных кандидатов и включите в дизайн. 6. Смоделируйте/подтвердите комбинированный эффект выбранных изменений. 7. Изготовление и испытание опытных образцов усовершенствований.
@dragosb, чтобы четко ответить на последний вопрос из вашего комментария: основные преимущества, которые делают его стоящим, такие же, как основные преимущества следования схватке вообще! (в произвольном порядке) Наглядность/прозрачность (ожидания понятны заинтересованным сторонам и могут быть проверены); повышенное Качество (меньше багов по непредвиденным ситуациям); Гибкость (принятие обоснованных решений об отказе/изменении курса); снижение риска (см. качество и видимость). повышение производительности (тратить меньше времени на тупики, исправление ошибок).
Просматривая комментарии, я вспоминаю распространенную фразу о разработке программного обеспечения... "недели кодирования могут сэкономить часы анализа".

Действительно ли Scrum подходит для всех типов проектов?

Как и многие вещи в индустрии программного обеспечения, Scrum не панацея. Это хорошо работает для некоторых типов проектов и менее эффективно для других. Я часто видел, как Cynefin Framework упоминается при попытке определить типы проектов, в которых может использоваться Scrum, так что, возможно, взгляните на него и посмотрите, к какой категории может относиться ваш проект.

Еще одна вещь, которую я часто видел, это то, что Scrum навязывается командам без учета типа выполняемой работы. Из вашего вопроса кажется, что это может быть так. Кто выбрал Scrum для вас и вашей команды? Почему? Рассматривали ли вы другие способы организации своей работы? Может ли Канбан выглядеть более многообещающе?

Проблема с тем, как вы сформулировали вопрос, заключается в том, что в нем упоминаются вещи против принятия Scrum, но ничего не говорится об остальном. Являются ли эти вещи серьезными запретами или просто чем-то, что вы определили? Я говорю о том, что у любого проекта есть свои проблемы. Так что относитесь к этому как к вызову, анализируйте его и ищите решения, будь то Scrum, Kanban или что-то еще.

Затем, если Scrum может справиться с работой, используйте его. Но если вы найдете что-то лучшее, лучше не «подгонять» свою работу под Scrum, а просто использовать лучшее, что вы нашли. Если, с другой стороны, у вас нет права голоса при выборе способа работы, и вам нужно использовать Scrum, потому что так говорит некая высшая сущность, то у вас есть более серьезные проблемы, чем то, что Scrum не является лучшим средством для вашей работы.

«Это серьезные запреты или просто то, что вы идентифицировали?» Пункты, которые я перечислил, — это то, что я определил как вещи, которые не имеют для меня смысла во всем процессе, которому мы должны следовать, и которые заставили меня подумать, что наш проект может не очень хорошо подходить для Scrum. Из ответа Дэниела я понимаю, что некоторые из пунктов на самом деле не являются частью Scrum, а скорее являются некоторыми «улучшениями Scrum», которые, к сожалению, являются обязательными.
Если какой-либо процесс является «обязательным», вы вообще не проводите схватку и, возможно, вам придется изменить свой вопрос. Один из принципов Scrum заключается в том, что команда может изменить любой процесс или любую церемонию. Agile-принцип 12: «Команда через равные промежутки времени размышляет о том, как стать более эффективной, а затем соответствующим образом настраивает и корректирует свое поведение». Ценность манифеста 1: «Мы стали ценить людей и взаимодействие выше процессов и инструментов» agilemanifesto.org
@dcorking Хотя Scrum — отличный контейнер, вы не можете делать все, что хотите, и называть это Scrum. Scrum имеет неизменяемые аспекты . -- Не путайте проверку и адаптацию с "ковбойской ловкостью". Все agile-фреймворки и методологии требуют соблюдения некоторых основных правил взаимодействия. Разница между инспектированием и адаптацией и ковбойской гибкостью тонка, но вполне реальна.

Добавив немного к отличному ответу Даниэля.

Ты говоришь:

вся работа глубоко техническая и не имеет последствий для пользователя

Но вы также говорите:

сосредоточены на повышении производительности продукта в целом

Я могу назвать две причины, по которым вы могли бы улучшить производительность продукта:

  1. Для улучшения взаимодействия с пользователем (более быстрое время отклика и т. д.)
  2. Чтобы уменьшить количество оборудования, необходимо получить тот же уровень производительности.

Если это причина 1, то у вас есть последствия, с которыми сталкиваются пользователи, и они будут определять ваши истории. Например, что-то вроде:

Как пользователь, я хочу, чтобы продукт реагировал быстрее, чтобы я мог сделать больше.

Если это причина 2, то клиент, скорее всего, внутренний и хочет сэкономить. Например, что-то вроде:

Как ИТ-директор я хочу сократить свой текущий бюджет на оборудование, чтобы повысить прибыльность.

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

Спасибо за отзыв. Проблема, которую я нахожу в тех историях, которые вы упомянули, заключается в том, что они очень общие. «Как пользователь, я хочу, чтобы продукт реагировал быстрее, так что X»… это было бы буквально правильным утверждением для всей работы, которую мы проделали за последние годы, и я не понимаю, как у нас может быть отставание такого рода. истории. Для меня это больше похоже на общую цель проекта, чем на пользовательскую историю.
Примеры, которые я привел, являются общими, потому что я мало знаю о деталях вашей ситуации. Они могут быть более конкретными: «Как пользователь, я хочу, чтобы время загрузки страницы было менее 10 секунд даже во время пиковой нагрузки, чтобы мне было приятно просматривать страницы». На самом деле то, насколько специфичны эти истории, будет отражать, насколько хорошо продуманы нефункциональные требования. Может возникнуть соблазн игнорировать аспект «почему» в нефункциональных требованиях, но на самом деле он так же важен, как и в случае с функциональными требованиями.
@dragosb Зачем вообще нужно повышать производительность? Запишите, скажем, пять конкретных ситуаций, когда низкая производительность создает проблемы (и какие именно проблемы) — если не можете, то, может быть, это не производительность, а что-то еще, что нужно улучшить? (Я прокомментировал в контексте этого ответа, потому что Барнаби Голден предлагает принципиально такой же подход.)
@Arvo Мне это не нужно, это нужно бизнесу, и весь этот проект был начат с этой целью, которая фактически заменяет старый механизм выполнения / вычислений новым.
@BarnabyGolden, даже «конкретный» пример, который вы приводите, все еще звучит для меня очень общим. Наша цель — улучшить общее время отклика, и мы достигаем этого, заменяя базовый механизм выполнения. Я действительно не понимаю, как пользователь попадает в картину выполнения этой работы, поскольку изменения полностью прозрачны для них, а сама ценность для бизнеса является общей ... лучшая производительность, которая приводит к более дешевому оборудованию и более довольным клиентам, это цель. проекта не пользовательская история.
вы создаете новый механизм выполнения или настраиваете существующий, созданный другой командой?

TL;DR

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

Анализ вопросов

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

  • инициация проекта
  • концептуализация или выбор средств управления проектом
  • организационные или проектные коммуникации

Вопрос в том виде, в каком он написан в настоящее время, также представлен скорее как запрос на поддержку с предвзятостью подтверждения, чем как конкретная проблема, которую необходимо решить. Таким образом, этот аспект вопроса выходит за рамки и не будет рассматриваться в этом ответе.

Для чего был разработан Scrum

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

Scrum в первую очередь предназначен для разработки продукта. Само руководство называет ряд конкретных применений:

  1. Исследуйте и определяйте жизнеспособные рынки, технологии и возможности продукта;
  2. Разрабатывать продукты и улучшения;
  3. Выпускайте продукты и усовершенствования так часто, как много раз в день;
  4. Разрабатывать и поддерживать облачные (онлайн, безопасные, по запросу) и другие операционные среды для использования продукта; и,
  5. Поддерживать и обновлять продукты.

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

Когда не следует использовать Scrum

Безусловно, существуют альтернативы использованию формального Scrum , когда проблемная область не соответствует теории или ценностям структуры. Такой список никогда не может быть исчерпывающим. Тем не менее, безусловно, есть распространенные негативные варианты использования, в том числе:

  1. Открытые процессы поддержки или предоставления услуг.
  2. Процессы по требованию (два частых примера — служба поддержки или колл-центр).
  3. Когда планирование приращений точно в срок невозможно или нежелательно.
  4. Крайне короткие проекты.
  5. Индивидуальные проекты.
  6. Очень маленькие или очень большие команды.
  7. Результаты, которым не хватает центральной сплоченности.
  8. Результаты, для которых отсутствует измеримое определение «Готово».
  9. Проекты без активного сотрудничества с заинтересованными сторонами.

Если ваша проблемная область принципиально не соответствует модели Scrum, другие фреймворки или методологии могут подойти лучше. Какой фреймворк будет «лучшим», будет субъективным, но любой установленный фреймворк должен иметь четко определенные цели проектирования, которые вы можете использовать для управления процессом выбора.

«Вопрос (...) - это (...) запрос на поддержку с предвзятостью подтверждения, чем конкретная проблема, которую необходимо решить». Этот. Не будет ответов, которые изменят мнение, если ОП не захочет меняться.

Scrum — модное слово среди менеджеров, особенно среди тех, кто никогда не занимался кодированием/анализом/тестированием. Он подходит для некоторых конкретных проектов, но не для всех. Многим это не подходит, одним из них являются те, которые посвящены сугубо техническим темам. Скрам на самом деле известен тем, что накапливает технический долг (легко просто перетасовать эти «неприятные» задачи куда-нибудь в бэклог). Я думаю, что лучший способ для каждого проекта — это использовать базовый канбан, а затем адаптировать его в соответствии с требованиями разработчика и проекта, который должен быть либо более гибким, либо более жестким (что само по себе неплохо, особенно для проектов с высоким уровнем риска). проекты). Имейте в виду, что «водопад» — это не ругательство, как хотели бы заставить нас поверить все эти скрам-тренеры, мастера и гуру.

Это содержит ложные утверждения об Agile и Scrum. Попробуйте прочитать руководство по Scrum, и вы будете приятно удивлены, узнав, что оно не защищает ничего из этого. Кроме того, название Waterfall было придумано практиками Agile как соломенная чучело, так что да, это именно то, что оно означает.
@DaveHillier Ваше определение «водопада» как гибкого уничижительного выражения неверно. Существует реальная модель под названием «Модель водопада» , уходящая своими корнями в 1956 год. Даже первое официальное использование термина задолго до появления гибкого движения, хотя вы правы, что даже в своей первоначальной форме он предназначался для описания модели. с известными недостатками.
Помимо моего комментария к @DaveHillier, он прав, что этот «ответ» в значительной степени является необоснованным мнением. Хотя «модное словечко agile», безусловно, может быть проблемой, Scrum по своей сути не является фреймворком, состоящим только из модных словечек. Большинство сбоев Scrum связаны с ошибками реализации или неправильного применения , а не с недостатками фреймворка. Таким образом, этот ответ в настоящее время фактически не отвечает на вопрос, заданный изначально.
Википедия @ToddA.Jacobs делает следующее заявление: «Первое формальное описание модели водопада часто цитируется как статья Уинстона В. Ройса 1970 года, [3] [4], хотя Ройс не использовал термин водопад в этой статье. Ройс представил эту модель как пример ошибочной, неработающей модели, именно так этот термин обычно используется в письме о разработке программного обеспечения — для описания критического взгляда на обычно используемую практику разработки программного обеспечения. лучше сказать, что он используется как соломенное чучело.