Перейти к основному содержимому

Agile и Waterfall: главное о методологиях разработки ПО

Agile vs Waterfall

Разделение всех методологий на Agile и Waterfall — это общепринятый способ классифицировать подходы к организации процесса разработки ПО.

Waterfall (водопадная/каскадная модель)

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

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

Преимущества Waterfall

  1. Фиксированный бюджет и сроки, так как всё фиксируется на этапе составления ТЗ.
  2. Простота и понятность. Каждый этап имеет четкие входные и выходные данные, сроки и ответственных. Все участники проекта знают, что и когда нужно делать, и какой результат ожидать.

Недостатки Waterfall

  1. Отсутствие гибкости. В проект нельзя вносить изменения. Если на каком-то из этапов возникнут проблемы, изменятся требования или станет ясно, что что-то не учли, придётся начинать сначала.
  2. Риски. Если на каком-то этапе возникнут ошибки или недочеты, они могут быть обнаружены только в конце проекта, когда будет поздно.
  3. Отсутствие обратной связи. Меньше обратной связи – меньше уверенности, что мы делаем то, что действительно нужно.

Где можно применять водопадную модель

  • Несложные проекты, где объём работ можно легко определить и сформулировать в ТЗ.
  • Проекты с очень строгими требованиями к бюджетам и срокам.

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

Agile

Agile — это семейство гибких методологий управления проектами.

Вся суть Agile содержится в четырёх пунктах его манифеста:

  1. Люди и их взаимодействие важнее процессов и инструментов проектного управления.
  2. Рабочее программное обеспечение (результат проекта) важнее всеобъемлющей документации.
  3. Сотрудничество с клиентами важнее переговоров по контракту.
  4. Реагирование на изменения важнее следования плану.

К Agile относят Scrum, Kanban, Lean, XP, FDD, TDD, SoS, LeSS, SAFe, AgilePM.

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

Преимущества Agile

  1. Гибкость к изменениям и скорость. Например, если конкуренты выпустили новую функцию, её можно быстро разработать в уже начатом проекте.
  2. Риски ниже — прямо в процессе команда получает обратную связь от пользователей. А если какая-то итерация растянется, следующую можно будет адаптировать под изменившиеся сроки и условия.
  3. Ориентация на людей и команду даёт большую вовлечённость в проект.

Недостатки Agile

  1. Сложность внедрения. Его нужно уметь использовать. С умом. К тому же, люди часто привыкают к текущему способу работы и не всегда приветствуют изменения.
  2. Сложно планировать бюджет и сроки по причине большей неопределённости, новые хотелки от клиента могут возникнуть в любой момент.
  3. Заспамленность созвонами. Вытекает из первого пункта в случае ошибок при внедрении. Однако забитый бессмысленными встречами календарь – это бич не только аджайла. Проблема шире, чем просто подход к разработке ПО.

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

Подборка материалов

  1. Битва титанов: Waterfall VS Agile
  2. Agile и «водопад». Сравнение подходов
  3. Управление проектом по Agile методике
  4. Об оценках сроков в разработке ПО
  5. Гибридное управление проектами: как смешать модный Agile с традиционным проектным менеджментом

О минусах Agile

  1. Scrum ужасен
  2. Обратная сторона Agile
  3. Как правильно имитировать Agile?