Слайд 1
Экстремальное программирование
ХР
Слайд 3Waterfall
Все требования должны быть определены и детально описаны до начала
разработки;
Дорого и медленно;
Чувствителен к изменениям;
Мало возможностей для конечного пользователя повлиять
на цели проекта и требования к продукту;
Зачастую проблемы выявляются на этапе тестирования;
Много документации, много технической документации, которая не понятна конечному пользователю или заказчику.
Слайд 4Agile. Основные идеи
люди и взаимодействие важнее процессов и инструментов;
работающий продукт
важнее исчерпывающей документации;
сотрудничество с заказчиком важнее согласования условий контракта;
готовность к
изменениям важнее следования первоначальному плану.
Слайд 6Примеры рисков
Смещение графиков
Закрытие проекта
Система теряет полезность
Количество дефектов и недочетов
Несоответствие решаемой
проблеме
Изменение характера бизнеса
Недостаток возможностей
Текучка кадров
Слайд 104 ценности
Коммуникация
Простота
Обратная связь
Храбрость
Слайд 11Фундаментальные принципы
быстрая обратная связь;
• приемлемая простота;
• постепенное изменение;
• приемлемое изменение;
•
качественная работа.
Слайд 12Основные приёмы
Игра в планирование
Небольшие версии
Метафора
Просто дизайн
Тестирование
Рефакторинг
Парное программирование
Коллективное владение кодом
Непрерывная интеграция
Заказчик всегда рядом
Стандарты кодирования
40 часовая рабочая неделя
Слайд 15Цели
Собрать команду вместе
Определить объем работ
Оценить затраты и график работ
Добиться
появления у каждого заинтересованного лица ощущения того, что система действительно
может быть реализована
Определить исходные данные для обратной связи
Слайд 16Планирование релиза(1-6 мес.)
1. Фаза исследований
Написание истории
Оценка истории (планинг покер)
Разделение истории
2.
Фаза передачи
Сортировка в соответствии с ценностью
Сортировка в соответствии с риском
Определение
скорости
Определение объема работ
3. Управляющая фаза
Итерация
Регенерация
Новая история
Переоценка
Слайд 17Планирование итерации(1-3 нед.)
1. Фаза исследования
Написание задачи
Разделение задачи/комбинация задач
2. Фаза подтверждения
Принятие
задачи
Оценка задачи
Определение фактора нагрузки
Балансировка
3. Фаза управления
Реализация задачи
Отслеживание прогресса
Регенерация
Проверка истории
Слайд 22Виды тестов
Модульные тесты
Функциональные тесты
и другие
Слайд 24Бонусы от TDD
уверенность в работоспособности
безболезненное внесение изменений
можно посмотреть на свой
код со стороны
некий аналог документации
меньшее время отладки
уменьшение зависимостей
Слайд 27Признаки плохого кода
дублирование кода;
длинный метод;
большой класс;
длинный список параметров;
«жадные» функции;
избыточные временные
переменные;
классы данных;
несгруппированные данные
Слайд 28Методы рефакторинга
Выделение класса
Выделение метода
Выделение локальной переменной
Переименование метода
Перемещение метода
Инкапсуляция поля
Введение
параметра
И т.д.