Scrum против Waterfall против Agile против Lean против Kanban: Полное руководство по сравнению

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

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

Подход Waterfall

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

  • Структурирован как крупный проект в последовательном процессе
  • Подходит для сред, где изменения редки
  • Требует полностью определённых требований на начальном этапе

Таким образом, модель Waterfall настаивает на переходе к следующей фазе только после проверки и подтверждения предыдущей, как показано на рисунке ниже:

Waterfall Approach

Подход Waterfall

Пример:

В оригинальной модели Waterfall Ройса следующие фазы выполняются в указанном порядке:

  • Требования к системе и программному обеспечению: Записаны в документе требований к продукту
  • Анализ: Создаёт модели, архитектуру и бизнес-правила
  • Проектирование: Создаёт архитектуру программного обеспечения
  • Разработка: Разработка, проверка и интеграция программного обеспечения
  • Тестирование: Системное обнаружение и устранение дефектов
  • Эксплуатация: Полная установка системы, миграция, поддержка и обслуживание

Подход Agile

Agile происходит от мышления Lean, применяя концепцию «Lean» в информационных технологиях. Ключевое внимание методов Lean направлено на:

  • Устранение потерь в процессах
  • Минимизация не добавляющих стоимости бизнес-процессов
  • Максимизация ценности с точки зрения клиента
Agile Approaches

Агильные подходы

Агильный подход — это проверенная методология управления проектами, которая поощряет следующие основные принципы:

  • Частый контроль и адаптация
  • Поощряет командное взаимодействие, самоорганизацию и ответственность
  • Набор лучших инженерных практик для быстрой доставки высококачественных проектов
  • Бизнес-подход, который выравнивает разработку с потребностями клиентов и целями компании

Агильная разработка — итеративный жизненный цикл

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

Основы агильной методологии

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

Агильный подход против водопада — Тройное ограничение

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

Agile vs Waterfall

Агильный подход против водопада

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

Агильный подход предполагает иной подход, переворачивая тройное ограничение. Вместо того чтобы рассматривать объем как фиксированный с самого начала, агильный подход фиксирует время (итерации) и стоимость (члены команды), а затем корректирует объем, чтобы сосредоточиться на наиболее приоритетных элементах. Агильный подход предполагает, что объем будет эволюционировать со временем. Цель — удовлетворить наиболее важные требования клиента в рамках бюджета и сроков. По мере продвижения проекта агильный подход позволяет вводить новые требования или пересматривать приоритеты.

Agile vs Waterfall Quality

Качество агильного подхода против водопада

Агил или водопад? Посмотрите на цифры

Последний отчет Standish Group охватывает проекты, изученные в период с 2013 по 2017 год. Общая успешность, трудности и неудачи проектов по методологии Agile и Waterfall представлены ниже. Проекты по методологии Agile примерно в два раза более вероятны к успеху, и в три раза менее вероятны к провалу по сравнению с проектами по методологии Waterfall.

Agile vs Waterfall – Project Success Rate

Agile против Waterfall — показатель успеха проектов

Зонтик Agile

С момента появления манифеста Agile в 2001 году Agile приобрел значительный импульс. На самом деле Agile — это не единая методология, а настройка, которая позволяет командам и организациям инновировать, быстро реагировать на изменяющиеся требования и снижать риски. Организации могут гибко использовать различные доступные рамки, такие как Scrum, Kanban, Lean, XP и другие.

Agile Umbrella

Зонтик Agile

Подход Lean

Организации, придерживающиеся подхода Lean, понимают ценность для клиента и сосредотачиваются на своих ключевых процессах, чтобы постоянно ее улучшать. Окончательная цель — доставить идеальную ценность клиенту через процесс создания ценности без отходов.

Пятиэтапный подход Lean

Пятиэтапный процесс мышления, который руководит внедрением Lean, легко запомнить, но не всегда легко выполнить:

  1. Определите ценность с точки зрения конечного клиента.
  2. Составьте карту всех этапов создания стоимости для каждого продукта, устраняя этапы, не добавляющие ценности, wherever это возможно.
  3. Обеспечьте плавное и последовательное движение этапов, создающих ценность, в сторону клиента.
  4. Позвольте клиенту забирать ценность из следующей upstream-операции по мере необходимости.
  5. Непрерывно улучшайте, определяя потоки создания стоимости, устраняя отходы, внедряя поток и принцип «вытягивания», и повторяя процесс до достижения совершенства — когда идеальная ценность доставляется без отходов.
5-Step Lean Approach

Пятиэтапный подход Lean

Подход Scrum

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

Scrum Process Canvas

Канва процесса Scrum

Подход Kanban

Kanban означает по-японски «визуальный сигнал» или «карточка». Рабочие на линии Toyota использовали Kanban для обозначения этапов производственного процесса. Как часть подхода Lean, высокая визуализация системы позволяет командам легче обмениваться информацией о том, что нужно сделать и когда. Это также стандартизирует рабочий процесс и улучшает его, помогая сократить отходы и максимизировать ценность. Как и доска спринта Scrum, Kanban отслеживает действия «В ожидании — В процессе — Выполнено», но при этом ограничивает количество задач в процессе (устанавливается руководителем команды и не может быть превышено).

Kanban Approach

Подход Kanban

Существует четыре основных принципа Kanban:

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

 

Leave a Reply