
Что такое спиральная модель разработки ПО?
В спиральной (спиралевидной) модели разработки все идет по спирали: жизненный цикл продукта закручен в нее и разделен на фазы. Прохождение каждого витка дает инкремент. То есть некий готовый функционал.

Как работает спиралевидная модель?
Петли спирали — это фазы разработки ПО. В модели выделяют четыре главные фазы: Планирование. Анализ и выявления рисков. Разработка и тестирование. Оценка результата и переход к новому витку.

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

Спиральная модель разработки ПО
В спиральной (спиралевидной) модели разработки все идет по спирали: жизненный цикл продукта закручен в нее и разделен на фазы. Каждый виток спирали может быть моделью водопада (waterfall) или V–образной моделью (разработка через тестирование). Разработка идеи поэтапно. Пока не завершится предыдущий этап, следующий не начнется.
Прохождение каждого витка дает инкремент. То есть некий готовый функционал.
Кстати, использовать спиральную модель начали больше 30 лет назад. И она до сих пор актуальна.


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

Кому подходит спиральная модель разработки ПО
Она подходит крупным и сложным проектам с большим бюджетом. Например, разработка системы документооборота для банков, государственные проекты или создание системы «Умный дом».
Применение спиральной модели в разработке довольно затратная история. Небольшие проекты могут ее просто не потянуть. Главные расходы идут на управление рисками. Ведь в спирале как нигде важна именно фаза выявления и разрешения рисков. А такой контроль на практике требует проводить анализ на каждом витке или итерации. Для этого нужны дополнительные ресурсы, и дополнительные навыки.
Лучше всего подходит для проектов:

Оценка рисков в спиральной модели разработки (v2)
Спиральная модель справляется с рисками через создание прототипов на каждом этапе разработки. Также на каждом этапе определяют характеристики продукта, все тщательно анализируют.
Каждая последующая фаза разработки зависит от предыдущей, основывается на ней. И в конце каждого витка спирали команда, заказчики и все заинтересованные в продукте лица решают: продолжать проект или нет.

Преимущества спиралевидной модели разработки ПО

Недостатки спиральной модели разработки ПО

Кейс разработки системы «Умный дом» по спиральной модели
На первом этапе заказчик поставил задачу: сделать возможность управления чайником с телефона: вскипятить, включить режим подогрева до определенной температуры, выключить.
Команда разработки приняла идею, проанализировала подобные решения на рынке, оценила возможные риски и выработала стратегию для их разрешения. Затем с заказчиком обсудили архитектуру системы. Определились, как все будут реализовывать, перешли к разработке. Затем протестировали продукт, исправили недочеты, взяли у заказчика обратную связь. И, наконец, реализовали готовое решение.
Затем перешли к следующей задаче заказчика: реализовать управление телевизором с телефона. По сути это следующая версия того же продукта. Команда разработки действовала по той же схеме, что и с чайником. И разработала решение на базе первого продукта.
Затем перешли к следующему этапу. Заказчик захотел создать функционал для управления холодильником с телефона. Команда начала анализировать риски и выяснила, что для этого нужно встраивать в холодильник модуль wi-fi. Но производители бытовой техники не были заинтересованы в сотрудничестве, и решение выходило слишком дорогим. То есть риски превысили потенциальную выгоду от реализации функционала. Информацию предоставили заказчику и он принял решение завершить разработку и сосредоточиться на совершенствовании, доведении до ума уже имеющихся функций по управлению чайником и телевизором.

Спиральная модель разработки ПО на примере GanttPro
GanttPro — это приложение для управления проектами и распределения задач. Команда разработчиков применяла спиральную модель и элементы Scrum. В частности, периоды релизов продукта сделали более короткими — двухнедельными, чтобы чаще получать отзывы. Продумали максимально детальный план задач для первого этапа разработки. А остальные требования к продукту закрепили в бэклоге и дорожной карте.
Какие задачи стояли перед командой:
Сам процесс разработки разделили на 6 стадий. В конце каждой фазы разработки был готов работающий продукт. Его можно было смело показывать пользователям и собирать обратную связь.