eXtreme Programming XP Тема 2
XP Заказчики определяют: объем работ; приоритеты; композиции версий; сроки выпуска версий. Разработчики определяют: оценку времени; последствия бизнес- решений; процесс; подробный график работ Быстро определяет перечень задач, которые необходимо реализовать в следующей версии продукта.
XP Первая упрощенная версия системы быстро вводится в эксплуатацию. Через короткие промежутки времени планируется выпуск следующих версий.
XP Это простая и общеизвестная история, которая кратко описывает, как работает система. Дает качественное понимание набора базовых элементов системы и их взаимосвязи.
В каждый момент времени система должна быть спроектирована настолько просто, насколько это возможно. Четыре признака: выполняются все тесты; нет дублирования логики; выражены все идеи программистов; в системе присутствует наименьшее количество классов и методов. XP
Программисты пишут тесты модулей, заказчики – тесты для проверки функциональности системы. Тесты являются изолированными друг от друга и автоматическими. Другие виды тестов: параллельные тесты, стресс- тесты, тесты обезьяны. Для продолжения работы необходимо, чтобы все тесты дали положительный результат. Любой код пишется, начиная с теста. XP
Программисты реструктурируют систему, не изменяя ее поведения. Обычно проводится: устранение дублирования кода; улучшение коммуникации модулей; упрощение кода; улучшение гибкости кода. XP
За одним компьютером работают два человека. Реализуются две роли: кодировщик (думает, как наилучшим образом закодировать конкретную задачу); стратег (думает, насколько хорошо решение данной задачи вписывается в общую систему). Состав пар может динамически меняться. XP
В любой момент любой член команды может изменить любой код в любом месте системы, но без потери функциональности. Противоположности: полное отсутствие владения («делай, что хочешь») индивидуальное владение XP
Требуется внедрять новые возможности в систему по нескольку раз в день (в худшем случае один раз в день) сразу, после решения очередной задачи. Должно проводиться 100% тестирование на предмет сохранения всех прежних возможностей и приобретения новых. XP
Ни один член команды не должен быть перегружен работой. Никто не может полноценно работать, когда постоянно приходится работать сверхурочно. XP
В состав команды разработчиков должен входить представитель заказчика (по меньшей мере, он должен быть в зоне прямого и быстрого доступа). Цель – возможность разъяснения непонятных требований и возможность быть всегда в курсе реального объема выполненных работ. XP
Программисты пишут код в соответствии с установленными правилами, по которым, в частности, код должен быть средством коммуникации. XP
Планирование (определение показателей - метрик); Инструктирование (консультирование); Отслеживание (наблюдение значений метрик); Интервенция (принятие экстренных решений). XP
Цель – максимизировать ценность ПО. Стратегия – инвестировать настолько мало, насколько это возможно для того, чтобы внедрить наиболее ценную функциональность в реальные условия как можно быстрее, снизив при этом риск. Планирование осуществляется на двух уровнях: на уровне заказчиков и разработчиков; на уровне разработчиков XP
Для каждой возможности создаются карточки описания истории. Цикл: Фаза исследования – необходимость уяснить, что нового в данной версии должна делать система; Фаза подтверждения – определение объема работ и даты выхода следующей версии; Фаза управления – обновление плана на основе новых данных. XP
Фаза исследования включает в себя: написание историй; оценка выполнения историй с точки зрения времени; разделение историй исходя из оценки. Фаза подтверждения включает в себя: сортировка в соответствии с ценностью; сортировка в соответствии с риском; оценка скорости; определение объема работ. Фаза управления включает в себя: определение состава итерации (набор историй); регенерация (изменение набора историй исходя из приоритетов); новая история (добавление новой истории, если позволяет время); переоценка (определение новой скорости разработки). XP
Истории конкретной итерации делятся на задачи, для каждой из которых выписывается специальная карточка. Фаза исследования: определение набора задач; разделение задач. Фаза подтверждения: распределение задач по членам команды; оценка времени выполнения задачи; определение фактора нагрузки для каждого члена команды; балансировка – перераспределение задач. Фаза управления: реализация задач; отслеживание процесса; регенерация; проверка выполнения историй при интеграции задач. XP
Доменная модель Прототипы пользовательского интерфейса (пользовательские экраны) Пользовательские истории План выпуска и каждой итерации Стандарты кодирования Программный код Наборы тестов XP