Agile vs традиционная методология разработки программного обеспечения
Сегодня в индустрии программного обеспечения используется ряд различных методологий разработки программного обеспечения. Метод разработки «водопад» - один из самых ранних методов разработки программного обеспечения. V-модель, RUP и некоторые другие линейные, итерационные и комбинированные линейно-итерационные методы, появившиеся после методологии водопада, призваны устранить многие проблемы метода водопада. Все эти ранние методологии называются традиционными методологиями разработки программного обеспечения. Гибкая модель - это более поздняя модель разработки программного обеспечения, введенная для устранения недостатков традиционных моделей. Основное внимание Agile уделяется как можно более раннему включению тестирования и очень раннему выпуску рабочей версии продукта, разбивая систему на очень маленькие и управляемые части.
Что такое традиционная методология разработки программного обеспечения?
Программные методологии, такие как метод водопада, V-модель и RUP, называются традиционными методологиями разработки программного обеспечения. Методология водопада - одна из самых ранних моделей разработки программного обеспечения. Как следует из названия, это последовательный процесс, в котором прогресс проходит через несколько этапов (анализ требований, проектирование, разработка, тестирование и внедрение) сверху вниз, аналогично водопаду. V-Model рассматривается как расширение модели разработки программного обеспечения Waterfall. V-модель использует те же отношения между фазами, определенные в модели водопада. Но вместо линейного спуска (как в модели водопада) V-модель идет вниз по диагонали, а затем возвращается вверх (после фазы кодирования), образуя форму буквы V. RUP (Rational Unified Process) - это адаптируемая структура процесса (не единый конкретный процесс),которые могут быть настроены организацией-разработчиком в соответствии со своими потребностями. Немного похож на водопад, он имеет фиксированные фазы: начало, развитие, строительство и переход. Но в отличие от водопада, RUP - это итеративный процесс.
Что такое Agile?
Agile - это новейшая методология разработки программного обеспечения (или, точнее, группа методологий), основанная на манифесте Agile. Это было разработано для устранения некоторых недостатков традиционных методологий разработки программного обеспечения. Agile-методы основаны на уделении первоочередного внимания участию клиентов на ранних этапах цикла разработки. Он рекомендует включать тестирование заказчиком как можно раньше и как можно чаще. Тестирование проводится на каждом этапе, когда становится доступной стабильная версия. Основа Agile основана на том, что тестирование начинается с начала проекта и продолжается до конца проекта. Скрам и экстремальное программирование - два самых популярных варианта гибких методов.
Ключевая ценность Agile - «качество - это ответственность команды», которая подчеркивает, что за качество программного обеспечения отвечает вся команда (а не только команда тестирования). Еще один важный аспект Agile - разбиение программного обеспечения на более мелкие управляемые части и очень быстрая их доставка заказчику. Доставка рабочего продукта - это первостепенное значение. Затем команда продолжает улучшать программное обеспечение и непрерывно выполнять каждый важный шаг. Это достигается за счет очень коротких циклов выпуска (называемых в Scrum спринтами) и получения обратной связи для улучшения в конце каждого цикла. Участники, не слишком активно взаимодействующие с командой, например разработчики и тестировщики в более ранних методах, теперь работают вместе в рамках модели Agile.
В чем разница между Agile и традиционной методологией разработки программного обеспечения?
Хотя метод Agile основан на итеративной разработке, как некоторые из традиционных подходов, Agile и традиционные методологии имеют ключевые различия. Традиционные подходы используют планирование в качестве механизма контроля, в то время как модели Agile используют обратную связь от пользователей в качестве основного механизма контроля. Agile можно назвать подходом, ориентированным на людей, чем традиционные методы. Agile-модель предоставляет рабочую версию продукта на очень раннем этапе по сравнению с традиционными методологиями, так что заказчик может на раннем этапе реализовать некоторые преимущества. Время цикла тестирования Agile относительно короткое по сравнению с традиционными методами, поскольку тестирование проводится параллельно с разработкой. Большинство традиционных моделей очень жесткие и относительно менее гибкие, чем модель Agile. Из-за всех этих преимуществ Agile в настоящее время предпочтительнее традиционных методологий.