Сравнение Waterfall и Agile (Scrum, Kanban)

Обновлено и опубликовано Опубликовано:

Среди современных методологий, которые используются для программирования, выделяют Водопадную модель (Waterfall) и Agile (гибкая методология программирования). В последней выделяют две методологии управления проектами — Scrum и Kanban.

Рассмотрим сравнение данных методологий.

Терминология

Кратко о каждой методологии.

Waterfall — каскадная или водопадная модель. Традиционный подход. Представляет собой четко выделяемые последовательные стадии выполнения работ. Только после того, как закончены все работы на одной стадии, допускается переход к следующей.

Agile — гибкая методология разработки, состоящая из целого ряда подходов и практик, в основе который лежат быстрый результат и взаимодействие с людьми. К ним, в частности, относят такие методологии управления проектами, как Scrum и Kanban.

Scrum — подход, предполагающий решение задач в маленьких командах. Рабочий процесс при этом поделен на равные отрезки (спринты).

Kanban — уменьшение выполняющейся в данный момент работы (work in progress). Делает работу нагляднее за счет визуализации на доске. Допускает взятие срочных задач в разработку, не дожидаясь начала следующего этапа.

Сравнение подходов и методологий

Наши методологии являются представителями разных подходов.

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

Рассмотрим их сравнение:

Характеристика Waterfall Agile
Документация Детальная Доработка по мере развития
Вовлеченность заказчиков Низкая Высокая
Команда Включение новых специалистов на любом этапе Опытные специалисты, стабильный состав
Контроль Легко Зависит от уровня специалистов
Критерии успеха Все по плану Ценность для бизнеса
Подход Прогнозирующий Адаптивный
Рефакторинг Дорогой Оптимальный
Риски Определены Не определены
Требования Известны заранее и стабильны Легко изменяемы

Как видим, каждый подход имеет свои плюсы и минусы. По этой причине оба актуальны до сих пор, однако, важно отметить, что у Agile больше поклонников.

Теперь сравним методологии управления.

Сравнение методологий управления

Мы упоминали про то, что Agile включает в себя разные способы управления проектами. Чаще всего, среди них выделяют два:

  1. Scrum — этапом работы является спринт, который длится около 1-2 недель. Любые изменения допускаются в рамках следующего спринта.
  2. Kanban — ориентация на конкретную работу. Позволяет быстро переключиться на более приоритетную задачу. Kanban впервые был применен для производства автозапчастей на заводе Toyota.

Общие положения данных методологий определяются 4-я ценностями и 12-ю принципами Agile.

Ценности:

  • Люди и взаимодействие важнее процессов и инструментов.
  • Работающий продукт важнее исчерпывающей документации.
  • Сотрудничество с заказчиком важнее согласования условий контракта.
  • Готовность к изменениям важнее следования первоначальному плану.

Основополагающие принципы:

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

Теперь рассмотрим различия:

Характеристика Scrum Kanban
Создан для Разработки программного обеспечения Бережливого производства
Идеология Учеба на собственном опыте, самоорганизация и постоянное совершенствование Использование визуальных эффектов для улучшения работы
Ритм Регулярные спринты фиксированной продолжительности (около 1-2 недели) Непрерывный поток
Действия Планирование спринтов, спринты, ежедневные минисовещания, ретроспективы Визуализация потока работы, ограничение незавершенной работы, управление потоками
Роли Владелец продукта, скрам-мастер, команда разработчиков Нет обязательных ролей
Гибкость Средняя. Изменения нельзя вносить после начала спринта Высокая. Изменения вносятся в любой момент
# DevOps
Дмитрий Моск — частный мастер
Был ли полезен этот ответ?

Да            Нет