Скачать презентацию Размышления о ХР или все снова плохо Е Скачать презентацию Размышления о ХР или все снова плохо Е

572fba735cdf7441a7cf8dc924a927aa.ppt

  • Количество слайдов: 22

Размышления о ХР… или все снова плохо. Е. Курбатов З. Лучинин К. Хукаленко А. Размышления о ХР… или все снова плохо. Е. Курбатов З. Лучинин К. Хукаленко А. Самалов

Популярно ли XP? o SCRUM (Ken Schwaber) o XP (Kent Beck) o Crystal (Alistair Популярно ли XP? o SCRUM (Ken Schwaber) o XP (Kent Beck) o Crystal (Alistair Cockburn) o Dynamic System Development Method (Dane Faulkner) Agile. Russia. ru o Adaptive Software Development (Jim Highsmith) o Lean Software Development (Mary Poppendieck) o Feature Driven Development (Jeff De. Luca) o Agile Rational Unified Process (RUP)

Попробуем XP в деле o Попробуем (мысленно) внедрить XP в типичный проект разработки ПО Попробуем XP в деле o Попробуем (мысленно) внедрить XP в типичный проект разработки ПО с нуля. Который имеет следующие особенности: n Большой проект n Большая компания, много разработчиков n Некоторые из них географически в разных местах n Заказчиков несколько и они постоянно заняты

Попробуем XP в деле n Клиент или менеджер настаивает на полной спецификации или дизайн, Попробуем XP в деле n Клиент или менеджер настаивает на полной спецификации или дизайн, прежде чем начать программирование. n Требования разных категорий пользователей разрабатываемой системы противоречат другу. o Посмотрим, к чему это приведет на протяжении всего цикла развития продукта.

Одиссея проекта Наш проект будет развиваться от первого до последнего дня. Мы будем следить Одиссея проекта Наш проект будет развиваться от первого до последнего дня. Мы будем следить за его развитием На его пути будут возникать разные проблемы, связанные с внедрением и использованием XP. Давать советовать нам будет Сам: Кент Бек (XP)

Правила Цель долгосрочный успех проекта Помогите! (Мы сейчас здесь) Правила Цель долгосрочный успех проекта Помогите! (Мы сейчас здесь)

Начало проекта o Набор команды n Менеджер проекта n Аналитик n Разработчики o Архитектор Начало проекта o Набор команды n Менеджер проекта n Аналитик n Разработчики o Архитектор o Программисты n Тестеры o Команда формируется n Учатся работать друг с другом

Внедрение ХР Проблемы: Петя программист o Получение поддержки управления: Самая большая проблема при введение Внедрение ХР Проблемы: Петя программист o Получение поддержки управления: Самая большая проблема при введение любого нового метода разработки ПО трудности получения управленческой поддержки. Некоторые люди чувствуют, что их рабочие места находятся под угрозой, в частности, архитекторы, тестеры и менеджеры проектов. o Разработчики удовлетворены существующим процессом разработки и ничего менять не хотят.

Внедрение ХР Петя программист o Для менеджеров ХР может показаться очередным трюком программистов, а Внедрение ХР Петя программист o Для менеджеров ХР может показаться очередным трюком программистов, а не качественным процессом разработки программного обеспечения. У них также могут возникнуть трудности с типом взаимоотношений, которые требует ХР, например с непосредственным участием заказчика в проекте. o Довольно сложно сразу начать использовать все принципы XP. Если использовать не все - то это уже не XP. o Многие знают что XP связано с риском, не достаточно информации, малый опыт разработки больших систем.

Внедрение ХР o Внедрение и адаптация XP – процесс довольно длительный и дорогой, требующий Внедрение ХР o Внедрение и адаптация XP – процесс довольно длительный и дорогой, требующий большого количества изменений. Петя программист

XP - «Парное программирование» o Парное программирование o XP Coach/Tech lead следит за соблюдением XP - «Парное программирование» o Парное программирование o XP Coach/Tech lead следит за соблюдением практик в проекте

Парное программирование o Экономически НЕ целесообразно программировать парами. o Если вы имеет двух опытных Парное программирование o Экономически НЕ целесообразно программировать парами. o Если вы имеет двух опытных профессионалов одного уровня, работающих в паре – то их производительность в два раза меньше! o Если вы имеет двух программистов разного уровня – то их производительность равна производительности более слабого программиста! o Не все могут работать в паре – психологические проблемы (Многие чувствуют что программирование в паре ограничивает их независимость, есть «суперзвезды» которые не хотят делиться кодом)

XP - «Максимальная автоматизация тестирования » o Максимальная автоматизация тестирования n Unit Tests n XP - «Максимальная автоматизация тестирования » o Максимальная автоматизация тестирования n Unit Tests n Test Driven Development n Automated Acceptance

Автоматическое тестирование o Тестов больше чем кода. Много времени уходит на их поддержание и Автоматическое тестирование o Тестов больше чем кода. Много времени уходит на их поддержание и выполнение. Не все можно протестировать (например БД). Меняется функционал – меняются и тесты. А если этот код не нужен вообще потом?

XP – Code centered XP поддерживает эволюционный подход к проектированию дизайна системы. Окончательный дизайн XP – Code centered XP поддерживает эволюционный подход к проектированию дизайна системы. Окончательный дизайн системы откладывается до последнего момента. В центре внимания код, а не дизайн.

Отсроченный дизайн ситемы o Для большой системы губительно максимально откладывать проектирование. (Небоскреб разрабатывается с Отсроченный дизайн ситемы o Для большой системы губительно максимально откладывать проектирование. (Небоскреб разрабатывается с вверху вниз). o Первая итерация – особенная в ХР, Эта итерация определяет ядро системы, на котором будут построены все остальные итерации. – мы не знаем какая система? Архитектор

Проблемы масштабирования XP o Совместные интеграции – при большом количестве разработчиков, становится трудно следить Проблемы масштабирования XP o Совместные интеграции – при большом количестве разработчиков, становится трудно следить за изменениями кода. o Синхронизация работы нескольких команд o Несколько команд разработчиков для одного заказчика o Отсутствие проектной документации: Пределы XP Для маленьких программ, и в ней трудно воспользоваться возможностью повторного использования.

 «Что же мы делаем? » o Функции заказывают: n Отдел маркетинга n Директор «Что же мы делаем? » o Функции заказывают: n Отдел маркетинга n Директор по производству n Простые пользователи n (эти. . . как их там. . . ) o Иногда они противоречат другу o Чем же на самом деле заниматься команде? Менеджер проекта

XP - «Ответственность заказчика» o Метафора n Краткое образное описание продукта n Затравка для XP - «Ответственность заказчика» o Метафора n Краткое образное описание продукта n Затравка для обсуждения Концепции продукта o Заказчик доступен на 100% o Заказчик планирует на итерацию Features o Он не имеет права принимать технические решения

 «Команда заказчиков трудно доступна» o Заказчик человек «занятой» . Он посильно участвует в «Команда заказчиков трудно доступна» o Заказчик человек «занятой» . Он посильно участвует в проекте. o Заказчик может быть не готов к частым релизам Спонсор проекта

Прошел год o Сроки разработки сорваны o Заказчик отказался от финансирования o Проект провален Прошел год o Сроки разработки сорваны o Заказчик отказался от финансирования o Проект провален

Выводы o o Точные границы использования ХР еще не до конца определены. Вместе с Выводы o o Точные границы использования ХР еще не до конца определены. Вместе с тем Кент Бек определяет набор факторов, который делает применение ХР невозможным. Невозможно использовать ХР на гигантских проектах – оно подходит для небольших групп программистов (от 2 до 10 человек). При постоянно меняющемся техническом задании такая группа может быть заметно эффективнее большого коллектива, использующего традиционные методики. Еще один критерий применимости экстремального программирования – особенности предметной области. Для успешного использования ХР должна существовать возможность создания автоматизированных тестов. Хотя для многих областей это требование выполнимо, необходимо провести предварительные тесты. Иногда нужно переформулировать задание или преобразовать систему, чтобы обеспечить автоматизированное тестирование. И, наконец, экстремальное программирование может не подойти как для определенного проекта, так и для отдельного человека.