Попробовать бесплатно
AgileМетодологияФреймворкКачество

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

Гибкая методология разработки Кента Бека: короткие циклы, тесты до кода, парная работа и постоянная сборка доведены до предела.

КРАТКО
Экстремальное программирование сложилось на проекте расчёта зарплаты в Chrysler в середине девяностых, а описал его Кент Бек в книге 1999 года «Extreme Programming Explained». Название означает, что известные хорошие практики доведены до предела: раз обзор кода полезен, пишем в паре постоянно; раз тесты полезны, пишем их до кода; раз интеграция полезна, собираем по нескольку раз в день. Во втором издании 2004 года ценностей пять: общение, простота, обратная связь, смелость и уважение.
СИНОНИМЫ:экстремальное программированиеXPExtreme Programmingметодология XPпрактики XP

XP отвечает на вопрос, который Scrum обходит стороной: как именно писать код, чтобы изменения оставались дешёвыми. Scrum описывает роли и события, XP спускается до инженерной работы.

Ценности

  • Общение: разработчики, тестировщики и заказчик разговаривают напрямую.
  • Простота: делаем то, что нужно сегодня.
  • Обратная связь: от тестов, от сборки, от заказчика — быстро и постоянно.
  • Смелость: выбросить неудачный код и сказать заказчику правду о сроке.
  • Уважение: добавлено во втором издании книги.

Практики

Во втором издании тринадцать основных практик и одиннадцать дополнительных. Из основных до реальных команд чаще всего доживают четыре: разработка через тестирование, парное программирование, непрерывная интеграция и постоянный рефакторинг. Заказчик на площадке, метафора системы и общее владение кодом приживаются реже, потому что требуют перестройки не только команды, но и её окружения.

Что с ним стало

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

КОГДА ПРИМЕНЯТЬ
  • Требования меняются на ходу, а стоимость правки растёт
  • Небольшая команда, сидящая рядом или работающая в одном ритме
  • Заказчик доступен и готов отвечать на вопросы в течение дня
КОГДА НЕ СТОИТ
  • Фиксированный объём и цена по договору: XP предполагает переговоры об объёме
  • Распределённая команда без пересечения по часовым поясам
  • Регламент запрещает править код без формальной процедуры изменений
ПРИМЕР

Команда из шести человек берёт из XP три практики. Тесты пишут до кода, поэтому регрессия ловится за минуты. Пары садятся на сложные места вроде расчёта скидок, и знание перестаёт жить в одной голове. Сборка запускается на каждый коммит. За квартал число правок после релиза заметно падает, при этом ни ролей, ни событий Scrum команда не меняла.

КАК ИСПОЛЬЗОВАТЬ В SHTAB

Не берите XP целиком за один заход. Начните с непрерывной интеграции: она даёт обратную связь, почти не меняя привычек команды, и делает видимой цену остальных практик. Парную работу и тесты до кода добавляйте после, по одной, с разбором на ретроспективе.

Попробовать бесплатно

Вопросы про «Экстремальное программирование (XP)»

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

Применяйте термины на практике

База знаний, задачи и цели — в одном сервисе. Бесплатно — без лимита по числу людей.