Экстремальное программирование (XP) против Scrum: Ключевые различия и когда использовать каждый

Экстремальное программирование (XP) является разработка программного обеспечения по методологии Agile фреймворк, предназначенный для создания программного обеспечения высокого качества и улучшения качества жизни команды. XP — это наиболее конкретный фреймворк Agile в плане правильных инженерных практик.

Scrum — это фреймворк, в котором люди могут решать сложные адаптивные задачи, одновременно эффективно и креативно создавая продукты высокой ценности. Сам Scrum — это простой фреймворк, который обеспечивает эффективное взаимодействие команды при работе над сложными продуктами.

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

Extreme Programming

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

Sprint Cycle

Цикл спринта

Однако существуют некоторые различия, некоторые из которых довольно тонкие, особенно в следующих четырех аспектах:

1. Длительность итерации
Scrum
  • Обычно от двух до четырех недель.
XP
  • Обычно от одной до двух недель.
2. Можно ли изменять требования во время итерации
Scrum
XP
  • Легче изменить во время итерации.
  • Пока конкретная функция не была начата, новая функция аналогичного размера может быть заменена в итерации команды XP на не начатую.
3. Строго ли реализуются пользовательские истории в соответствии с приоритетом итерации
XP
  • Работать в строгом порядке приоритетов.
  • Функции, которые необходимо разработать, приоритизируются заказчиком (продуктовый владелец Scrum)владелец продукта), и команда должна обрабатывать их последовательно.
Scrum
  • Продуктовый владелец Scrum приоритизирует бэклог продукта, но команда определяет порядок разработки элементов бэклога.
  • Команда ScrumScrum вполне может выбрать работу над вторым по важности элементом.
4. Принимаются ли строгие инженерные практики для обеспечения прогресса или качества
Scrum
  • Не предписывает никаких конкретных инженерных практик.
XP
  • Да, XP это делает.
  • Например: TDD, парное программирование, простой дизайн, рефакторинг и т.д.

Мы можем кратко описать различия между XP и Scrum следующим образом:

Аспект Практика XP Scrum
Длительность итерации Могут ли требования быть изменены во время итерации 1–2 недели 2–4 недели
Обработка изменений во время итерации Требования строго упорядочены по приоритету Может быть заменен другим требованием равного размера, если еще не реализовано. Scrum не допускает этого. После начала спринта никакие изменения не разрешаются, и Мастер Scrum строго соблюдает это.
Приоритизация функций Требования строго упорядочены по приоритету Да Не требуется
Инженерные практики Используются ли строгие инженерные методы для обеспечения прогресса или качества Очень строго Требует от разработчиков осознанности

Поэтому мы считаем, что подход XP приемлем, но он вводит парадокс в Agile: сочетание философии XP с принципами Agile передает командам путающее сообщение: «Вы полностью самодостаточная организация, но должны внедрять TDD, парное программирование и т.д.»

Ясно, что эти четыре различия довольно различны:

  • В Scrum, акцент делается на самоорганизации.
  • В XP, акцент делается на жестких ограничениях инженерных практик.

Заключение

Scrum — это фреймворк разработки продукта — контейнер, в который можно добавить другие практики. XP — одна из практик, которые можно применять в рамках фреймворка Scrum. Нет причин для команды выбирать между Scrum и XP. Правила и практики XP не просты, и большинство из них непререкаемы. Внедрение XP в Scrum может быть естественным развитием для команды, которая начинает с Scrum и стремится стать профессиональной командой Scrum.

 

Leave a Reply