Agile Vs спиральная модель для SDLC [закрыто]
Я считаю, что Agile-это не что иное, как еще одна реализация спиральной модели. Я большой сторонник спирали (спиральная модель-это процесс разработки программного обеспечения, объединяющий элементы как проектирования, так и прототипирования поэтапно, в попытке объединить преимущества концепций сверху вниз и снизу вверх) с самого начала и видел, что многие проекты реализуют спираль, не зная, что они работают в спиральном мире. С того дня Agile начала набирать популярность концепция спираль начал немного упускать из виду. Я уверен, что для сложных проектов спираль по-прежнему является лучшей альтернативой, но я хотел бы лучше понять сходства и различия между гибкими и спиральными методами. Может кто-нибудь объяснить их различия/сходства?
6 ответов
Agile is спираль. Полностью. Частично название было изменено в маркетинговых целях.
проблема в том, что спираль имеет тенденцию подразумевать "большой дизайн спереди" - где вы планируете много спиралей, каждая в порядке риска. Спираль, однако, не является гибкой - это просто инкрементное выполнение в порядке риска.
одно большое различие, что живчик добавляет Это "не overplan вещей, которые вы можете не знать." Проворный is спираль, но вы создаете подробные планы для просто один прирост по времени.
Agile добавляет много других вещей, также. Спираль-это очень технический подход. Ловок, однако, признает, что технология построена людьми. The Аджайл Манифест имеет четыре принципа, которые выходят за рамки простого подхода к управлению рисками Бема.
основное различие, как я вижу, заключается в том, что большинство спиральных моделей развития по-прежнему настаивают на большом, переднем дизайне. Акцент делается на том, чтобы знать как можно больше о том, как будет использоваться система; открывать все варианты использования. Как только вы их узнаете, вы проектируете систему и разбиваете ее на фазы, которые следуют за итеративной детализацией-проектирование, реализация, тест, рефакторинг-цикл проектирования. В Agile, их является некоторым фронтовым планированием - возможно, сбор большого понимания зерна (история titles) -- так что разумные релизы могут быть описаны, но каждый релиз планируется независимо, и мы откладываем обнаружение деталей, пока мы не будем готовы начать реализацию этого релиза. Мы ожидаем перемен и не пытаемся узнать все первыми.
еще одна вещь, которая отличается тем, что большинство гибких философий включают методы "тест-первый". Это отличается от спирали, где тестирование часто является самостоятельной деятельностью, а тесты не разрабатываются до кода. Чаще всего они планируются заранее,но разрабатываются параллельно или после кодирования. Многие гибкие методы настаивают на разработке тестов сначала в качестве спецификации для кода.
Они похожи в том, что они являются итеративными. Они различаются в реализации и понимании того, что такое итерация.
Я не эксперт по спиральной модели, но из определения Википедии мне кажется, что есть некоторые существенные различия.
например, в гибком проекте в конце итерации не стоит прототип, а полностью функциональная, полностью протестированная, потенциально развертываемая (1) система, содержащая функции с наивысшим приоритетом в списке функций.
требования, собирающиеся в начале проекта, должны быть едва достаточными, чтобы получить собирается (сделать следующий шаг) и подразумевается, что они будут воплощены незадолго до того, как они будут фактически реализованы. Изменения к требованиям приветствуются.
кроме того, Agile - это гораздо больше, чем просто итеративная разработка-акцент на разговор лицом к лицу вместо письменного общения, акцент на объединении деловых людей и технических специалистов в их повседневной работе. Фокус в совместной максимизации стоимости вместо определения и последующего выполнения заключить.
в случае, если вы еще не видели его, взгляните на Аджайл Манифест, что в основном является определением для разработки гибкого программного обеспечения.
(1) это не значит, что он должен сделать бизнеса чтобы развернуть систему, "просто", что это технически осуществимо. Это должно быть чисто бизнес-решение о развертывании системы в конце итерации.
Я считаю, что Agile - это тип итеративного SDLC, а спираль - тип инкрементного SDLC. Scrum является одним из типов гибких других-DSDM/FDD / XP и т. д. Все SDLC после водопада следовали за тем же набором действий(анализ требований, дизайн, кодирование и тестирование) в некоторых различных комбинациях. Таким образом, базовый набор действий в последовательном или итеративном или Инкрементном одинаковы.
насколько проворный и спираль забота оба имеют общее преимущество 1.Изменение обработки требований 2.Короткий срок выпуск 3.Управление рисками легко из-за более короткой продолжительности SDLC 4.Cross team помогает продукту и проекту идти гладко
First Agile-это на самом деле ряд различных процессов, которые следуют аналогичной философии. Одна из философий, которая делает его другим, заключается в том, что каждая итерация производит рабочий продукт. Его можно охарактеризовать как итеративный и инкрементный. Большое внимание уделяется рабочему продукту и тестированию. Во многих гибких моделях тестирование предшествует кодированию.
в спиральной модели количество итераций фиксировано, в то время как каждый этап гибкой модели может состоять из любого число итераций.
вы правы, что есть сходства, но основная философия делает разницу. Это страница объясняет более подробно и сравнивает agile с другими методами.
вы можете сказать, что гибкие процессы управляются прецедентом...уделяя много внимания людям, конечному пользователю.
Я бы сказал, что спираль и Agile похожи. Однако в последнее время agile часто становится пропагандистской системой, чтобы оправдать ковбойское кодирование. Т. е.
- чрезвычайно минимальные требования
- минимальный технический анализ
- минимальный документация
- Нет комментариев код
- специальный бонус -- неправильное использование доменного дизайна для чрезмерного усложнения объектной модели
Это никогда не было идеей со спиралью. Я бы поспорил что на самом деле это не точка Agile, хотя вы будете удивлены, сколько раз я видел это в последнее время. все больше и больше опытных разработчиков / PMs начинают видеть мудрость более сбалансированного подхода между waterfall и" agile " - возможно, это просто возвращает нас к спирали.
хотя есть некоторые полезные идеи в гибком пространстве разума, часто кажется, что это проявляется от людей, которые были в организациях, которые имели особенно чрезмерно обременительные / бесполезные методологии разработки программного обеспечения и были реакцией / чрезмерной реакцией на это.