Agile и Scrum
Agile — философия гибкой разработки. Scrum — конкретный фреймворк для её реализации.
Agile Manifesto
Ценности
- Люди и взаимодействие важнее процессов и инструментов
- Работающий продукт важнее исчерпывающей документации
- Сотрудничество с заказчиком важнее согласования условий контракта
- Готовность к изменениям важнее следования плану
12 принципов Agile
- Удовлетворение заказчика через раннюю и непрерывную поставку ценного ПО
- Изменения приветствуются даже на поздних стадиях
- Частая поставка работающего ПО (недели, а не месяцы)
- Бизнес и разработчики работают вместе ежедневно
- Мотивированные люди + доверие + поддержка
- Личное общение — наиболее эффективный способ коммуникации
- Работающий продукт — основная мера прогресса
- Устойчивый темп разработки
- Постоянное внимание к техническому совершенству
- Простота — искусство не делать лишнего
- Самоорганизующиеся команды
- Регулярная рефлексия и адаптация
Scrum Framework
Роли
Product Owner (PO)
Ответственность: Максимизация ценности продукта
Обязанности:
- Управление Product Backlog
- Приоритизация задач
- Принятие решений о функциональности
- Коммуникация со стейкхолдерами
- Приемка результатов спринта
Scrum Master (SM)
Ответственность: Обеспечение следования Scrum процессу
Обязанности:
- Фасилитация Scrum церемоний
- Устранение препятствий (impediments)
- Коучинг команды
- Защита команды от внешних помех
- Улучшение процессов
Development Team
Ответственность: Создание инкремента продукта
Характеристики:
- Самоорганизующаяся
- Кросс-функциональная
- 3-9 человек
- Нет подролей (все — разработчики)
- Коллективная ответственность
Артефакты
Product Backlog
Приоритизированный список всех требований к продукту.
Содержит:
- User Stories
- Баги
- Технический долг
- Исследования (spikes)
Характеристики:
- Динамичный (постоянно меняется)
- Приоритизированный
- Оцененный (Story Points)
- Детализация уменьшается сверху вниз
Sprint Backlog
Список задач для текущего спринта + план их выполнения.
Содержит:
- User Stories из Product Backlog
- Задачи (tasks) для реализации Stories
- Sprint Goal
Increment
Работающая версия продукта в конце спринта.
Требования:
- Соответствует Definition of Done
- Потенциально готов к релизу
- Интегрирован с предыдущими инкрементами
Церемонии (Events)
Sprint
Итерация длительностью 1-4 недели (обычно 2 недели).
Правила:
- Фиксированная длительность
- Начинается сразу после окончания предыдущего
- Scope может корректироваться с PO
- Может быть отменен только PO
Sprint Planning
Длительность: 2-4 часа (для 2-недельного спринта)
Цель: Определить что будет сделано в спринте и как.
Повестка:
-
Что делаем? (What)
- PO презентует приоритетные Stories
- Команда выбирает Stories для спринта
- Формулируется Sprint Goal
-
Как делаем? (How)
- Декомпозиция Stories на задачи
- Оценка задач в часах
- Распределение работы
Результат: Sprint Backlog + Sprint Goal
Daily Scrum (Stand-up)
Длительность: 15 минут
Цель: Синхронизация команды, выявление препятствий.
Формат: Каждый отвечает на 3 вопроса:
- Что сделал вчера?
- Что буду делать сегодня?
- Есть ли препятствия?
Правила:
- В одно и то же время
- Стоя (чтобы не затягивать)
- Только для команды (другие могут слушать)
- Не обсуждаем детали (выносим в отдельные встречи)
Sprint Review (Demo)
Длительность: 1-2 часа
Цель: Демонстрация результатов спринта стейкхолдерам.
Повестка:
- PO объявляет что Done, что не Done
- Команда демонстрирует работающий функционал
- Обсуждение Product Backlog
- Обсуждение timeline и бюджета
- Сбор обратной связи
Результат: Обновленный Product Backlog
Sprint Retrospective
Длительность: 1-1.5 часа
Цель: Улучшение процесса работы команды.
Формат:
- Что прошло хорошо?
- Что можно улучшить?
- Что будем делать в следующем спринте?
Техники:
- Start-Stop-Continue
- Mad-Sad-Glad
- 4Ls (Liked, Learned, Lacked, Longed for)
- Sailboat
Результат: Action items для улучшения процесса
User Story
Формат
Как <роль>
Я хочу <функциональность>
Чтобы <бизнес-ценность>
Пример
Как пользователь интернет-магазина
Я хочу добавлять товары в избранное
Чтобы быстро находить интересные товары позже
Критерии приемки (Acceptance Criteria)
Дано: Пользователь авторизован
Когда: Нажимает на иконку "сердечко" у товара
Тогда: Товар добавляется в раздел "Избранное"
И: Иконка меняет цвет на красный
INVEST критерии
- Independent — независимая
- Negotiable — обсуждаемая
- Valuable — ценная для бизнеса
- Estimable — оцениваемая
- Small — небольшая
- Testable — тестируемая
Оценка задач
Story Points
Относительная оценка сложности (не время!).
Шкала Фибоначчи: 1, 2, 3, 5, 8, 13, 21
Факторы:
- Сложность
- Объем работы
- Риски/неопределенность
Planning Poker
- PO описывает Story
- Команда задает вопросы
- Каждый выбирает карту с оценкой
- Все открывают карты одновременно
- Обсуждаем крайние оценки
- Повторяем до консенсуса
Velocity
Количество Story Points, выполненных за спринт.
Использование:
- Планирование capacity
- Прогнозирование сроков
- Отслеживание производительности
Definition of Done (DoD)
Чек-лист критериев готовности задачи.
Пример:
- Код написан
- Unit тесты написаны и проходят
- Code review пройден
- Интеграционные тесты проходят
- Документация обновлена
- Задеплоено на staging
- PO принял функционал
Метрики Scrum
Burndown Chart
График оставшейся работы по дням спринта.
Burnup Chart
График выполненной работы нарастающим итогом.
Velocity Chart
График Story Points по спринтам.
Cumulative Flow Diagram
Визуализация потока задач через статусы.
Частые проблемы
1. Неправильный Sprint Planning
Проблема: Берем слишком много/мало задач
Решение: Ориентируемся на Velocity, оставляем буфер
2. Daily превращается в отчет менеджеру
Проблема: Команда отчитывается SM/PO, а не синхронизируется
Решение: SM фасилитирует, но не доминирует
3. Нет реального инкремента
Проблема: В конце спринта нечего показать
Решение: Строгий DoD, интеграция в течение спринта
4. PO недоступен
Проблема: Команда блокируется на вопросах
Решение: PO выделяет время для команды ежедневно
5. Ретроспектива формальная
Проблема: Обсуждаем, но ничего не меняем
Решение: Конкретные action items с ответственными
Роль аналитика в Scrum
- Помогает PO с Product Backlog
- Детализирует User Stories
- Участвует в Planning и Refinement
- Отвечает на вопросы команды
- Проводит UAT
- Собирает обратную связь
Полезные ресурсы
- Scrum Guide — официальное руководство
- Agile Manifesto
- Книга "Scrum: The Art of Doing Twice the Work in Half the Time" — Jeff Sutherland