Scrum

Scrum - наиболее популярный Agile-фреймворк, для многих людей эти термины являются синонимами. Scrum - это фреймворк процесса, используемый для управления разработкой продукта и другой работой, связанной с знаниями. Скрам является эмпирическим в том смысле, что дает командам возможность установить гипотезу о том, как они думают, что что-то работает, опробовать это, проанализировать полученный опыт и внести соответствующие коррективы. То есть при правильном использовании фреймворка. Скрам структурирован таким образом, чтобы команды могли использовать практики из других фреймворков, которые имеют смысл для контекста команды.

Scrum лучше всего подходит в случае, когда кросс-функциональная команда работает в среде разработки продукта, где есть нетривиальный объем работы, которую можно разделить на более чем одну 2-4-недельную итерацию.

Ценности:

  • Преданность (Commitment): Члены команды лично привержены достижению целей команды;

  • Смелость (Courage): Члены команды поступают правильно и работают над сложными проблемами;

  • Сфокусированность (Focus): Сконцентрируйтесь на работе, намеченной для спринта, и целях команды;

  • Открытость (Openness): Члены команды и заинтересованные стороны открыто рассказывают обо всей работе и проблемах, с которыми сталкивается команда;

  • Уважение (Respect): Члены команды уважают друг друга за способности и независимость.

Принципы:

  • Прозрачность (Transparency): Команда должна работать в среде, где каждый знает, с какими проблемами сталкиваются другие члены команды. Команды выявляют проблемы внутри организации, часто возникающие в течение длительного времени, которые мешают успеху команды;

  • Инспекция (Inspection): Частые контрольные точки встроены в структуру, чтобы дать команде возможность поразмышлять о том, как работает процесс. Эти контрольные точки включают в себя Daily Scrum meeting и the Sprint Review Meeting;

  • Адаптация (Adaptation): Команда постоянно изучает, как идут дела, и проверяет те пункты, которые кажутся бессмысленными.

События:

  • Спринт (Sprint): это временной интервал в 2-4 недели, в течение которого команда создает потенциально готовый к поставке инкремент продукта;

  • Планирование спринта (Sprint Planning): Команда начинает спринт с обсуждения, чтобы определить, над какими элементами из бэклога продукта (product backlog) они будут работать во время спринта. Конечным результатом планирования спринта является бэклог спринта (Sprint Backlog). Планирование спринта обычно состоит из двух частей. В первой части владелец продукта и остальная часть команды согласовывают, какие элементы бэклога продукта будут включены в спринт. Во второй части планирования спринта команда определяет, как они будут успешно доставлять идентифицированные элементы Product Backlog как часть потенциально возможного инкремента продукта. Команда может определить конкретные задачи, необходимые для этого, если это одна из их практик. Элементы Product Backlog, определенные для доставки, и задачи, если применимо, составляют бэклог спринта. После того, как команда и владелец продукта установят объем спринта, как описано в элементах Product Backlog, никакие дополнительные элементы не могут быть добавлены в журнал Sprint Backlog. Это защищает команду от изменений в рамках этого спринта;

  • Ежедневная встреча (Daily Scrum/Meeting): это короткое (обычно не более 15 минут) обсуждение, во время которого команда координирует свои действия на следующий день. Дейли не предназначен для обсуждения статуса или обсуждения проблем;

  • Обзор спринта (Sprint Review): в конце спринта вся команда (включая владельца продукта) рассматривает результаты спринта с заинтересованными сторонами продукта. Цель этого обсуждения - обсудить, продемонстрировать и потенциально дать заинтересованным сторонам возможность использовать инкремент для получения обратной связи. Обзор спринта не предназначен для предоставления отчета о состоянии (status report). Отзывы об обзоре спринта помещаются в Product Backlog для дальнейшего рассмотрения;

  • Ретроспектива спринта (Sprint Retrospective): в конце спринта после обзора спринта (sprint review) команда (включая владельца продукта) должна подумать о том, как дела шли во время предыдущего спринта, и определить корректировки, которые они могут внести в будущем. Результатом этой ретроспективы является как минимум одно действие, включенное в бэклог следующего спринта;

  • Упорядочение бэклога (Grooming);

Артефакты:

  • Бэклог продукта (Product Backlog): это упорядоченный список всех возможных изменений, которые могут быть внесены в продукт. Пункты в бэклоге продукта являются вариантами, а не обязательствами, и то, что они существуют в бэклоге продукта, не гарантирует, что они будут доставлены. Владелец продукта постоянно ведет бэклог продукта, включая его содержание, доступность и порядок;

  • Бэклог спринта (Sprint Backlog): это набор элементов из бэклога продукта, выбранных для доставки в спринте. После того, как команда определяет задачи, эти задачи необходимо выполнить для достижения цели спринта (Sprint Goal);

  • Инкремент (Increment): это набор элементов из бэклога продукта, которые соответствуют Definition of Done к концу спринта. Владелец продукта может решить выпустить дополнение или развить его в будущих Спринтах;

  • Критерии Готовности (Definition of Done): это общее соглашение команды о критериях, которым должен соответствовать элемент бэклога продукта, прежде чем он будет считаться выполненным$

  • Пользовательские истории (User Story);

  • Цель спринта (Sprint Goal);

  • Диаграмма сгорания задач (Burndown chart).

Роли:

  • Владелец продукта (Product Owner): роль, ответственная перед командой за управлением бэклогом продукта для достижения результатов, к которым стремится команда. Роль product owner-а существует в Scrum для решения проблем, когда команда разработки имеет множественные противоречивые направления движения или отсутствие направления вообще в отношении того, что создавать;

  • Скрам Мастер (Scrum Master): роль, ответственная перед командой за то, чтобы команда придерживалась гибких ценностей и принципов и следовала процессам и практикам, которые команда согласилась использовать. Изначально это имя предназначалось для обозначения кого-то, кто является экспертом в Scrum и, следовательно, может обучать других. Роль обычно не имеет никаких фактических полномочий. Люди, выполняющие эту роль, должны руководить с позиции влияния, часто занимая позицию лидера-слуги (servant-leadership);

  • Команда разработки (Development Team): состоит из людей, которые создают инкремент продукта внутри спринта. Основная ответственность команды разработки - обеспечить инкремент, который приносит пользу каждому спринту. Как распределить работу, это остается на усмотрение команды в зависимости от условий на тот момент.

Жизненный цикл Scrum:

  • Создайте бэклог продукта;

  • Владелец продукта и команда разработчиков проводят планирование спринта. Определите объем спринта в первой части планирования спринта и план реализации этого объема во второй половине планирования спринта;

  • По мере продвижения спринта команда разработчиков выполняет работу, необходимую для доставки выбранных элементов бэклога продукта;

  • Команда разработчиков ежедневно координирует свою работу в рамках Daily Scrum;

  • В конце спринта группа разработчиков предоставляет элементы бэклога продукта, выбранные во время планирования спринта. Команда разработчиков проводит обзор спринта, чтобы показать клиенту инкремент и получить обратную связь. Команда разработчиков и владелец продукта также размышляют о том, как прошел Sprint до сих пор, и соответствующим образом адаптируют свои процессы во время ретроспективы;

  • Команда повторяет шаги 2-5 до тех пор, пока не будет достигнут желаемый результат.

Стори поинты (Story points)

Чтобы оценить объем работы над Элементом Бэклога Продукта, Скрам-команды обычно используют Стори Поинты (1, 2). Это условная величина, позволяющая давать Элементам Бэклога относительные веса. Чаще всего для оценки в Стори Поинтах используются числа Фибоначчи (1, 2, 3, 5, 8, 13, …), что позволяет провести оценку достаточно быстро.

Источники:

Доп. материал:

Особенности тестирования в Scrum:

Last updated