Экстремальное программирование — это гибкий процесс.
Экстремальное программирование — это гибкий процесс, потому что он —
-
Подчеркивает много общения и обратной связи —
-
Внутри команды (парное программирование, коллективное владение кодом, простой дизайн)
-
С клиентом (клиент на месте и приемочные испытания)
-
Для планирования выпуска (с заказчиком и разработчиками, участвующими в оценке)
-
-
В Extreme Programming работает тренер, чья работа замечает, когда люди не общаются и не вводят их заново.
-
Объятия меняются с —
-
Частые итерации (короткие выпуски)
-
Проектирование и модернизация легко (простой дизайн)
-
Кодирование и тестирование постоянно (парное программирование)
-
Постоянное участие клиента (онлайн-клиент)
-
-
Доставляет рабочий продукт заказчику в короткие итерации (короткие выпуски).
-
Устраняет дефекты на ранней стадии, тем самым снижая затраты (парное программирование)
-
Кодовые обзоры
-
Модульное тестирование
-
Интеграция для каждого набора изменений и тестирования
-
Подчеркивает много общения и обратной связи —
Внутри команды (парное программирование, коллективное владение кодом, простой дизайн)
С клиентом (клиент на месте и приемочные испытания)
Для планирования выпуска (с заказчиком и разработчиками, участвующими в оценке)
В Extreme Programming работает тренер, чья работа замечает, когда люди не общаются и не вводят их заново.
Объятия меняются с —
Частые итерации (короткие выпуски)
Проектирование и модернизация легко (простой дизайн)
Кодирование и тестирование постоянно (парное программирование)
Постоянное участие клиента (онлайн-клиент)
Доставляет рабочий продукт заказчику в короткие итерации (короткие выпуски).
Устраняет дефекты на ранней стадии, тем самым снижая затраты (парное программирование)
Кодовые обзоры
Модульное тестирование
Интеграция для каждого набора изменений и тестирования
Экстремальный цикл программирования
Экстремальное программирование является итеративным и инкрементным и управляется циклами с временными рамками. Поэтому ритм процесса экстремального программирования имеет решающее значение.
Экстремальное программирование имеет следующие уровни активности —
-
Жизненные циклы продукта
-
релизы
-
Итерации
-
Задачи
-
развитие
-
Обратная связь
Жизненные циклы продукта
релизы
Итерации
Задачи
развитие
Обратная связь
Каждый из уровней активности обеспечивает минимальные входные данные, необходимые для следующего уровня. Они —
-
Действия жизненного цикла продукта обеспечивают входные данные для циклов выпуска.
-
Сессии планирования выпуска предоставляют входные данные для циклов итерации.
-
Сеансы итерационного планирования обеспечивают входные данные для циклов задач.
-
Задача разработки предоставляет материалы для эпизодов развития.
-
Разработка производит продукт.
Действия жизненного цикла продукта обеспечивают входные данные для циклов выпуска.
Сессии планирования выпуска предоставляют входные данные для циклов итерации.
Сеансы итерационного планирования обеспечивают входные данные для циклов задач.
Задача разработки предоставляет материалы для эпизодов развития.
Разработка производит продукт.
Обратная связь — это постоянная деятельность на протяжении всего проекта и на всех вышеперечисленных уровнях деятельности.
Жизненные циклы продукта
Это также называется этапом разведки. Он включает в себя определение набора функций и планирование. Заказчик предъявляет высокие требования к стоимости, а требования приводятся в виде пользовательских историй.
Истории являются основным результатом этого уровня деятельности.
релизы
Это также называется фазой обязательства. В этой деятельности —
-
Вся команда собирается так, чтобы —
-
Прогресс пересматривается.
-
Новые требования могут быть добавлены и / или существующие требования могут быть изменены или удалены.
-
Заказчик представляет истории.
-
Истории обсуждаются.
-
-
Разработчики определяют технический подход и риск. Они предоставляют оценки и варианты первого уровня.
-
Клиент расставляет приоритеты для историй и выбирает целевое время выпуска.
-
Заказчик и разработчики обязуются использовать функциональность, которая должна быть включена, и дату следующего выпуска.
-
Разработчики —
-
Расставьте истории в вероятные итерации.
-
Включите исправления дефектов из приемочного тестирования предыдущего выпуска.
-
Начните итерации.
-
Вся команда собирается так, чтобы —
Прогресс пересматривается.
Новые требования могут быть добавлены и / или существующие требования могут быть изменены или удалены.
Заказчик представляет истории.
Истории обсуждаются.
Разработчики определяют технический подход и риск. Они предоставляют оценки и варианты первого уровня.
Клиент расставляет приоритеты для историй и выбирает целевое время выпуска.
Заказчик и разработчики обязуются использовать функциональность, которая должна быть включена, и дату следующего выпуска.
Разработчики —
Расставьте истории в вероятные итерации.
Включите исправления дефектов из приемочного тестирования предыдущего выпуска.
Начните итерации.
План релиза является основным результатом этого уровня деятельности.
Итерации
Это также называется фазой управления. Вся команда собирается так, чтобы прогресс был рассмотрен и план был скорректирован. Заказчик представляет истории для итерации, и истории обсуждаются более подробно.
План итерации является основным результатом этой деятельности.
Разработчики —
-
Определить подробный технический подход.
-
Создайте список задач для каждой истории.
-
Начните разработку.
-
Разверните систему до
Определить подробный технический подход.
Создайте список задач для каждой истории.
Начните разработку.
Разверните систему до
Развертываемая система является окончательным результатом этой деятельности.
Задачи
Разработчики Подпишитесь на задания и начинайте разработку эпизодов для реализации историй. Они гарантируют, что задачи для итерации выполнены. Разработчики также гарантируют, что истории для итерации дополнены приемочными тестами.
развитие
Разработчики формируют пары, которые могут быть непрерывной и динамичной деятельностью.
Каждая пара —
-
Проверяет их понимание истории.
-
Определяет детальный подход к реализации, обеспечивая простой дизайн.
-
Начинается разработка через тестирование, т. Е. Написание модульного теста, реализация кода для прохождения модульного теста, рефакторинг для упрощения кода.
-
Интегрирует их код в системную кодовую базу через соответствующие промежутки времени.
-
Часто проверяет прогресс.
Проверяет их понимание истории.
Определяет детальный подход к реализации, обеспечивая простой дизайн.
Начинается разработка через тестирование, т. Е. Написание модульного теста, реализация кода для прохождения модульного теста, рефакторинг для упрощения кода.
Интегрирует их код в системную кодовую базу через соответствующие промежутки времени.
Часто проверяет прогресс.
Обратная связь
Пары постоянно общаются внутри себя и за пределами команды. Он-лайн клиент также участвует в общении на постоянной основе. Некоторые команды прибегают к ежедневным постоянным встречам для быстрого обсуждения общего состояния команды и возможной повторной синхронизации и микропланирования в случае необходимости.
Обзоры итерации и выпуска предоставляют общее состояние и баллы для настройки и улучшения процесса.
-
Эпизоды развития могут вызвать переосмысление задач.
-
Разработка задачи может привести к переосмыслению истории.
-
Переоценка истории может вызвать изменения итерации или восстановления.
-
Результаты итерации могут вызвать изменения в плане выпуска.
Эпизоды развития могут вызвать переосмысление задач.
Разработка задачи может привести к переосмыслению истории.
Переоценка истории может вызвать изменения итерации или восстановления.
Результаты итерации могут вызвать изменения в плане выпуска.
Цикл процесса экстремального программирования показан ниже.