Agile. Scrum.
Agile Гибкий подход к разработке ПО. Лучшие практики: Scrum XP TDD, etc. "Agility is not a technology, science, or product but a culture" (Philippe Kruchten)
Agile манифест Люди и их взаимодействие важнее, чем процессы и средства Работающее ПО важнее, чем исчерпывающая документация Сотрудничество с заказчиком важнее, чем обсуждение условий контракта Реагирование на изменения важнее, чем следование плану
Ценности Agile Гибкость и простота Частые релизы Самоорганизующаяся команда Больше общения
Гибкость и простота Agile-процессы готовы к изменениям требований даже на поздних этапах разработки. Важна простота - искусство увеличения объема работ, которых удалось избежать.
Частые релизы Наивысший приоритет - удовлетворенность заказчика: ранние и периодические поставки ПО ПО работающее и ценное для заказчика Продолжительность каждой итерации - от пары недель до пары месяцев. Предпочтение - коротким интервалам.
Самоорганизующаяся команда Над проектом работают мотивированные люди. Создаются все условия, поддержка и полное доверие. Самые лучшие архитектуры, требования и дизайны систем создаются самоорганизующимися командами. Команда сама организует оптимальный процесс.
Больше общения Потенциальные пользователи системы и разработчики должны работать вместе на протяжении всего проекта. Самый действенный и эффективный способ обмена информацией как внутри команды разработчиков, так и с внешним миром - непосредственное общение.
Scrum Наиболее распространенная практика разработки в Agile. Ключевые термины: Product backlog User story Product owner Sprint Sprint backlog: tasks Daily scrum Scrum master Taskboard
Product Backlog Содержит список функциональных единиц системы (user stories), запланированных на след релиз IDВажнНазваниеОписаниеКак показать 24875Заставка (splash screen) Как пользователь я хочу видеть заставку пока приложение открывается. 1. Запустить приложение – заставка показ. до появления главного окна
Product Backlog Product backlog один на весь релиз Им владеет менеджер продукта (product owner) Он не статичен – записи можно добавлять, удалять, менять им приоритет Общедоступен, но поддерживается одним человеком
Спринт (Sprint) Фаза разработки состоит из нескольких итераций – спринтов. Обычно спринт длится 2-4 недели. Этапы: Планирование Разработка Демонстрация Ретроспектива
Sprint Backlog Описывает задачи, запланированные командой на спринт Задачи – действия, необходимые для реализации запланированной на спринт функциональности В описание задачи входит ее оценка
Планирование (Sprint Planning) Проводится в начале спринта Участвует вся команда User stories разбиваются на задачи и оцениваются членами команды В результате команда подписывается на ту функциональность, на которую хватает времени спринта
Оценка Для оценки выбирается единица – идеальный человеко-день…или зеленый крокодил Следует оценить помехи (например focus factor между 0 и 1) перед каждым спринтом Результаты предыдущего спринта помогают лучше запланировать следующий
Ежедневный скрам (Daily Scrum) Проводится каждый день в фиксированное время Рекомендуется проводить стоя в течение минут Если что-то нужно обсудить, назначается время после скрама
Вопросы Scrum Master спрашивает каждого: Что ты делал? Что ты собираешься делать? Какие были проблемы?
Sprint whiteboard
Демонстрация (ревью) В конце каждого спринта проводится ревью Это демонстрация реализованной функциональности В ней может участвовать любой человек, задействованный в проекте В идеале после каждой демонстрации можно отправлять продукт заказчику
Ретроспектива спринта После каждого спринта (ревью) Участвуют все члены команды Цель - осознать: Что было хорошо? Что могло бы быть лучше Это обсуждение процесса, а не технических сложностей
Обзор активностей АктивностьПроводит Участник и Артефакты Планирование Скрам- мастер Команда Product, Sprint backlog Ежедневный скрам Скрам- мастер Команда Sprint whiteboard, backlog Ревью спринта Скрам- мастер Все Работающее ПО Ретроспектива Скрам- мастер КомандаЗаписи
Ссылки velopment velopment Agile Project Management with Scrum. By Ken Schwaber.