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