- набор инструментов для ускоренной разработки. Это каркас, состоящий из множества типовых шаблонов (библиотек), которые можно доработать
- исполнитель не тратит время на создание элементарных вещей
- исполнитель сосредотачивается на уникальных задачах
Пример спринта:
- Делим весь проект на спринты (небольшие отрезки времени: 1–3 недели);
- Ставим цель в конце каждого спринта; (создаем бэклог)
- На первый спринт цель – сделать единую авторизацию и настроить синхронизацию между всеми устройствами пользователя; (инкремент спринта)
- В течение спринта команда работает только над этим;
- Спринт за спринтом – достигли цель всего проекта.
Алгоритм создания продука по SCRUM
:
- Заказчик изучает требования потенциальных клиентов
- Заказчик составляет ТЗ
- Команда разработчиков выделяет самые важные задачи ТЗ
- Бэклог на первый и последующие спринты
- Ежедневно - выбор задач на день
Элементы Scrum:
- ценности
- сфокусированность (Focus) - фокусировка на определенной целе на спринте в рамках проекта
- открытость (Openess) - общение с заказчиком, общение в команде, новые идеи и лучшие практики приветствуются
- смелость (Courage) - готовность признания ошибок, признания в нужде в помощи
- приверженность (Commitment) - ответственность за свои слова, приверженность установленным требованиям
- уважение (Respect) - к заказчику и внутри команды
- роли
- артефакты (элементы)
- практики (ритуалы, процессы)
Принципы Scrum:
✔ Работа короткими циклами (спринтами)
✔ Гибкость
✔ Пользователи и заказчик участвуют в разработке
✔ Взаимодействие команды
SCRUM-команда:
-
обычно состоит из 5-9 человек (редко 3-4)
-
не может быть больше, потому что усложняется взаимодействие
-
3 основные роли в команде:
- владелец продукта (Product owner) - центр принятия решений, должен быть в одном лице
- формирует ТЗ, видение продукта, составление бизнес-плана
- определяет план развития, коэффициент окупаемости вложений
- сортирует по приоритету список требований
- управляет ожиданиями заказчиков и стейкхолдеров
- координирует и приоритезирует бэклог
- предоставляет команде понятные и тестируемые требования
- взаимодействует с командой проекта и заказчиком
- принимает и оценивает результаты работы в конце каждого спринта
- команда разработчиков (Delivery Team) (внутри команды - должен быть TeamLead)
- отвечают за техническую реализацию продукта
- постановка реально достижимых, интересных, значимых целей на спринт
- достижение целей в рамках дедлайна спринта (инкремента)
Необходимые навыки в команде:
- умение планировать
- объективно оценивать выполненную работу
- умение взаимодействовать с другими членами команды
- SCRUM-мастер/коуч/тренер - менеджер, а не авторитарный управленец, != менеджер проекта, он не должен ставить задачи команде, она должна самоорганизовываться
- совместно с владельцем продукта разрабатывает бек-лог продукта
- контролирует соблюдение SCRUM-методологии
- обсуждает с командой очередной спринт
- подводит итоги в конце каждого спринта
- контролирует инициативность и самостоятельность всех членов команды
- налаживает атмосферу в коллективе
- обозначает проблемы и открытые вопросы
- учавствует во всех встречах
- поддерживает работоспособность команды на высоком уровне
- устраняет проблемы
- следит за следованием намеченному графику работ p.s. Не является обособленым лицом, также учавствует в разработке, координирует действия команды
- владелец продукта (Product owner) - центр принятия решений, должен быть в одном лице
Принципы работы SCRUM-команды:
- Постоянное самосовершенствование - совершенствование продукта, доведение его до идеального состояния невозможно без самосовершенствования каждого члена команды.
- Автономность -
все члены команды должны уметь работать не только в команде, но и выполнять какие-то работы автономно, индивидуально. - Кросс-функциональность -
любая команда самодостаточна, т.к. в нее входят специалисты с разными навыками и опытом. Можно развиваться и перенимать навыки своих коллег
Как устроена работа SCRUM-команды:
- Планирование списка задач спринта /берем определенную задачу из бэклога продукта в бэклог спринта
- в распределении задач учавствует вся команда, а не только скрам-мастер или владелец продукта
- на планировании определяется ожидаемый результат спринта, объем работ и реальные сроки
- Проведение регулярных совещаний /stend-up или Daily Scrum Meeting//проходит около скрам-доски или в совещательной комнате
- 10-15 минут
- учавствуют все члены команды (разработчики + владелец продукта + скрам-мастер)
- Цель - каждый член команды отвечает на 3 вопроса:
- Что сделано с момента прошлой встречи? (за 1 день)
- Какие планы на сегодня?
- Есть ли препятствия к достижению цели? //проблемы
- Скрам-мастер выявляет проблемы и помогает команде их решить
- Организация скрам-доски колонки:
- To Do (что нужно сделать) - бэклог спринта
- In Progress (что в работе)
- Done (что сделано)
- Изменение планов в ходе итерации
- если один из членов команды не успевает решить проблему - сообщает об этом владельцу продукта, а тот, в свою очередь, либо перераспредеяет задачи, либо оптимизирует рабочее время
- при очень быстрой работе - допущена ошибка в сроках выполнения работы. Владелец продукта дополняет бэклог спринта новыми задачами, чтобы ускорить сроки реализации продукта
- Аварийная остановка спринта
Abnormal Termination
- бывает только в исключительно редких случаях
- в случае, когда цели в рамках спринта по какой-то причине становятся не достижимы
- в случае, когда отпадает смысл реализации целей спринта
- по результатам остановки - либо изменяются технические требования к разработке, либо решаются проблемы
- Подведение итогов спринта //
Sprint review meeting
- после окончания спринта команда тестирует выполненную часть продукта
- в тестировании также принимают участие потенциальные потребители (фокус-группа)
- владелец продукта собирает обратную связь
- формирует бэклог очередного спринта
- Проведение ретроспективы спринта //анализ движения по бэклогу продукта, а не только спринта
- предназначено для обзора завершенных этапов
- команда записывает результаты, обсуждает нюансы спринта и сопутствующих процессов
- основная задача - обратить внимание на успехи и неудачи спринта
- извлекаются уроки
- не акцентируем внимание на ошибках = не ищем виноватого, а используем ценный опыт из прошлого спринта. Важно отметить, что можно сделать лучше в дальнейшем
Преимущества SCRUM:
✔ Работа короткими этапами – спринты
✔ Команда работает над разными задачами проекта одновременно
✔ Большие задачи разделяют на мелкие – легко внести корректировки
✔ Сокращается время на поиск ошибок и объяснение проблем
✔ Минимизация финансовых рисков благодаря оперативной реакции на изменения и ошибки
✔ Каждый член команды четко знает свою задачу
✔ Открытый обмен информацией
✔ Поддержание высокого уровня мотивации в команде благодаря ежедневной видимости достижений
Недостатки SCRUM:
✖ Успех проекта во многом зависит от Scrum-мастера
✖ Далеко не всегда можно адаптировать Scrum под сферу деятельности – есть проекты, требующие исключительно планового подхода в работе
✖ Требуется регулярная коммуникации с заказчиком
✖ Сложность внедрения в масштабных и сложных проектах
✖ Scrum больше подходит для малых и средних проектов и опытных специалистов
Epic (эпик)
– одна из нескольких глобальных функций продукта. В эпике могут содержаться User Story, например, пакет пожеланий одного пользователя или список задач (Task) для реализации Эпика.
Sprint Goal
(спринт гоол) – цель спринта.
Sprint Planning Meeting
(спринт плэнин митин) – планирование Sprint, скрам-собрание, где участвует Scrum Team. Выбираются задания из Бэклога, которые возможно выполнить за спринт.
Story Points
(стори поинтc) – единица оценки сложности выполнения задачи.
Velocity
– скорость команды; для аналитики строится график Velocity, где по оси Х кол-во спринтов, а по оси Y Story Points.На основе этих показателей выстраиваются средние Velocity и Story Points.
Аспекты Scrum для дальнейшего изучения: https://habr.com/ru/articles/464861/