Существуют ли основные альтернативы Водопаду и Agile? [закрыто]

35

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

Морган Херлокер
источник

Ответы:

47

Википедия перечисляет их как методологии / процессы разработки :

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

  • Чистая комната - в центре внимания чистой комнаты - предотвращение дефектов, а не их устранение.

  • Итеративный - циклический процесс разработки программного обеспечения, разработанный в ответ на слабые стороны модели водопада. Он начинается с первоначального планирования и заканчивается развертыванием с циклическими взаимодействиями между ними.
    итерационная диаграмма

  • RAD - использует минимальное планирование в пользу быстрого прототипирования. «Планирование» программного обеспечения, разработанного с использованием RAD, чередуется с написанием самого программного обеспечения.

  • RUP - Rational Unified Process (RUP) - это адаптируемая итеративная структура процесса разработки программного обеспечения, предназначенная для адаптации путем выбора подходящих элементов процесса.

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

  • Водопад - последовательно через фазы Зачатия, Инициирования, Анализа, Проектирования, Конструирования, Тестирования и Обслуживания.
    схема водопада

  • Lean - перевод принципов и практики Lean Manufacturing и Lean IT в область разработки программного обеспечения; все, что не добавляет ценности клиенту, считается ненужным.

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

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

Питер Боутон
источник
Спасибо за такой ясный, краткий ответ. Я такая старая школа, я никогда не слышал, чтобы многие термины распространялись на P.SE.
Майкл Райли - AKA Gunny
7
Отличный список, кроме TDD. Это не жизненный цикл, а практика разработки.
Майкл
18

Ковбой Кодирование

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

Брюс Олдерман
источник
2
ура! ПИФ-паф!
mlvljr
3
«скорее всего, не будет работать в корпоративной обстановке». Говорит вам! ;)
Бобби Столы
+1 Ааа, классно! Я делаю это иногда, но я не знал, как назвать этот «процесс» :)
Zzz
дааааааа падна!
Ибакос
В официальных зрелых корпоративных настройках верно. Тем не менее, в малом бизнесе может быть довольно мало менталитета "Просто сделай это".
JB Кинг
4

Спиральная модель

Спиральная модель - это процесс разработки программного обеспечения, объединяющий элементы как поэтапного проектирования, так и поэтапного создания прототипа, чтобы объединить преимущества концепций сверху вниз и снизу вверх. Также известный как спиральная модель жизненного цикла (или спиральная разработка), это метод разработки систем (SDM), используемый в информационных технологиях (IT). Эта модель развития сочетает в себе особенности модели прототипа и модели водопада. Спиральная модель предназначена для крупных, дорогих и сложных проектов.

- Википедия альтернативный текст

Райан Хейс
источник
1

План

Сядьте с клиентом (или конечным пользователем) и разработайте ряд вариантов использования.

дизайн

Разместите систему на бумаге / доске над несколькими сортами пива и пиццы. Сникер, когда что-то выглядит фаллическим.

Подтверждение

Подтвердите проект с клиентом (или конечным пользователем) и заморозьте требования.

Код

Самоочевидно.

Джош К
источник
«Требования по замораживанию» - это самое простое из всех, что когда-либо было сказано.
Джастин Шир
1

Этот аргумент «Водопада» был давно и использовался проворными лидерами мысли на раннем этапе. Они также столкнулись с «реальностью» водопада как с «красной тревогой».

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

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

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

Недостатки Agile:

  • Agile слишком ориентирован на программиста, поэтому неясно, как сбалансировать работу всей организации.
  • Если вы не знаете, куда идете, Agile не доставит вас туда!
  • Создание фреймворков без явных потребностей.
  • Злоупотребление языковыми функциями (неуместно).
  • Нет тест-первый менталитет.

Хорошо для интересной методологии, которая может работать как альтернатива AGILE, лучше всего рассматривать по этим 3 ссылкам:

Канбан как альтернативная гибкая реализация

Kanban разработка программного обеспечения

Бережливая разработка программного обеспечения в облаке

Тони
источник
3
Если вы не знаете, куда идете, водопад не доставит вас туда!
Эрик Уилсон