Преимущества XP перед другими известными методологиями разработки

Автор: Topol Воскресенье, Апрель 15th, 2012 Нет комментариев

Рубрика: Программирование

Экстремальное программирование, на родном языке звучит как Extreme Programming или сокращённо XP, является одним из направлений методологии быстрой разработки программного обеспечения. Представляет собой набор средств и методик для эффективного построения устойчивых и надёжных программ. Включает в себя поддержку изменчивости и противоречивости требований к разрабатываемым системам и тесные связи с заказчиком.

Экстремальное программирование было анонсировано Кентом Беком в 1995 году в компании Chrysler. Является сравнительно новой методологией, но те мне менее хорошо зарекомендовавшей себя в кругах профессиональных разработчиков.

Преимуществами XP являются:

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

Экстремальное программирование, как процесс, даёт новое дыхание давно придуманным подходам к разработке программного обеспечения. Это такие подходы как Модульное тестирование (Unit testing), Переработка кода (Refactoring), Парное программирование (Pair programming), Нормированный рабочий день (40-hour week).

По результатам исследования, проведенного независимой компанией Spikes Cavell в Великобритании в финансовом секторе, основной причиной неудачи программных проектов является срыв сроков сдачи (75%). Так экстремальное программирование представляет возможности для гарантирования успеваемости и контроля сроков. Это достигается посредством эффективного планирования, автоматического контроля качества и формирования быстрых обратных связей, в том числе и с заказчиком.

От других известных методологий разработки его отличает простота, низкая стоимость внедрения и общедоступность. По сравнению с известным процессом разработки Rational Unified Process (RUP), время интенсивного внедрения его в несколько раз меньше. Если внедрение RUP может занять от полугода до двух лет, то внедрение XP может быть выполнено в течение одного-двух месяцев. При этом сама технология RUP стоит около 600$. И это не считая сопутствующих программ, обучающего материала и повышенного требования к персоналу.

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

RUP:

  1. Заказчик должен подготовить документы, необходимые для внесения изменения и предоставить руководителю группы разработчиков на рассмотрение. При этом язык изложения требования должен быть строго формализованным, например Диаграмма прецедентов (Use-case diagram).
  2. После первоначального рассмотрения передать запрос менеджерам, которые в свою очередь передадут его аналитикам.
  3. Аналитики построят высокоуровневые модели, проведут подсчёт сложности, количество человеко-часов, необходимых на доработку, и предоставят информацию менеджерам.
  4. Менеджеры после очередного согласования с начальством и заказчиком распределят, в принудительном порядке, работу между программистами и тестировщиками.
  5. Программисты должны будут включить в свой процесс дополнительные шаблоны и задокументировать их, построить соответствующие модели, изменить существующие.
  6. Тестирование моделей.
  7. Отдел тестирования должен внести соответствующие изменения в тест-план.
  8. После подготовки всех необходимых документов, программисты приступают к кодированию, при этом отсутствие любого члена команды грозит срывом сроков сдачи. Этот этап является самым непродолжительным, примерно 10% от всего времени на изменение.
  9. Уточнение моделей.
  10. Тестирование изменившейся части.
  11. Тестирование системы в целом.

XP:

      Заказчик тесно общается с разработчиками и знает, что изменения могут быть внесены достаточно просто. Поэтому он не боится предлагать внести изменения, когда это действительно необходимо. Он формирует запрос на изменение в виде истории пользователя (User story), на понятном человеческом языке.

 

  1. Эта история передаётся на всеобщее обсуждение разработчиков, которые её формализуют, делают предварительную оценку времени, необходимого для выполнения.
  2. Заказчик устанавливает её приоритетность.
  3. Вместе с заказчиком корректируется список историй для выполнения в рамках текущей итерации.
  4. Один из программистов (или пара) берёт на себя ответственность за выполнение данной истории и приступает к работе. Это может быть не тот человек, который разрабатывал эту область ранее, за счёт коллективного владения кодом.
  5. С помощью заказчика определяются критерии работоспособности программного исполнения истории, и пишется автоматический приёмочный тест.
  6. Программист разбивает историю на задачи и пишет для каждой модульные тесты (Unit test).
  7. Программист кодирует каждую задачу и добивается выполнения всех тестов.
  8. Далее идёт проверка работоспособности истории с помощью приёмочных тестов. При этом работоспособность всей системы контролируется автоматически посредством ранее написанных тестов.

Так, при работе по XP основное внимание сосредоточенно вокруг заказчика и разработчика. Это позволяет избежать неточностей понимания и постановки задачи. Мелочи и неточности, а также несвоевременно внесённые изменения, в совокупности, представляют почву для провала проекта. Программист уверен в своих действиях и работоспособности системы за счёт постоянной обратной связи с системой (автоматические тесты) и с заказчиком (быстрые релизы). Минимизироавнное число сопутствующих документов позволяет не только съэкономить время, но и сократить штат задействованных специалистов.

Ролей в XP также не так много, и здесь нет ограничений на совместимость их в рамках одного человека. Так, если следовать учению Microsoft Solution Framework (MSF), то программист не может быть одновременно менеджером, тестировщиком или техническим писателем. Хотя отечественный опыт показывает обратное, что, в свою очередь, является оправданной и довольно успешной практикой. В экстремальном программировании это даже приветствуется. Так, например, опытный программист может достойно совмещать, помимо своих основных обязанностей, роль тренера (coach), наблюдателя (tracker) и менеджера. Да, действительно, в Microsoft произвели ряд дорогостоящих исследований, которые показали определённую несовместимость ролей. Разработчики же экстремального программирования, глядя глубоко в корень, постарались устранить причину этой несовместимости. Это стало возможным за счёт усиления обратных связей, неявного автоматизированного и мануального контроля.

Есть также определённые условия, при которых достигается максимальная эффективность использования XP. Они включают следующие: группа разработчиков от двух до десяти человек, проект на срок до полугода и присутствие заказчика на месте разработки. Но это не является требованием. Большинством методик и принципов Экстремального программирования могут пользоваться и единичные программисты.

Источник: webcorp.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты