Кент Бек - Экстремальное программирование
Инженерная задача (engineering task) – некоторая вещь, о которой программист знает, что ее должна делать система. Для реализации задачи необходимо отводить от одного до трех идеальных дней программирования. Большинство задач можно сформулировать напрямую на основании историй.
Инструктор (coach) – роль в команде ХР. Инструктор наблюдает за процессом как за единым целым и обращает внимание команды на надвигающиеся проблемы или на возможности улучшить процесс.
Исследование (exploration) – фаза разработки, на которой заказчик сообщает о том, что в общих чертах должна делать система.
История (story) – некоторая вещь, которую по желанию заказчика должна делать система. Работу над реализацией истории можно оценить в период от одной до пяти идеальных недель программирования. Истории должны быть подвержены тестированию.
Итерация (iteration) – период длительностью от одной до четырех недель. В начале этого периода заказчик выбирает истории, которые необходимо реализовать в течение итерации. В конце итерации заказчик может запустить свои функциональные тесты для того, чтобы убедиться, что итерация выполнена успешно.
Менеджер (manager) – роль в команде ХР. Менеджер занимается распределением ресурсов.
Партнер (partner) – человек, являющийся вашим напарником при программировании в паре.
Переоценка (reestimation) – ход во время игры в планирование, когда команда заново оценивает все оставшиеся истории, еще не реализованные в рамках текущей версии.
Переработка (refactoring) – внесение в систему изменений таким образом, что при этом поведение системы не меняется, однако улучшаются некоторые ее нефункциональные качества – простота, гибкость, понятность, производительность.
План итерации (iteration plan) – набор историй и набор задач. Программисты выбирают задачи и оценивают их.
Программирование парами (pair programming) – техника программирования предусматривает, что два человека в одно и то же время занимаются программированием одной задачи за одним компьютером, используя одну клавиатуру, одну мышь и один монитор. В ХР состав пар меняется, как правило, два раза в день.
Программист (programmer) – роль в команде ХР. Программист анализирует, проектирует, тестирует, программирует и интегрирует.
Производство (production) – фаза разработки, на которой заказчик реально использует систему для зарабатывания денег.
Ревизор (tracker) – роль в команде ХР. Ревизор измеряет текущее состояние процесса в численном выражении.
Регенерация (recovery) – ход во время игры в планирование, когда заказчик сокращает объем работ над текущей версией продукта, желая сохранить дату выпуска этой версии в случае, если либо предварительные оценки оказываются заниженными, либо скорость работы команды по тем или иным причинам снижается.
Системная метафора (system metaphor) – история, описывающая логику работы системы, которую могут рассказать любые участники проекта – заказчики, программисты и менеджеры.
Скорость команды (team speed) – количество идеальных недель программирования, которое может быть обеспечено командой за заданный промежуток календарного времени.
Тест модуля (unit test) – тест, написанный с точки зрения программиста.
Тестовый случай (test case) – набор воздействий на систему и соответствующих реакций системы. Воздействия на систему выполняются автоматически, так же автоматически выполняется проверка корректности реакций. Каждый тест должен оставлять систему в том состоянии, в котором она находилась до тестирования, благодаря этому тесты могут выполняться независимо друг от друга.
Фактор (коэффициент) нагрузки (load factor) – измеренное отношение между реальным календарным временем и идеальным временем программирования. Как правило, находится в пределах от 2 до 4.
Функциональный тест (functional test) – тест, написанный с точки зрения заказчика.
Энтропия (entropy) – тенденция системы к накоплению ошибок с течением времени и к существенному росту стоимости внесения в нее изменений.
Notes
1См. книгу Э. Гамма, Р. Хельма, Р. Джонсона и Дж. Влиссидеса «Приемы объектно-ориенти рованного проектирования.Паттерны проектирования», выпущенную издательствами «Питер» и в 2001 году. – Примеч. ред.
2JUnit – программная инфраструктура, предназначенная для автоматического тестирования модулей в среде Java. – Примеч. пер.
3Спасибо Джону Фаваро (John Favaro) за анализ ХР с точки зрения ценовых вариаций.
4Сделай самую простую вещь, которая только сможет работать. – Примеч. ред.