Многие слышали о версии Windows XP, но что означают последние две буквы? Extreme Programming означает экстремальное программирование.
Это подвид методологии гибкой разработки программного обеспечения Agile, который был популярен в 90-х годах. Давайте, рассмотрим в чем заключается суть такой методологии.
В основе лежат следующие ценности:
Простота
Команды выполняют то, о чем их просили, и ничего больше. XP разбивает каждый шаг основного процесса на более мелкие, достижимые цели, которые легче достичь членам команды.
Оптимизированная коммуникация
Команды работают вместе над каждой частью проекта, от сбора требований до внедрения кода, и участвуют в ежедневных встречах, чтобы держать всех членов команды в курсе событий. Любые проблемы решаются немедленно.
Последовательная, конструктивная обратная связь
В XP команды адаптируют свой процесс к проекту и потребностям клиентов, а не наоборот. Команда должна демонстрировать свое программное обеспечение как можно раньше и чаще, чтобы они могли собирать отзывы от клиента и вносить необходимые изменения.
Уважение
Экстремальное программирование поощряет менталитет “все за одного и один за всех". Каждого члена команды, независимо от иерархии, уважают за его вклад. Команда уважает мнение клиентов и наоборот.
Смелость
Члены команды адаптируются к изменениям по мере их возникновения и берут на себя ответственность за свою работу. Они говорят правду о своем прогрессе — нет никакой “лжи во благо” или оправданий за неспособность заставить людей чувствовать себя лучше. Нет причин бояться, потому что никто никогда не работает в одиночку.
Помимо ценностей есть и структура процесса разработки ПО. Вот основные этапы XP:
1. Планирование
На этом этапе происходит магия создания интерфейса приложения. Вместо длинного документа с требованиями заказчик пишет пользовательские истории, которые определяют важную для клиента функциональность, наряду с бизнес-ценностью и приоритетом каждой из этих функций. Пользовательские истории не должны быть исчерпывающими или чрезмерно техническими — они должны содержать достаточно деталей, чтобы помочь команде определить, сколько времени потребуется для реализации этих функций.
Команда создает график выпуска и делит проект на итерации (продолжительностью от одной до трех недель). Менеджеры проектов могут захотеть создать временную шкалу или упрощенную диаграмму Ганта, чтобы поделиться расписанием с командой.
2. Управление
На этом этапе руководитель проекта настраивает команду на успешное применение методологии. Каждый должен работать сообща и эффективно общаться, чтобы избежать каких-либо промахов. Этот этап включает в себя:
- Создание открытого рабочего пространства для вашей команды
- Установление устойчивого темпа (т.е. определение правильной длины для итераций - “спринтов”)
- Планирование ежедневного собрания участников
- Измерение скорости выполнения проекта (объем работы, выполняемой над вашим проектом)
- Оптимизация работы во избежание узких мест или потери знаний
- Изменение правил, если XP не работает идеально для команды
3. Проектирование
Это правило восходит к ценности простоты: начните с самого простого дизайна, потому что для его завершения потребуется меньше времени, чем для сложного решения. Не добавляйте функциональность раньше времени. Часто выполняйте рефакторинг, чтобы ваш код был чистым и лаконичным.
4. Написание кода
Затем, наконец, приходит время для реализации кода. XP практикует коллективное владение кодом: каждый просматривает код, и любой разработчик может добавить функциональность, исправить ошибки или выполнить рефакторинг. Чтобы коллективное владение кодом работало, команда должна:
- Выбрать стандартизированную схему наименования.
- Выполнять парное программирование. Члены команды работают парами за одним компьютером, создавая код и отправляя его в производство. Только одна пара интегрирует код одновременно.
- Регулярно загружать изменения кода в общий репозиторий.
- Контактировать с клиентом, чтобы он мог ответить на вопросы и установить требования.
5. Тестирование
Команда выполняет модульные тесты и исправляет ошибки до того, как код может быть выпущен. Проводятся приемочные тесты.
Экстремальное программирование подойдет для команд, которые:
- Ожидают, что функциональность их системы будет меняться каждые несколько месяцев.
- Сталкиваются с постоянной сменой требований клиента.
- Хотят снизить риски проекта, особенно в сжатые сроки.
- В которых небольшое количество программистов (предпочтительно от 2 до 12).
- Умеют тесно сотрудничать с клиентами.
- Способны создавать автоматизированные модульные и функциональные тесты.
Если сотрудничество и непрерывное развитие являются приоритетами для вашей команды, возможно, стоит попробовать “экстремальное программирование”. Поскольку эта гибкая модель разработки ПО, требует постоянной обратной связи от клиентов, уменьшает количество ошибок, требует совместной работы разработчиков. XP не только обеспечивает выпуск более ценного продукта, но и повышает производительность для групп разработчиков во всем мире.
Теперь вы знаете что такое XP. Спасибо за внимание!
#разработка #планирование #управление проектами #agile