Экстремальное программирование против SCRUM | XP против SCRUM
В течение ряда лет в индустрии программного обеспечения использовался целый ряд различных методологий разработки программного обеспечения, таких как метод разработки Waterfall, V-модель, RUP и несколько других линейных, итеративных и комбинированных линейно-итерационных методов. Agile-модель (или, точнее, группа методологий) - это более новая модель разработки программного обеспечения, представленная Agile-манифестом для устранения недостатков, обнаруженных в этих традиционных методологиях разработки программного обеспечения..
Гибкие методы основаны на итеративной разработке и используют обратную связь от пользователей в качестве основного механизма управления. Agile можно назвать подходом, ориентированным на людей, чем традиционными методами. Гибкая модель предоставляет рабочую версию продукта очень рано, разбивая систему на очень маленькие и управляемые детали, чтобы клиент мог реализовать некоторые преимущества на ранних этапах. Время цикла тестирования Agile относительно короткое по сравнению с традиционными методами, поскольку тестирование проводится параллельно с разработкой. Из-за всех этих преимуществ Agile-методы на данный момент предпочтительнее традиционных. Scrum и Extreme программирование - два самых популярных варианта Agile методов.
Что такое СКРАМ?
Как упоминалось выше, SCRUM - это инкрементный и итеративный процесс управления проектами, который принадлежит к семейству Agile-методов. SCRUM основан на уделении первоочередного внимания участию клиентов на ранних этапах цикла разработки. Он рекомендует проводить тестирование заказчиком как можно раньше и часто, насколько это возможно. Тестирование проводится в каждой точке, когда стабильная версия становится доступной. Основой SCRUM является начало тестирования с начала проекта и его продолжение до конца проекта..
Ключевой ценностью SCRUM является «качество - это ответственность команды», в которой подчеркивается, что за качество программного обеспечения отвечает вся команда (а не только команда тестирования). Еще одним важным аспектом SCRUM является разбиение программного обеспечения на более мелкие управляемые части и очень быстрая их доставка заказчику. Доставка работающего продукта крайне важна. Затем команда продолжает совершенствовать программное обеспечение и непрерывно предоставлять на каждом важном этапе. Это достигается за счет очень коротких циклов выпуска (так называемых спринтов) и получения обратной связи для улучшения в конце каждого цикла..
SCRUM определяет несколько ключевых ролей для бесперебойной работы команды разработчиков. Это владелец Продукта (который представляет клиента и поддерживает журнал ожидания продукта), Scrum master (который выступает в качестве организатора и координатора команды, проводя совещания Scrum, поддерживая журнал ожидания спринта и диаграммы сгорания) и других членов команды. Команда может состоять из традиционных ролей, но в основном это самоуправляемые команды. Основными артефактами Scrum являются Журнал невыполненных работ / выпуск (список пожеланий), Журнал задержек / дефектов Sprint (задачи на каждой итерации), диаграммы выжигания (количество оставшихся работ по сравнению с датой). Основными церемониями SCRUM являются встреча с продуктом, встреча Sprint и встреча Retrospect.
Что такое экстремальное программирование?
Экстремальное программирование (сокращенно XP) - это методология разработки программного обеспечения, которая принадлежит модели Agile. Экстремальное программирование выполняет фазы в очень маленьких непрерывных шагах (по сравнению с традиционными методами). Первый проход, который занимает всего один день или неделю, намеренно не завершен. Чтобы обеспечить конкретные цели для разработки программного обеспечения, автоматизированные тесты пишутся в начале. Затем разработчики занимаются кодированием. Основное внимание уделяется программированию в парах. Как только все тесты пройдены, кодирование считается завершенным. Следующий этап - это дизайн и архитектура, которые занимаются рефакторингом кода одним и тем же набором программистов. В конце этого этапа, неполный (но функциональный) продукт представляется заинтересованным сторонам. Сразу после этого начинается следующий этап (который фокусируется на следующем наборе наиболее важных функций).
В чем разница между экстремальным программированием и SCRUM?
Экстремальное программирование и SCRUM по понятным причинам очень похожи и согласованы методологии. Однако между этими двумя методами есть небольшие, но важные различия. Спринт SCRUM длится 2-4 недели, в то время как типичные итерации XP короче (последние 1-2 недели). Обычно команды SCRUM не допускают изменений в спринтах, но команды XP немного более гибки в изменениях внутри итераций. Например, после планирования спринта набор элементов этого спринта остается неизменным, но функция, над которой еще не началась работа, может в любой момент заменить другую функцию в XP. Другое различие между XP и SCRUM заключается в том, что заказ функций, разработанных в XP, строго определен заказчиком, в то время как команда SCRUM принимает решение о порядке элементов (после того, как отставание продукта определено по приоритетам владельцем продукта SCRUM)..
В отличие от XP, SCRUM не предусматривает никаких инженерных практик. Например, XP руководствуется такими практиками, как разработка через тестирование (TDD), парное программирование, рефакторинг и т. Д. Однако некоторые полагают, что обязательное использование набора практик для самоорганизующихся групп может оказать негативное влияние, и это можно учитывать недостаток ХР. Другим недостатком программирования Extreme является то, что неопытные команды могут проводить рефакторинг без каких-либо автоматических тестов или TDD (или просто взлома). Поэтому некоторые полагают, что SCRUM лучше начинать с работы (так как он приносит большие улучшения просто благодаря целенаправленным итерациям с временными рамками), а XP подходит для слегка зрелых команд, которые обнаружили ценность вышеупомянутых практик (вместо того, чтобы использовать их, потому что их спросили). сделать так).