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