Перейти к основному содержимому

Agile и Scrum

Agile — философия гибкой разработки. Scrum — конкретный фреймворк для её реализации.

Agile Manifesto​

Ценности​

  1. Люди и взаимодействие важнее процессов и инструментов
  2. Работающий продукт важнее исчерпывающей документации
  3. Сотрудничество с заказчиком важнее согласования условий контракта
  4. Готовность к изменениям важнее следования плану

12 принципов Agile​

  1. Удовлетворение заказчика через раннюю и непрерывную поставку ценного ПО
  2. Изменения приветствуются даже на поздних стадиях
  3. Частая поставка работающего ПО (недели, а не месяцы)
  4. Бизнес и разработчики работают вместе ежедневно
  5. Мотивированные люди + доверие + поддержка
  6. Личное общение — наиболее эффективный способ коммуникации
  7. Работающий продукт — основная мера прогресса
  8. Устойчивый темп разработки
  9. Постоянное внимание к техническому совершенству
  10. Простота — искусство не делать лишнего
  11. Самоорганизующиеся команды
  12. Регулярная рефлексия и адаптация

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-недельного спринта)

Цель: Определить что будет сделано в спринте и как.

Повестка:

  1. Что делаем? (What)

    • PO презентует приоритетные Stories
    • Команда выбирает Stories для спринта
    • Формулируется Sprint Goal
  2. Как делаем? (How)

    • Декомпозиция Stories на задачи
    • Оценка задач в часах
    • Распределение работы

Результат: Sprint Backlog + Sprint Goal

Daily Scrum (Stand-up)​

Длительность: 15 минут

Цель: Синхронизация команды, выявление препятствий.

Формат: Каждый отвечает на 3 вопроса:

  1. Что сделал вчера?
  2. Что буду делать сегодня?
  3. Есть ли препятствия?

Правила:

  • В одно и то же время
  • Стоя (чтобы не затягивать)
  • Только для команды (другие могут слушать)
  • Не обсуждаем детали (выносим в отдельные встречи)

Sprint Review (Demo)​

Длительность: 1-2 часа

Цель: Демонстрация результатов спринта стейкхолдерам.

Повестка:

  1. PO объявляет что Done, что не Done
  2. Команда демонстрирует работающий функционал
  3. Обсуждение Product Backlog
  4. Обсуждение timeline и бюджета
  5. Сбор обратной связи

Результат: Обновленный Product Backlog

Sprint Retrospective​

Длительность: 1-1.5 часа

Цель: Улучшение процесса работы команды.

Формат:

  1. Что прошло хорошо?
  2. Что можно улучшить?
  3. Что будем делать в следующем спринте?

Техники:

  • 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​

  1. PO описывает Story
  2. Команда задает вопросы
  3. Каждый выбирает карту с оценкой
  4. Все открывают карты одновременно
  5. Обсуждаем крайние оценки
  6. Повторяем до консенсуса

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