Разница между экстремальным программированием и SCRUM

Разница между экстремальным программированием и SCRUM
Разница между экстремальным программированием и SCRUM

Видео: Разница между экстремальным программированием и SCRUM

Видео: Разница между экстремальным программированием и SCRUM
Видео: Что такое экстремальное программирование за 9 минут 2024, Ноябрь
Anonim

Экстремальное программирование против SCRUM | XP против SCRUM

На протяжении многих лет в индустрии программного обеспечения использовалось множество различных методологий разработки программного обеспечения, таких как метод разработки Waterfall, V-Model, RUP и несколько других линейных, итерационных и комбинированных линейно-итеративных методов. Модель Agile (или, точнее, группа методологий) - это более поздняя модель разработки программного обеспечения, введенная в манифесте Agile для устранения недостатков, обнаруженных в этих традиционных методологиях разработки программного обеспечения.

Аджайл-методы основаны на итеративной разработке и используют отзывы пользователей в качестве основного механизма контроля. Agile можно назвать ориентированным на людей подходом, а не традиционными методами. Гибкая модель предоставляет рабочую версию продукта очень рано, разбивая систему на очень маленькие и управляемые части, чтобы клиент мог реализовать некоторые преимущества на раннем этапе. Время цикла тестирования Agile относительно короткое по сравнению с традиционными методами, потому что тестирование выполняется параллельно с разработкой. Из-за всех этих преимуществ на данный момент Agile-методы предпочтительнее традиционных методологий. Scrum и экстремальное программирование - две самые популярные разновидности Agile-методов.

Что такое SCRUM?

Как упоминалось выше, SCRUM - это поэтапный и итеративный процесс управления проектами, принадлежащий к семейству методов Agile. SCRUM основан на придании высокого приоритета участию клиента в начале цикла разработки. Он рекомендует проводить тестирование заказчиком как можно раньше и как можно чаще. Тестирование проводится каждый раз, когда становится доступной стабильная версия. В основе SCRUM лежит начало тестирования с самого начала проекта и продолжение его до конца.

Ключевая ценность SCRUM заключается в том, что «качество - это ответственность команды», что подчеркивает, что за качество программного обеспечения отвечает вся команда (а не только группа тестирования). Еще одним важным аспектом SCRUM является разбиение программного обеспечения на более мелкие управляемые части и очень быстрая доставка их клиенту. Предоставление рабочего продукта имеет первостепенное значение. Затем команда продолжает улучшать программное обеспечение и постоянно поставлять его на каждом крупном этапе. Это достигается за счет очень коротких циклов выпуска (называемых спринтами) и получения обратной связи для улучшения в конце каждого цикла.

SCRUM определяет несколько ключевых ролей для бесперебойной работы команды разработчиков. Это владелец продукта (который представляет клиента и ведет список невыполненных работ по продукту), скрам-мастер (который выступает в качестве организатора и координатора команды, проводя скрам-собрания, поддерживая журнал спринтов и диаграммы выработки) и другие члены команды. Команда может состоять из традиционных ролей, но в основном это самоуправляемые команды. Основными артефактами Scrum являются невыполненные работы/выпуски продукта (список пожеланий), невыполненные работы спринта/журналы дефектов (задачи в каждой итерации), диаграммы выгорания (оставшаяся работа по сравнению с датой). Основными церемониями SCRUM являются собрание невыполненных работ по продукту, собрание Sprint и собрание Retrospect.

Что такое экстремальное программирование?

Extreme Programming (сокращенно XP) - методология разработки программного обеспечения, относящаяся к модели Agile. Экстремальное программирование выполняет фазы очень маленькими непрерывными шагами (по сравнению с традиционными методами). Первый проход, который занимает всего день или неделю, намеренно неполный. Чтобы поставить конкретные цели для разработки программного обеспечения, в начале пишутся автоматизированные тесты. Затем разработчики занимаются кодированием. Основное внимание уделяется программированию в парах. После прохождения всех тестов кодирование считается завершенным. Следующим этапом является проектирование и архитектура, которые связаны с рефакторингом кода той же группой программистов. В конце этой фазы незавершенный (но функциональный) продукт представляется заинтересованным сторонам. Сразу после этого начинается следующая фаза (которая фокусируется на следующем наборе наиболее важных функций).

В чем разница между экстремальным программированием и SCRUM?

Экстремальное программирование и SCRUM, по понятным причинам, очень похожи и согласуются друг с другом. Однако между этими двумя методами есть тонкие, но важные различия. Спринты SCRUM длятся 2-4 недели, а типичные итерации XP короче (длятся 1-2 недели). Обычно SCRUM-команды не позволяют вносить изменения в спринты, но XP-команды чуть более гибки к изменениям внутри итераций. Например, после планирования спринта набор элементов этого спринта остается неизменным, но функция, над которой еще не началась работа, может быть в любой момент заменена какой-либо другой функцией в XP. Еще одно различие между XP и SCRUM заключается в том, что порядок функций, разработанных в XP, является строго приоритетным для клиента, в то время как команда SCRUM определяет порядок элементов (после того, как бэклог продукта определяется владельцем продукта SCRUM).

В отличие от XP, SCRUM не устанавливает никаких инженерных практик. Например, в основе XP лежат такие практики, как разработка через тестирование (TDD), парное программирование, рефакторинг и т. д. Однако некоторые считают, что обязательный набор практик для самоорганизующихся команд может иметь негативное влияние, и это можно считать недостаток ХР. Еще одним недостатком экстремального программирования является то, что неопытные команды могут склоняться к рефакторингу без каких-либо автоматических тестов или TDD (или просто взлома). Таким образом, некоторые предполагают, что SCRUM лучше для старта (поскольку он приносит большие улучшения просто за счет целенаправленных итераций, ограниченных по времени), а XP подходит для немного зрелых команд, которые открыли для себя ценность вышеупомянутых практик (а не используют их, потому что их попросили). сделать это).

Рекомендуемые: