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

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