Agile и Scrum

Зачем нужно

Scrum — самый популярный Agile-фреймворк. 70%+ IT-команд используют Scrum или его элементы. Как разработчик ты будешь работать в спринтах, ходить на дейли, оценивать задачи и участвовать в ретроспективах. Знание Scrum — базовый навык для работы в команде.

Где используется

  • Веб-разработка — почти все команды
  • Мобильная разработка — стандартный подход
  • RS School — командные проекты организованы по Scrum
  • Собеседования — вопросы о процессах

Agile Manifesto

4 ценности

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

12 принципов (ключевые)

  • Частая поставка работающего ПО (от пары недель до пары месяцев)
  • Приветствие изменений требований даже на поздних стадиях
  • Работающее ПО — главная мера прогресса
  • Лучший способ передачи информации — личный разговор
  • Постоянное внимание к техническому совершенству
  • Команда регулярно рефлексирует и корректирует поведение

Scrum Roles — роли

Product Owner (PO)

Ответственность:
- Определяет ЧТО делать (приоритеты)
- Управляет Product Backlog
- Принимает/отклоняет результат спринта
- Представляет интересы бизнеса/пользователей

Один человек, а не комитет.

Scrum Master (SM)

Ответственность:
- Обеспечивает следование Scrum-процессу
- Устраняет препятствия (impediments) команды
- Фасилитирует церемонии
- Защищает команду от внешнего давления

НЕ менеджер. Servant-leader (лидер-слуга).

Development Team (Dev Team)

Ответственность:
- Определяет КАК делать (технические решения)
- Самоорганизующаяся (3-9 человек)
- Кросс-функциональная (все навыки в команде)
- Коллективная ответственность за результат

Нет «тимлида» в Scrum. Все равны.

Scrum Ceremonies — события

1. Sprint Planning (планирование спринта)

Когда: начало спринта
Длительность: до 8 часов (для 4-недельного спринта)
Участники: вся Scrum-команда

Вопросы:
1. ЧТО мы сделаем в этом спринте? → Sprint Goal
2. КАК мы это сделаем? → Sprint Backlog

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

2. Daily Standup (ежедневный стендап)

Когда: каждый день
Длительность: 15 минут (строго!)
Участники: Dev Team (SM фасилитирует)

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

НЕ отчёт руководству. Синхронизация команды.

3. Sprint Review (обзор спринта)

Когда: конец спринта
Длительность: до 4 часов
Участники: Scrum-команда + стейкхолдеры

Что делаем:
- Демонстрация готового инкремента
- Обратная связь от стейкхолдеров
- Обновление Product Backlog

Результат: фидбек, обновлённые приоритеты

4. Sprint Retrospective (ретроспектива)

Когда: после Review, до следующего Planning
Длительность: до 3 часов
Участники: Scrum-команда

Обсуждаем:
1. Что прошло хорошо? (Keep)
2. Что прошло плохо? (Stop)
3. Что можно улучшить? (Start)

Результат: конкретные action items на следующий спринт

Sprint — спринт

Sprint (2-4 недели, обычно 2)
┌────────────────────────────────────────────────┐
│ Planning → [Dev + Test] → Review → Retro       │
│                                                 │
│ Day 1: Planning                                 │
│ Day 2-9: Development + Daily standups           │
│ Day 10: Review + Retrospective                  │
│                                                 │
│ Результат: Потенциально releasable increment    │
└────────────────────────────────────────────────┘

Правила спринта:

  • Длительность фиксирована (не растягивается)
  • Sprint Goal не меняется после начала
  • Scope может уточняться (с PO)
  • Некачественная работа не принимается (Definition of Done)

Backlog — бэклоги

Product Backlog

Приоритизированный список всего, что нужно сделать:

Приоритет | User Story                        | Story Points
──────────┼───────────────────────────────────┼─────────────
HIGH      | Как пользователь, я хочу логин    | 8
HIGH      | Как пользователь, я хочу профиль  | 5
MEDIUM    | Как админ, я хочу dashboard       | 13
MEDIUM    | Как пользователь, я хочу поиск    | 8
LOW       | Как пользователь, я хочу темы     | 3

Sprint Backlog

Подмножество Product Backlog для текущего спринта + план:

User Story: Логин (8 SP)
├── Задача: Создать UI формы (3ч) → Алиса
├── Задача: Написать API endpoint (4ч) → Борис
├── Задача: Валидация на клиенте (2ч) → Алиса
├── Задача: Unit-тесты (3ч) → Борис
└── Задача: E2E тест (2ч) → Виктор

Definition of Done (DoD)

## Задача считается DONE когда:
-  Код написан и прошёл code review
-  Unit-тесты написаны и проходят
-  Линтер не показывает ошибок
-  Сборка проходит без ошибок
-  Функциональность протестирована вручную
-  Документация обновлена (если нужно)
-  PR смержен в develop

Оценка задач

Story Points

Числа Фибоначчи: 1, 2, 3, 5, 8, 13, 21

1 SP  — тривиальная задача (поменять текст кнопки)
2 SP  — простая задача (добавить валидацию поля)
3 SP  — средняя задача (создать компонент формы)
5 SP  — сложная задача (интеграция с API + UI)
8 SP  — большая задача (полная страница с логикой)
13 SP — очень большая (нужно декомпозировать)
21 SP — эпик (точно нужно разбить на части)

Planning Poker

1. PO описывает User Story
2. Команда задаёт вопросы
3. Каждый выбирает карту (1, 2, 3, 5, 8, 13...)
4. Все показывают одновременно
5. Если расхождение — обсуждение
6. Повторяем до консенсуса

Частые ошибки

Ошибка Проблема Решение
Daily > 15 минут Превращается в совещание Строго 3 вопроса, детали — после
Sprint Goal меняется Хаос, ничего не готово Sprint Goal фиксирован
Нет ретроспектив Команда не улучшается Проводи ретро каждый спринт
PO недоступен Блокировки, неясные требования PO должен быть доступен ежедневно
«Agile = без документации» Потеря знаний Agile = достаточная документация
Sprint без DoD Задачи «почти готовы» бесконечно Определи DoD до начала работы

Практика

  1. Проведи mock Sprint Planning для учебного проекта
  2. Практикуй Daily Standup в команде (даже из 2 человек)
  3. Оцени 5 задач в Story Points
  4. Напиши Definition of Done для своего проекта
  5. Проведи ретроспективу после завершения проекта

Связанные темы

Ресурсы