Александр Усталов
905
Блоги

Agile или Waterfall? Сравнение методологий веб-разработки

При создании нового проекта, заказчик должен определиться не только с выбором подрядчика, но и подходящей методологией разработки проекта. На современном этапе развития технологий, нет универсального подхода в создании проекта, поэтому возникает логичный вопрос: какой подход выбрать и какие «подводные камни» существуют?

Поделиться

В избранное

В избранном

Способ разработки выбирается исходя из задач бизнеса, объема работ, времени и бюджета. Наиболее популярными считаются Waterfall - каскадная, и Agile - гибкая. Отметим, что неправильный выбор методики, может отрицательно сказаться на вашем проекте, поэтому учитывайте особенности каждой из них.

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

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

Agile

Agile – система, основанная на принципе «гибкого» управления проектами. Сюда относят методики Scrum, FDD, Kanban, Экстремальное программирование (XP), Lean и т.д. Ключевая особенность такого подхода - создание проекта в несколько циклов (итераций), в конце каждого виден конкретный результат, который позволяет понять, по какому пути двигаться дальше.

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

Главные принципы Agile:

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

Наиболее популярные методики Agile:

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

Экстремальное программирование (XP) – методика, при которой важно взаимодействие с клиентом на каждом этапе. Благодаря такому подходу, выявляются недостатки предыдущих этапов, определяется необходимый функционал продукта и другие параметры.

Lean – базируется на системе управления производством. Главное отличие – принцип постоянного совершенствования продукта на всех уровнях организации процесса.

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

Waterfall

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

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

Выделяют следующие стадии разработки в Waterfall:

  • Анализ системных и программных требований, которые закреплены в документе (Word или PDF).
  • Планирование всех этапов разработки. Важный пункт, так как вся последующая работа будет четко следовать составленному плану.
  • Проектирование. Разрабатывается внутренняя архитектура проекта, его внешний вид, структура, рассматриваются варианты реализации.
  • Реализация дизайна, верстки, программного продукта.
  • Интеграция. Проводятся необходимые работы по обмену данных и пишется код программы.
  • Тестирование. Готовый продукт проверяется на наличие программных ошибок, также выявляются недочеты функционала. После этого идет исправление нужных багов.
  • Выпуск продукта. Релиз готового проекта и окончание разработки. Возможна также работа по адаптации проекта к иным видам систем.
  • Техническая поддержка. Поддержание работоспособности ресурса и оперативное реагирование на возникающие вопросы или проблемы в системе.

Востребованные методики Waterfal:

Сашими – одна из самых популярных моделей Waterfal. Представляет собой наслаивающиеся друг на друга этапы, которые перекрываются по времени.

Waterfall с субпроектами – методика работы с тремя крупными стадиями: разработка концепции, проектирование и структурирование продукта. Каждый из этих блоков имеет свои этапы разработки. По окончании работ в каждой стадии проводится их интеграция.

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

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

Преимущества методологий

Agile:

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

Waterfall

  • Стоимость и сроки выполнения понятны ещё до начала работ. Поэтому заказчик точно будет знать, когда проект завершится и какой бюджет требуется потратить.
  • Интуитивно понятная структура работы, как для опытных специалистов, так и для новичков.
  • Детально структурированный план работ и продуманная документация.
  • Благодаря удобной отчетности легко отследить потраченное время, возможные риски и используемые ресурсы в процессе работы над проектом.
  • Задачи, которые ставятся перед командой ясны и не меняются на протяжении всего проекта.
  • Качество проекта занимает первоочередное место, а потраченное время и бюджет отходят на второй план.

Недостатки методологий

Agile:

  • Рассчитать конечные затраты практически невозможно – требования могут постоянно меняться в зависимости от особенностей проекта. Сложность заключается в том, что они могут противоречить уже существующей структуре.
  • Agile требует большой вовлеченности в процесс и полному погружению в него, что бывает сложно, особенно для молодых подрядчиков.
  • Возможность частого внесения правок может обернуться риском в бесконечном совершенствовании проекта. Здесь также возможна и обратная сторона – снижение качества продукта.

Waterfall:

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

Применение методологий

Agile используется:

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

Waterfall подойдет, если:

  • Проектные требования тщательно продуманы и неизменны. У заказчика есть четко сформулированная концепция продукта.
  • Технологии и инструменты известны заранее.
  • Разрабатываемый продукт сложный и требует больших затрат.
  • Приоритетом является качество продукта. Временные и денежные траты имеют второстепенное значение.
  • Заказчик не планирует принимать участие в проекте. Он видит только готовый продукт. Проект полностью разрабатывается на аутсортинге.
  • Клиенту важно знать точные сроки выполнения всех работ над проектом. Исполнитель полностью несет ответственность за срыв сроков и незапланированное увеличение бюджета.
  • Реализация аналогичного проекта, с которым уже сталкивались разработчики.

Что из этого следует?

Каждая из моделей, рассмотренных нами выше, имеет определенный набор характеристик и подходит для реализации проектов разной направленности.

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

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

При выборе той или иной методологии заказчик должен внимательно изучить сильные и слабые стороны подходов, учесть советы специалистов, определить набор требований к проекту. И тогда выбор будет сделать гораздо легче. Некоторые разработчики считают, что в рамках одного проекта можно оптимально совместить Agile и Waterfall.

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

{ "author_name": "Александр Усталов", "author_type": "self", "tags": [], "comments": 8, "likes": 6, "favorites": 7, "is_advertisement": false, "section_name": "blog", "id": "42084", "is_wide": "" }
{ "is_needs_advanced_access": false }

Комментарии Комм.

Популярные

По порядку

0

Прямой эфир

Подписаться на push-уведомления
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]