Waterfall или Agile? Битва методологий при разработке ПО
3 комментария

Waterfall или Agile? Битва методологий при разработке ПО

На современном этапе развития менеджмента не придуман универсальный способ, который можно было применить к процессу разработки программного обеспечения. Нет оптимального метода, подходящего под любой проект. Во главе любого метода встали стандарты, определения, процедуры, функции и пр. Каждая методология, выбираемая руководителем проектной команды, подбирается под определенные задачи, стоящие в проекте, а также сроки, выделенный заказчиком бюджет. К тому же, область IT-компаний характеризуется своей спецификой: сопровождение проектов, техническая поддержка, аутсортинг – все это требует от компаний индивидуальных подходов. Наиболее популярные и востребованные в современной сфере разработки программных обеспечений методологии – это Waterfall (каскадная) и Agile (гибкая). В данной статье мы кратко опишем каждую из них, выявим достоинства и преимущества, разберемся какая методология и под какой проект подходит наилучшим образом.

Waterfall или Agile Битва методологий при разработке ПО

Agile

Метод реализации проектов Agile основан на итерациях. Весь процесс разработки нового программного продукта разделяется на несколько циклов протяженностью 1-4 недели. Каждый этап рассматривается как отдельный микропроект, в котором есть подготовительный этап, этап планирования, создания и этапа, на котором происходит проверка совместимости продукта с требованиями заказчика. Результатом каждой итерации становится продукт с определенным набором технических характеристик, который можно показать заказчику для внесения корректировок, если это потребуется. Вся разработка ПО с использованием методологии Agile подчинена 12 ключевым принципам. Ключевыми же являются:

  • Лучший показатель эффективного взаимодействия проектной команды – рабочий продукт;
  • Изменение требований может происходить на любой стадии разработки;
  • Лучшим методом коммуникации всегда является личностное общение;
  • Новый продукт с определенными характеристиками появляется, либо в конце каждой итерации, либо один раз в 1-2 месяца; все зависит от проекта и уловных договоренностей.

К гибким методам Agile чаще всего относят такие методы программирования, как Scrum, FDD и другие.

Waterfall или Agile Битва методологий при разработке ПО

Waterfall

Метод Waterfall, что в переводе с английского означает «водопад», основан на последовательной разработке. Весь процесс делиться на следующие этапы:

  • Исследование необходимых требований к конечному продукту;
  • Планирование работ по разработке ПО;
  • Создание продукта;
  • Интеграция;
  • Выполнение тестовых мероприятий;
  • Выпуск нового программного продукта;
  • Техническая поддержка и сопровождение.

Переход от одного этапа к другому происходит только тогда, когда один из этапов полностью завершен. Изменение функционала готового продукта происходит только после его выпуска на потребительский рынок (релиза).

Waterfall или Agile Битва методологий при разработке ПО

Достоинства методов разработки

Agile

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

Waterfall

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

Недостатки методов разработки

Agile

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

Waterfall

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

https://gantbpm.ru/wp-content/uploads/2017/02/waterfall-ili-agile-bitva-metodologiy-pri-razrabotke-po-3.avif» alt=»Waterfall или Agile Битва методологий при разработке ПО» width=»795″ height=»521″ />

Выбирать внедрение Agile-методологии необходимо, если удовлетворены следующие условия:

  • Члены команды – опытные сотрудники;
  • Окончательные параметры продукта неопределенны, а изменения должны вноситься в максимально короткие сроки;
  • Заказчик участвует в создании продукта с самого начала;
  • Нужна скорость разработки;
  • Если создание программного продукта является стартапом.

Каскадная модель должна применяться в случае, когда:

  • Требования, которые предъявляются к продукту, известны и стабильны;
  • Качество результата намного важнее вложенных в проект ресурсов и потраченного времени;
  • Для разработки используется аутсортинг;
  • Заказчик не принимает прямого участия в создании нового ПО, а лишь является проверяющим полученного результата.

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

Agile scrumFDAIT-компанияWaterfallАgileВерсиявнедрение AgileВнесение корректировокВыполнение проектаВысокое качествоГибкая методологияЗаказчикИтерацииКаскадная модельКонечный продуктКонкурентные атакимежрасовое общениеМетодология разработкиМетодология РойсаОбъем проектаПланирование проектовПодготовительный этапПотребительский выборПотребительский рынокПроверкаПрограммное обеспечениеПрограммный продуктПроектПроектная командапроцесс разработкирабочийРазработкаРиск-менеджментСоздание новогосоздание продуктаСопровождениеСтандартыСтруктураТехническая поддержкаудаленное общениеУдовлетворениеУправление проектамиУправление рисками в менеджментеХарактеристикаЧлен командыЭтап

3 комментария. Оставить новый

  • Сергей К.
    2017-02-24

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

    Ответить
    • Project manager
      2017-02-24

      Добрый день, Сергей

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

      Ответить
      • Сергей К.
        2017-02-24

        Спасибо, у нас клиент не хочет agile, ему нужен график со сроками, а нам больше по душе скрам метод, как лучше поступить?

        Ответить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

<