Экстремальное программирование (eXtreme Programming, XP)
Введение в экстремальное программирование
Методики экстремального программирования
Статьи по экстремальному программированию
Литература по экстремальному программированию
Введение в экстремальное программирование
Многие методики экстремального программирования я использую в своей работе.
Мое постижение экстремального программирования началось с прочтения книги
основателя этой методики Кента Бека "Экстремальное программирование".
Книга написана простым и понятным языком. Надо сказать что мне она очень понравилась.
Книга призвана помочь вам принять взвешенное решение о том, надо ли использовать XP
в вашем собственном проекте или нет. Вторая цель данной книги - помочь тем из вас,
кто уже использует XP - лучше понять эту методику.
Итак, что же такое экстремальное программирование (eXtreme Programming, XP)?
Экстремальное программирование - методология быстрой разработки программного обеспечения. XP - это упрощенный, эффективный, гибкий, предсказуемый, научно обоснованный и весьма приятный способ разработки программного обеспечения, предусматривающий низкий уровень риска. XP способствует существенному увеличению производительности и улучшению качества разрабатываемых программ.
Экстремальное программирование эффективно применяется:
- в проектах, над которыми может работать от двух до десяти программистов;
- в проектах с постоянно изменяющимися требованиями;
- в проектах с высокой степенью риска;
- при заранее заданных сроках сдачи проекта;
Методика XP существенно снижает риски разработки программного обеспечения:
- Изменение характера бизнеса - в рамках XP цикл работы над очередной версией программы существенно укорачивается
- Несоответствие решаемой проблемы - в рамках XP заказчик является составной частью команды, которая работает над проектом.
- Смещение графика - XP предлагает использовать очень короткие сроки выпуска каждой очередной версии.
- Закрытие проекта - в рамках XP заказчик должен определить нименьший допустимый набор возможностей, которыми должна обладать минимальная работоспособная версия программы, имеющая смысл с точки зрения бизнес-задач.
- Система теряет полезность - в рамках XP создается и поддерживается огромное количество тестов, которые запускаются и перезапускаются после внесения в систему любого изменения, благодаря этому удается тщательно следить за качеством разрабатываемой программы.
- Недостаток возможностей - в рамках XP осуществляется реализация только наиболее высокоприоритетных задач.
- Текучка кадров - XP предлагает программистам брать на себя ответственность самостоятельно определять объем работы и время, необходимое для выполнения этой работы.
Методики экстремального программирования
XP опирается на симбиоз взаимодействующих между собой методик. Методик, некоторые из которых были забыты десятилетия назад как непрактичные и наивные.
Методики:
1. Игра в планирование (planning game) - быстро определяют перечень задач (объем работ), которые необходимо реализовать в следующией версии продукта. Для этого рассматриваются бизнес-приоритеты и технические оценки. Если со временем план перестает соответствовать действительности, происходит обновление плана.
2. Небольшие версии (small releases) - самая первая упрощенная версия системы быстро вводится в эксплуатацию, после этого через относительно короткие промежутки времени происходит выпуск версии за версией.
3. Метафора (metaphor) - это простая общедоступная и общеизвестная история, которая коротко описывает, как работает вся система. Эта история управляет всем процессом разработки.
4. Простой дизайн (simple design) - в каждый момент времени система должна быть спроектирована так просто, как это возможно. Чрезмерная сложность устраняется, как только ее обнаруживают.
5.Тестирование (testing) - программисты постоянно пишут тесты для модулей. Для того, чтобы разработка продолжалась, все тесты должны срабатывать. Заказчики пишут тесты, которые демонстрируют работоспособность и завершенность той или иной возможности системы.
6. Переработка (refactoring) - программисты реструктурируют систему, не изменяя при этом ее поведения. При этом они устраняют дублирование кода, улучшают коммуникацию, упрощают код и повышают его гибкость.
7. Программирование парами (pair programming) - весь разрабатываемый код пишется двумя программистами на одном компьютере.
8. Коллективное владение (collective ownership) - в любой момент времени любой член команды может изменить любой код в любом месте системы.
9. Непрерывная интеграция (continuous integration) - система интегрируется и собирается множество раз в день. Это происходит каждый раз, как завершается решение очередной задачи.
10. 40-часовая неделя (40-hour week) - программисты работают не более 40 часов в неделю. Это правило. Никогда нельзя работать сверхурочно две недели подряд.
11. Заказчик на месте разрабоки (on-site customer) - в состав команды входит реальный живой пользователь системы. Он доступен в течение всего рабочего дня и способен отвечать на вопросы о системе.
12. Стандарты кодирования (coding standards) - программисты пишут весь код в соответствии с правилами, которые обеспечивают коммуникацию при помощи кода.
Статьи по экстремальному программированию
В Интернете существует немало интересных статей, посвященных экстремальному программированию. Здесь представлены одни из самых полезных и необходимых для изучения XP:
2000-2015 |