Услуги по 1С
Водопадная или каскадная модель разработки программного обеспечения (waterfall, водопад) – это процесс разработки, в котором последовательно идут фазы сбора и анализа требований, проектирования и прототипирования, реализации, тестирования, интеграции и поддержки. Линейный подход к разработке программного обеспечения состоит из нескольких этапов:
Плюсы
В водопадном проекте каждый из этих этапов представляет собой отдельный, не связный с другими, период работы, и, как правило, каждый этап завершается до начала следующего. Часто между разными стадиями разработки есть «пропускной пункт», когда заказчик рассматривает и оценивает промежуточные результаты работы. Вот несколько важных плюсов такого подхода:
Но ни одна методология не обойдется без минусов, и в водопадном подходе есть, по меньшей мере, два существенных:
Sashimi Waterfall
Некоторые из недостатков водопадной модели попытались исправить в одной из ее модификаций: Sashimi Waterfall (Сашими). В ней этапы, как и в оригинальной методике, идут друг за другом, но при этом перекрываются один другим во времени. Это позволяет начать разработку дизайна еще на этапе сбора информации, а значит, добавляет так сильно недостающую гибкость в процесс. Затраты при этом растут не сильно, а сама методология не превращается в Agile.
Waterfall или Agile: какой подход выбрать?
Возможно, перед менеджерами подразделений будет стоять вопрос, какая из методологий более предпочтительна при разработке IT продуктов. Данная таблица поможет расставить все на места.
Особенность методологии |
Agile |
Waterfall |
Комментарий |
Доступность для заказчика |
Заказчик дает комментарии по ходу разработки |
Присутствие заказчика необходимо в начале и в конце разработки |
В любой из методологий вовлеченность заказчика уменьшает риски |
Цель / особенности |
Изменения по ходу разработки приветствуются, но требуют дополнительных затрат ресурсов и времени. Хорошо подходит для случаев, когда концепция финального продукта до конца не ясна |
Хорошо подходит, когда концепция определена с самого начала, либо с заранее установленными ограничениями по времени и смете расходов |
Перемен чаще всего не избежать, поэтому стоит прибегать к гибкости, если это возможно. Строгие условия контракта не позволяют этого достичь. |
Приоритеты разработки |
«Приоритет ценности» обеспечивает разработку самых нужных функций до всех остальных, что уменьшает риски получения нестабильного продукта, как только финансирование закончится. Эффективность финансирования максимальна. Уменьшает риск полного провала, так как возможен «частичный успех» |
Необходимо выполнить все, что обговаривалось вначале. Такой подход позволяет клиенту получить именно тот продукт, который был запланирован. Подход «все или ничего» увеличивает риск провала |
В условиях контрактов может быть отдельно прописано, что «частичный успех» неприменим
|
Команда |
Предпочтительней небольшая, обособленная команда с высоким уровнем организованности и слаженности |
Координация и слаженность команды ограничена точками передачи ответственности (при переходе с этапа на этап) |
Лучше работать сообща, но, если задания выполняются разными командами, то слаженность не является ключевой характеристикой |
Финансирование |
Отлично работает в случаях, когда деньги и время не имеют жестких ограничений, но работа ухудшается при появлении рамок |
Уменьшает риски при наличии фиксированной цены, так как договоренности установлены заранее |
При отсутствии финальной концепции продукта, ограничения финансирования могут помешать команде закончить работу |
Итог |
За отсутствием ограничений – Agile более предпочтителен |
Плановая работа обеспечивает более низкие риски в случаях, когда контракты заключаются с внешними заказчиками, например при работе с государственными компаниями |
Каждый из перечисленных факторов не равнозначен, все определяется в зависимости от проектов и обстоятельств |