Открыть сервис

Extreme Programming

Extreme Programming (сокр. XP) — это методология разработки программного обеспечения, относящаяся к классу гибких (agile) методов. Основная цель XP — повышение качества продукта и адаптивности к меняющимся требованиям заказчика за счёт коротких циклов разработки, частых релизов и тесного взаимодействия внутри команды. Методология была сформулирована американским инженером Кентом Беком в конце 1990-х годов и получила название за «экстремальное» доведение до предела традиционных практик программирования.

История возникновения

Предпосылки

В середине 1990-х годов индустрия разработки ПО столкнулась с кризисом: проекты часто выходили за рамки бюджета и сроков, а требования заказчиков менялись быстрее, чем успевали реагировать команды. Традиционные «каскадные» модели (водопад) не позволяли оперативно вносить изменения. В ответ на это группа специалистов, включая Кента Бека, Уорда Каннингема и Рона Джеффриса, начала разрабатывать альтернативный подход.

Первое применение

В 1996 году Кент Бек применил XP в проекте по разработке системы расчёта зарплаты для компании Chrysler (проект C3). Несмотря на то, что проект впоследствии был закрыт, практики XP показали свою эффективность в условиях неопределённости требований. В 1999 году Бек опубликовал книгу «Extreme Programming Explained: Embrace Change», которая стала манифестом методологии.

Развитие

В начале 2000-х XP получила широкое распространение в стартапах и небольших командах. Позднее её элементы были интегрированы в другие гибкие методологии, такие как Scrum и Kanban. В 2010-х годах XP утратила популярность как самостоятельная методология, но её практики (TDD, парное программирование, непрерывная интеграция) стали стандартом индустрии.

Основные ценности и принципы

Пять ценностей

Кент Бек сформулировал пять фундаментальных ценностей XP:

Двенадцать практик

XP предписывает строгий набор технических и организационных практик:

  1. Игра в планирование — разбиение требований на небольшие «истории пользователей» и оценка их трудоёмкости.
  2. Частые небольшие релизывыпуск работающего кода каждые 1–3 недели.
  3. Метафора — использование единой системы образов для описания архитектуры (например, «система как библиотека»).
  4. Простой дизайн — код пишется максимально просто, без закладывания на будущее.
  5. Тестирование — сначала пишутся тесты (Test-Driven Development, TDD), затем код.
  6. Рефакторингпостоянное улучшение кода без изменения его поведения.
  7. Парное программирование — два разработчика работают за одним компьютером: один пишет код, другой проверяет.
  8. Коллективное владение кодом — любой разработчик может изменять любой участок кода.
  9. Непрерывная интеграция — код объединяется в общую ветку несколько раз в день.
  10. 40-часовая рабочая неделя — предотвращение выгорания.
  11. Заказчик на месте — представитель заказчика работает в одной команде с разработчиками.
  12. Стандарты кодирования — единые правила оформления кода.

Устройство и роли

Команда

В XP выделяются следующие роли:

Итерации и релизы

Разработка ведётся короткими итерациями (1–3 недели). Каждая итерация заканчивается демонстрацией работающего кода заказчику. Релизы выпускаются каждые 2–6 месяцев.

Применение

Области использования

XP наиболее эффективна в следующих случаях:

Примеры внедрения

Критика

Основные недостатки

Альтернативные точки зрения

Некоторые эксперты (например, Мартин Фаулер) отмечают, что XP — это скорее набор практик, а не полноценная методология. Другие критикуют её за излишнюю «экстремальность»: например, парное программирование снижает производительность вдвое, хотя и повышает качество.

Влияние на индустрию

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

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →