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