Когда использовать Waterfall, когда использовать Scrum?

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

Мой вопрос: когда (для каких проектов) лучше использовать водопад, а когда лучше использовать Scrum?

Взгляните на « Новую методологию » Мартина Фаулера.
«Чистый» водопад подходит для повторяемых, познаваемых процессов, таких как производство. Используйте любую практику с эффективными петлями обратной связи, когда вы не можете измерить все заранее.
@ToddA.Jacobs, пока водопад может работать на производстве. Производство становится бережливым (agile). Лучший пример - ремонт автомагистрали/автострады. Там, где у них только одна полоса движения, и они должны заставить грузовики прибывать вовремя, по порядку. Будет много планирования и мало возможностей для адаптации.

Ответы (14)

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

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

Вы можете захотеть использовать формальные подходы, когда:

  • Вы работаете на крупного клиента, который требует очень формального подхода к поставщикам.

  • Вы работаете по контрактам с фиксированным объемом и фиксированной ценой, и клиент не ожидает (по каким-либо причинам) быстрого изменения объема.

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

Вы должны рассмотреть гибкий подход, когда:

  • Вы работаете над собственными проектами или проектами для более гибких клиентов, где вам не нужно подстраиваться под процессы клиента.

  • Вы работаете над проектом, объем которого быстро меняется (по какой-либо причине), и вы склонны принимать этот факт.

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

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

В качестве последнего совета: лучше использовать потенциально худшие методы (где худший означает тот, который не очень хорошо подходит для вашей конкретной среды проекта), но использовать его хорошо, чем использовать потенциально лучшие методы, но испортить их реализацию. См.: Хороший водопад лучше плохого аджайла

Я не уверен, согласен ли я потенциально использовать «худший» метод, если он используется хорошо. Я думаю, что большинство команд терпят неудачу в agile-подходах, потому что выбирают неправильную методологию для конкретного проекта. Правильный подход часто диктует, сможете ли вы использовать его хорошо или нет. См. этот пост в блоге для получения дополнительной информации.
это старый пост, но я проголосовал за этот ответ, потому что он, кажется, предполагает, что оба подхода одинаково действительны. Самое раннее обсуждение водопада было сделано Уинстоном Ройсом как описание того, ЧЕГО НЕЛЬЗЯ ДЕЛАТЬ в программном обеспечении PM. Как-то это забылось. У меня есть проблемы с «agile» и Agile-движением как отраслью, но водопад не является одинаково действенной методологией. en.wikipedia.org/wiki/Модель_водопада#История

Используйте Agile (Scrum, XP, Kanban), когда:

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

Используйте Водопад, когда:

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

Отличный пост Дина Леффингуэлла на ту же тему — ПРОЙДИТЕ ВИКТОРИНУВыбор Agile против Waterfall «Проекты»: викторина из десяти пунктов.

Ссылка исправлена, спасибо @Adam-Wuerl
Ссылка не работает.
Я скажу использовать водопад только в том случае, если требования полностью четко определены и не могут меняться в течение периода проекта. Но в любом случае вы найдете его очень редко.

Вы не должны использовать водопад ни для чего, кроме самых простых проектов, которые эффективно исключают около 90% всех программных проектов. Почему? Потому что программные проекты сложны по трем параметрам: требования, технологии и люди.

Чтобы проиллюстрировать это, это график Стейси, разработанный Ральфом Стейси из Университета Хартфордшира в 1980-х годах — он изучал сложность и человеческое поведение в организациях и предприятиях, а также то, как адаптировать методы управления, чтобы противодействовать их последствиям. Я адаптировал его на основе графика, который Кен Швабер использует в своих книгах и курсах по Scrum:

Стейси Граф

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

Однако типичные программные проекты, как правило, располагаются в сложной области в середине графика, где требования проходят по континууму, где они не полностью поняты или согласованы (поскольку их еще предстоит внедрить), а требуемые технологии идут по этому континууму. аналогичный континуум, где мы не уверены на 100% в том, как они работают.

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

В таких ситуациях (т. е. более 90 % времени) вам необходимо использовать итеративный/постепенный процесс, чтобы сдерживать сложность и снижать подверженность риску в течение определенного периода времени (итерации или спринта), чтобы вы могли постоянно проверять и адаптировать решение в соответствии с реалиями требований + технологии + люди.

Проверяю здесь слишком поздно, просто хотел добавить свои два цента, что это, безусловно, лучший ответ
Привет, Крис, можешь ли ты подтвердить, что являешься автором изображения выше? Кто-то поделился им со мной, и я хотел бы правильно указать его авторство. Спасибо!
Привет Ави; Да, я сделал рисунок выше, но он основан на новой интерпретации графика Стейси, который я впервые увидел у Кена Швабера более десяти лет назад.

У вас есть три фактора:

  • Деньги
  • Время
  • Требования

Если деньги и время фиксированы, а требования могут меняться , тогда вам подойдет SCRUM .

Если требования фиксированы , вы бы выбрали водопад .

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

Изменится ли когда-нибудь программное обеспечение после его первого выпуска?

Водопад предназначен для строительства мостов и домов — физических, жестких вещей, которые, как вы не ожидаете, сильно изменятся со временем.

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

Вы должны ожидать и принимать перемены .

Я понимаю, что не все с этим согласны, но использование процесса Waterfall — это № 1 в моем посте о 5 основных ошибках управления программными проектами .

Меня удивляет, что разработка программного обеспечения Waterfall по-прежнему так широко преподается и практикуется спустя столько лет.

Водопад следует использовать, когда этого требует заказчик или регулирующие органы. Не то, чтобы я знал какие-либо регуляторы, которые требуют этого.

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

Необходимо учитывать ряд факторов.

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

Вот пост о выборе методологии pm , которая может оказаться полезной.

Отличная статья, Марк!

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

Я согласен, что это работает , когда клиент может точно определить все требования заранее, но на каком основании вы утверждаете, что это «превосходно»?
Я думаю, что сторонники Agile/Scrum утверждают то же самое в отношении своей методологии. Смесь опыта, предубеждений и предпочтений. Я также предпочитаю водопад — когда вы инвестируете акционерную стоимость в размере 1500 фунтов стерлингов в секунду, тогда стоит иметь методологию, которая строго контролируется и соответствует нормативно-правовой базе и системе аудита. в ту минуту, когда вы просите команду Scrum предоставить требуемую по закону документацию, они ноют о «принципах».

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

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

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

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

Большинство компаний, которые официально практикуют водопад, за кулисами используют какой-то инкрементный или, что более реалистично, итеративный метод.

Вопросы таковы:

  1. Используют ли они формальный итеративный метод, такой как UP, Scrum, Kanban и т. д., или они придумывают его по ходу дела.

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

Если неопределенность (в требованиях, технологиях, персонале и т. д.) велика, то гибкие методы могут привести к более эффективному процессу, чем более крупные итерации (например, UP).

Исходя из опыта использования обоих, честно говоря, нет никакого реального преимущества использования водопада, если только проект не настолько мал, что умещается в течение короткого периода времени, например. Один месяц. Скрам в любом случае повторяет этапы мини-водопада в каждом спринте. Ценность Scrum заключается в том, что вы не тратите время на предварительный анализ и проектирование, пока приоритеты и рыночные условия меняются. Обзор есть [здесь] ( http://www.pashunconsulting.co.uk/what_is_scrum_blog.html )

...так вы думаете, что Scrum-команда может развернуть всю среду SAP? Это странно, поскольку сами SAP и Золотые партнеры SAP не рекомендуют подход Scrum.
@ Venture2099 Независимо от того, верен ли ответ автора, ваш контраргумент является логической ошибкой, известной как «апелляция к авторитету». Тон также граничит с язвительным; Пожалуйста, старайтесь быть вежливыми с другими членами сообщества.
1. Это не обращение к авторитету. ОП сделал общее заявление о водопаде, чтобы опровергнуть его, мне нужно найти только один пример. Я так и сделал, и этот пример подкреплен ведущими в отрасли советами. Кроме того, апелляция к авторитету не является логической ошибкой, она становится ошибкой только при неправильном использовании. На web.stanford.edu/~jonahw/PWR1/LogicalFallacies.htm есть три неправомерных использования апелляции к авторитету. Сама апелляция абсолютно не является заблуждением. Эксперты могут ошибаться, но если сравнить их с неэкспертами, они чаще всего правы. Язвительный? Виновный. Но ОП отмахивается.

Методология Scrum требует изменения мышления по сравнению с традиционными методами. Основное внимание сместилось с масштаба в методах Waterfall на достижение максимальной ценности для бизнеса в Scrum. В то время как в Waterfall стоимость и график изменяются, чтобы обеспечить достижение желаемого объема, в Scrum качество и ограничения могут быть изменены для достижения основной цели — достижения максимальной ценности для бизнеса.

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

Для получения дополнительной информации посетите: http://www.scrumstudy.com/blog/advantages-of-using-scrum-listed-down-by-scrumstudy-2/

Я думаю, что ответ Павла великолепен, и я бы +1 вам, если бы мог!

Чтобы добавить в его список. Вы бы использовали водопад, где:

  • У вас есть враждебно настроенный клиент или клиент, который отказывается взаимодействовать
    • Я говорю это только потому, что иногда это действительно случается. Клиент на самом деле не хочет изменений, и они навязываются ему владельцем или группой, но они владеют проектом. Это редко, но Agile требует участия.
Я тоже не вижу, как здесь помогает водопад, если только целью не является CYA. Любое успешное управление проектами требует вовлечения клиентов для создания ценности.

Водопад сам по себе не является методологией. Водопад — это всего лишь модель жизненного цикла.

Scrum — это гибкая методология. Методология может описывать жизненный цикл и обеспечивать процесс поддержки этого жизненного цикла.

На самом деле, вы ошибаетесь. Водопад – это методология.
@Zsolt, почему ты не проголосовал?
@Zsolt Это спорно. Модель — это не методология, но вы, безусловно, можете построить методологию на основе модели. Википедия говорит: «Водопадная модель — это последовательный процесс проектирования…», поэтому я, вероятно, поспорю, что методология — это весь материал PMBOK, который реализует модель. en.wikipedia.org/wiki/Модель_водопада
@MarkPhillips Меня отвлекла хорошая сделка от Valve ;-)
@CodeGnome, я согласен. Для меня ответ слишком общий и менее конструктивный.